Skip to main content

Sandbox and the test agency

Your sandbox app runs every check and publishes nothing. Get a test agency's connect code and push your first listings.

The sandbox app#

When we approve your company, the Partner Portal gets a sandbox app named "Sandbox" (Integration › Apps and keys). Its limits:

Limit Sandbox
Requests per minute (per app) 120
Listing items per hour (per connection) 500
Items per batch 200

An admin can add a second sandbox app (at most two). Live apps come later, from us, after certification.

What the sandbox does#

Sandbox keys work only with sandbox apps and sandbox connections. Every check runs — the schema, vocabularies, places, the mapping, the publish rules including the mandate, and photo downloads through the fetcher (at most 8 photos per item) — but nothing is written to listings:

  • the final item status is validated;
  • the webhook item.validated carries the warnings;
  • listing_id and public_url stay null;
  • an item with state: active and fewer than 3 photos fetched fails with photo_minimum, exactly as on live.

Register a key and ping#

  1. An admin accepts the current partner terms under Agreements if the overview asks for it (sign-up already accepted the version current then).
  2. Generate an Ed25519 key pair and register the public key on the sandbox app (Keys).
  3. Call GET /ping with the reference client:
sh
export NK_PARTNER_KEY_ID=nkp_sandbox_…
export NK_PARTNER_PRIVATE_KEY_PEM="$(cat nk-private.pem)"
node nk-partner.mjs ping

A 200 shows your app, key id, partner and limits. Typical first failures: a wrong clock → 401 timestamp_out_of_window; a different path or host signed → 401 signature_invalid; the body re-serialized after hashing → 400 digest_mismatch; a retry with the same nonce → 401 nonce_reused.

Ask for a test agency#

Real agencies connect only to live apps. For the sandbox, ask us for a test agency: use "Ask for a test agency" on the overview checklist, or write to partners@novikvadrat.rs. We attach your sandbox app to a test agency; you don't need us to relay anything:

  • the pending connection appears in the Partner Portal under Connections, listed first, with the chip "Waiting for redemption";
  • its connect code is shown there, with Copy, for 24 hours;
  • when it lapses, Regenerate code (any role) issues a new one — the old code stops working at once.

Redeem it with your sandbox key:

sh
node nk-partner.mjs redeem NK-XXXX-XXXX-XXXX

The connection is now certifying. See Redeeming a code.

Push#

Push 10 or more listings with POST /connections/{id}/batches (see Payload v1). While the connection is certifying, valid items answer needs_review and wait for our check; invalid ones answer rejected with pointers. When we certify the connection, the waiting items run and each ends validated (or failed with a reason). The validator (POST /validate, or Integration › Validate in the Partner Portal) checks payloads without staging anything.

Last updated