Biklo for developersTESTsandbox-api.biklo.comchange

Sandbox and production

Sandbox Production
Base URL https://sandbox-api.biklo.com https://api.biklo.com
Keys bk_test_… bk_live_…
Data Real categories, fields and geo. No real buyers or orders. Live marketplace
Couriers Simulated — fake AWBs and labels Real carriers
Invoices Simulated, stamped "NOT A FISCAL DOCUMENT" Real fiscal documents
Money None moves Real

The sandbox carries the same categories, attributes, geo and courier configuration as production, because a mapping is what integration time is spent on and mapping against invented data teaches you nothing.

Getting data to work with#

The sandbox has no buyers, so orders are fabricated on demand:

# create a test order against one of your own products
curl -X POST https://sandbox-api.biklo.com/v1/sandbox/orders \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"external_id": "ERP-1001", "quantity": 2}'

# then walk it through the lifecycle without waiting on a courier
curl -X POST https://sandbox-api.biklo.com/v1/sandbox/orders/711/advance \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"status": "delivered"}'

Both routes do not exist in production — they return 404 there, which is deliberate: fabricating an order against a real marketplace must not be possible.

Going live#

Change two things: the base URL, and the key. Nothing else in your code should need to move — that is the point of the sandbox being the same application.

Before you switch, confirm you handle 429 with Retry-After, that you verify webhook signatures, and that you send an Idempotency-Key on writes.