JouloDocs

Replacement orders and their status

The orders you placed with POST /partner/replacement-orders. With order_id you get that one order. Without it you get a page of your orders, newest first, with count for the whole filter. status follows one ladder: awaiting_payment, paid, scheduled, installed, completed, with expired, cancelled and failed as side exits. installer appears from scheduled on: the name and phone number of the installer who holds the job, the same details the customer got by mail. Poll this endpoint; there are no webhooks.

GET
/partner/replacement-orders
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

Query Parameters

order_id?string

One order. The answer is then that order, not a page.

Formatuuid
customer_ref?string

Only the orders of this customer.

Match^[0-9a-f]{8}$
status?string

Only the orders in this status.

Value in"awaiting_payment" | "paid" | "scheduled" | "installed" | "completed" | "expired" | "cancelled" | "failed"
limit?integer
Default100
Range1 <= value <= 500
offset?integer
Default0
Range0 <= value

Response Body

curl -X GET "https://api.joulo.nl/functions/v1/api/partner/replacement-orders?order_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&customer_ref=string&status=awaiting_payment&limit=100&offset=0"

{
  "order_id": "a1b2c3d4-0000-4000-8000-000000000001",
  "customer_ref": "3f9a1c2e",
  "external_ref": "hw-order-8812",
  "product_slug": "vervanging-zaptec-go-2",
  "amount_cents": 119900,
  "status": "scheduled",
  "paid_at": "2026-10-22T09:12:00Z",
  "installer": {
    "company_name": "Laadpunt Installaties B.V.",
    "phone": "+31201234567"
  },
  "installed_at": null,
  "completed_at": null,
  "expires_at": null,
  "created_at": "2026-10-22T09:05:00Z",
  "updated_at": "2026-10-22T10:01:00Z"
}

{
  "error": "order_id must be a UUID"
}
{
  "error": "Missing or invalid API token"
}
{
  "error": "Not available for your partner type"
}
{
  "error": "order_not_found"
}
{
  "error": "Too many requests",
  "retry_after_seconds": 3
}