JouloDocs

Sandbox

Test the Partner API against Joulo's staging environment • no real machtigingen, no ERE registration, no email.

Sandbox

The sandbox runs the Partner API on Joulo's staging environment. Build and test your integration here, from upload to a signed test machtiging, before you touch production.

Base URL

https://api-staging.joulo.nl/functions/v1/api

The endpoints, request and response shapes are identical to production. Only the host differs, so swapping the base URL moves your integration between environments.

Get a sandbox key

A sandbox key is separate from your production key: a production key does not work on the sandbox and vice versa. Mint one yourself in the partner portal: open API-koppeling, go to the Sandbox card and click Sandbox-key genereren. You get a jpk_test_ key, shown once, bound to a sandbox twin of your partner account. A new sandbox key replaces the previous one. The return URL you saved for onboarding inside your app comes along to the sandbox.

What the sandbox does not do

Customers, drafts and claim links behave like production. Nothing leaves the environment:

  • No ERE registration. Nothing reaches the NEa. A test machtiging has no legal effect and does not bind an EAN.
  • No EAN register. The sandbox never calls the Dutch EAN register. It answers from the EAN you send: its last four digits pick matched, unverified or mismatched. See test values and helpers.
  • No email. Customers receive nothing. The sandbox keeps every mail, and GET /sandbox/v1/mail shows it to you with the claim and login links in it.
  • No payouts and no real charger syncs. A virtual charger, connected with a sandbox helper, delivers sessions instead.

Never test against production. A machtiging signed on production is a legal act that binds that EAN to Joulo, even when it was meant as a test.

A claim_url from the sandbox opens on staging.joulo.nl:

{
  "email": "[email protected]",
  "claim_url": "https://staging.joulo.nl/claim/3f0c…"
}

Deliver the URL exactly as you receive it. The token lives in the sandbox database, so the same token on joulo.nl reports the link as unknown.

Registration status and ERE positions

Customers you create stay in concept until someone submits the registration through the claim link. POST /sandbox/v1/drafts/{id}/claim does that as the customer, without a browser. On the sandbox a submitted registration is approved automatically two minutes later, or rejected when the customer's address holds +afgekeurd. With a virtual charger the customer gets sessions, and /partner/ere-positions shows the ERE. The helpers on test values and helpers do each step on request: review, connect a charger, sync, refresh positions.

Test data and clean-up

Invent names, e-mail addresses and IBANs. Ids are per environment: never ship a sandbox id in production code.

POST /sandbox/v1/reset deletes all your sandbox customers and drafts. Your key keeps working.