# Sandbox en livegang

Bouw en test met een testsleutel in een aparte sandbox, zonder echte gegevens. Ga daarna live met een live sleutel; softwarepartners vragen eerst productietoegang aan.

## De sandbox

Je sandbox opent bij je eerste testsleutel (`hrs_test_…`). Het is een aparte organisatie, "… (sandbox)", naast je echte omgeving:

- een testvestiging en de huisstijl van je organisatie;
- twee testgebruikers, Test Manager en Test Accountant, zodat de vierogencontrole ook in de sandbox werkt;
- mails en sms'jes worden niet verstuurd maar opgevangen, met de eenmalige codes; je leest ze in het developer dashboard;
- de salarisverwerking loopt via een testsalarissysteem;
- webhookadressen die je met een testsleutel registreert, krijgen alleen gebeurtenissen uit de sandbox.

Je kunt de hele flow ook zelf doorlopen: open de `hosted_url`, vraag de code aan en lees die in het dashboard.

## Stappen naspelen

Met `POST /v1/sandbox/onboardings/{id}/advance` speelt Agreli de volgende stap na. Dat werkt alleen met een testsleutel en het recht `onboardings:write`.

```bash
curl -X POST https://app.agreli.nl/api/public/v1/sandbox/onboardings/onb_…/advance \
  -H "Authorization: Bearer $AGRELI_API_KEY"
```

Het antwoord bevat de stap die is nagespeeld en de onboarding daarna. Elke aanroep doet één stap:

| `step` | Wat er gebeurt | Status daarna |
| --- | --- | --- |
| `employee_submitted` | De medewerker vult alles in, met een test-ID-scan, en verstuurt. | `in_review` |
| `approved` | De testgebruikers controleren en keuren goed. | `contract_ready` |
| `contract_sent` | Het contract wordt gemaakt en verstuurd. | `awaiting_employee_signature` |
| `employee_signed` | De medewerker tekent. | `awaiting_employer_signature` |
| `employer_signed` | De werkgever tekent. | `processing` |
| `payroll_completed` | Het testsalarissysteem verwerkt de medewerker. | `completed` |

- Met een live sleutel geeft dit `403`.
- Is de onboarding al afgerond of geannuleerd, dan krijg je `409 nothing_to_advance`.
- Loopt de salarisverwerking al, of wacht die op een handeling, dan krijg je `409 payroll_busy`.

## Live gaan als werkgever

Maak in het developer dashboard een live sleutel (`hrs_live_…`) met dezelfde rechten. Code en webhooks blijven gelijk; alleen de sleutel en je webhookadressen in de live omgeving zijn anders. Gebruik in de proefperiode alleen fictieve gegevens of de sandbox, tot de verwerkersovereenkomst is gesloten.

## Productietoegang voor softwarepartners

Bouw je software voor meerdere werkgevers, dan werk je als API-partner. Je begint direct in de sandbox; live sleutels en werkgevers uitnodigen kan pas na goedkeuring door Agreli.

1. Bouw en test met een testsleutel in je sandbox.
2. Vraag in de app bij **Instellingen → API en webhooks** productietoegang aan, met de website van je product, wat je bouwt en voor wie, en het verwachte volume.
3. Agreli beoordeelt de aanvraag. Bij een afwijzing zie je de toelichting en kun je opnieuw aanvragen.
4. Na goedkeuring maak je een live sleutel en nodig je werkgevers uit via het partnerportaal. Elke werkgever geeft zelf akkoord en kiest je rechten.
5. Werk per verzoek namens een werkgever met de kop `Agreli-Organization` (zie [Authenticatie](/docs/authenticatie#werken-namens-werkgevers)).

## Prijs

De sandbox is gratis. Live betaal je €7 per volledig afgeronde onboarding via de API; volumetarieven volgen. Zie [Developers](/developers).
