JouloDocs

Move a replacement order forward

Sandbox only: send it to https://api-staging.joulo.nl (pick the Sandbox server). Moves an order from POST /partner/replacement-orders forward on the status ladder without Mollie: paid (runs the real dispatch), scheduled (an installer holds the job; without one in the area your own partner plays the installer), installed, completed. Several steps at once are fine. Backwards is refused, and so is an order that is expired, cancelled or failed.

POST
/sandbox/v1/replacement-orders/{id}/advance
AuthorizationBearer <token>

Partner API key, sent as Authorization: Bearer <key>. Production keys start with jpk_live_ and work only on https://api.joulo.nl. Sandbox keys start with jpk_test_ and work only on https://api-staging.joulo.nl. Sandbox keys minted before September 2026 also start with jpk_live_. A key used on the wrong host returns 401 with a detail. A key is bound to one partner and reaches only the Partner API routes. Any other route returns 404 when it does not exist. A route that needs a scope the key lacks, such as GET /sessions, returns 403 with error: Insufficient scope and a required_scope. Every other route returns 403 with error: partner_api_key_scope. Mint and revoke keys in the partner portal. A partner has one active key at a time.

In: header

Path Parameters

idstring

The order_id from POST /partner/replacement-orders.

Formatuuid
tostring
Value in"paid" | "scheduled" | "installed" | "completed"

Response Body

curl -X POST "https://api.joulo.nl/functions/v1/api/sandbox/v1/replacement-orders/497f6eca-6276-4993-bfeb-53cbbbba6f08/advance" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "scheduled"
  }'
{
  "ok": true,
  "from": "awaiting_payment",
  "to": "scheduled"
}
{
  "error": "to must be paid, scheduled, installed or completed"
}
{
  "error": "order_not_found"
}
{
  "error": "not_forward",
  "status": "paid"
}