Testen

De teststand is geen aparte omgeving met halve functionaliteit. Het is dezelfde API, hetzelfde schema en dezelfde bestelflow; alleen de uitkomst blijft binnenskamers.

Wat er anders is

  • Name
    Kaarten dragen test: true
    Description

    Zo zie je in elk antwoord en in elke webhook of je in de teststand zit.

  • Name
    Alle post gaat naar je testadres
    Description

    Het besteladres, het klantaccount dat wordt aangemaakt, de gegevens waar onze mailflows op aanhaken: alles wijst naar het adres dat je bij ons hebt opgegeven, niet naar de familie.

  • Name
    Niets telt mee
    Description

    Testkaarten blijven buiten rapportages en facturatie.


De hele flow doorlopen

Het enige stuk dat je niet met een API-verzoek kunt nadoen is het bestellen: dat gebeurt door de familie in de customiser. Dat is meteen de reden om het één keer helemaal te doen: dan zie je de statusovergangen en de webhooks echt langskomen.

  1. Maak een kaart aan met de testsleutel.
  2. Vraag een sessielink op met target: CUSTOMIZER en open die zelf.
  3. Vul de kaart in zoals een familie dat zou doen en bestel.
  4. Kijk wat er bij je binnenkomt: cards/ordered en cards/activated.
  5. Vraag de kaart op en controleer dat status ACTIVE is en cardUrl gevuld.

Een testkaart in één verzoek

curl -X POST https://memoriam.rouwkaart-online.nl/partner/api/2026-10/graphql \
  -H "Content-Type: application/json" \
  -H "X-Rouwkaart-Access-Token: {access_token}" \
  -d '{
    "query": "mutation CreateCard($input: CardCreateInput!) { cardCreate(input: $input) { card { id test status } userErrors { field message code } } }",
    "variables": {
      "input": {
        "externalDossierId": "TEST-001",
        "deceased": {
          "firstName": "Test",
          "lastName": "Persoon",
          "dateOfBirth": "1940-05-01",
          "dateOfDeath": "2026-09-18"
        },
        "familyContact": {
          "name": "Testfamilie",
          "email": "familie@voorbeeld.nl"
        }
      }
    }
  }'

Antwoord

{
  "data": {
    "cardCreate": {
      "card": {
        "id": "gid://rouwkaart/Card/4b197310-0e94-4bef-97e0-957bed1803f6",
        "test": true,
        "status": "DRAFT"
      },
      "userErrors": []
    }
  }
}

Wat je wilt hebben getest

Een lijstje dat zich in de praktijk heeft bewezen. De eerste drie gaan vaak mis.

  • Name
    Een dossiernummer dat al bestaat
    Type
    userError TAKEN
    Description

    Stuur twee keer dezelfde externalDossierId. Je code hoort dit te herkennen als "de vorige poging is wél aangekomen", niet als een storing.

  • Name
    Een sessielink twee keer openen
    Type
    410
    Description

    De tweede keer is hij op. Toon je gebruiker dan een knop om een nieuwe op te halen, geen foutpagina.

  • Name
    Een webhook die twee keer komt
    Type
    ontdubbelen
    Description

    Stuur dezelfde melding twee keer naar je eigen endpoint en controleer dat er niets dubbel gebeurt.

  • Name
    Een onbereikbare portretfoto
    Type
    userError UNPROCESSABLE
    Description

    Geef een photoUrl op die 404 geeft. De kaart hoort dan níét te ontstaan.

  • Name
    De livestreamlink na het bestellen
    Type
    lukt
    Description

    Dat moet kunnen; het is precies waarom dat veld na het bestellen open blijft.

  • Name
    Het thema na het bestellen
    Type
    userError IMMUTABLE
    Description

    Dat mag niet meer.


Opruimen

Testkaarten blijven staan tot je ze weghaalt; wij ruimen ze niet automatisch op. Heb je er een flinke stapel van gemaakt, mail ons dan even. Eén regel en ze zijn weg.

Van test naar live

Als bovenstaande allemaal doet wat je verwacht, is er maar één ding dat verandert: de sleutel. Zet rk_live_… in je omgevingsvariabelen en je draait live.

Had je hier iets aan?