Kaarten
Een kaart is het hart van de koppeling. Je maakt hem aan met wat je uit je dossier kent, de familie vult de rest aan in de customiser, en jij volgt de status.
Het Card-model
- Name
id- Type
- ID!
- Description
Het globale id, bijvoorbeeld
gid://rouwkaart/Card/069a4543-62ed-442a-b69f-489b3182431a. Bewaar dit bij je dossier.
- Name
theme- Type
- Theme
- Description
Het gekozen thema, of
nullwanneer de familie nog moet kiezen. Wordt alleen opgehaald wanneer je er velden van vraagt.
- Name
externalDossierId- Type
- String
- Description
Jouw eigen dossiernummer. Uniek binnen je partneraccount en onveranderlijk na het aanmaken.
- Name
externalFuneralDirectorId- Type
- String
- Description
Welke uitvaartondernemer het dossier voert. Wij doen er niets mee; het staat er zodat jij kunt terugvinden waar een kaart vandaan kwam.
- Name
deceased- Type
- Deceased!
- Description
firstName,lastName,dateOfBirth,dateOfDeathenphotoUrl.
- Name
livestreamUrl- Type
- URL
- Description
De link naar de uitzending van de uitvaart. Blijft ook na het bestellen te wijzigen, want die link is vaak pas op de ochtend zelf bekend.
- Name
familyContact- Type
- FamilyContact!
- Description
nameenemail. Op dit adres komt de bestelling te staan, met de links naar de kaart en de genodigdenlijst.
- Name
status- Type
- CardStatus!
- Description
DRAFT,ORDEREDofACTIVE.
- Name
cardUrl- Type
- URL
- Description
De openbare link. Alleen gevuld zodra de status
ACTIVEis. Deze mag je wél opslaan en delen.
- Name
test- Type
- Boolean!
- Description
Aangemaakt met een testsleutel.
- Name
createdAt / updatedAt- Type
- DateTime!
- Description
ISO 8601 met tijdzone.
De statussen
- Name
DRAFT- Type
- cardUrl is null
- Description
In bewerking. De openbare pagina bestaat nog niet.
- Name
ORDERED- Type
- cardUrl is null
- Description
De familie heeft besteld.
- Name
ACTIVE- Type
- cardUrl is gevuld
- Description
De openbare kaart staat online en kan gedeeld worden.
Kaart aanmaken
Alleen externalDossierId is verplicht. Alles wat je nog niet weet, stuur je
later met cardUpdate.
CardCreateInput
- Name
externalDossierId- Type
- String!
- Description
Jouw dossiernummer. Uniek binnen je account; een tweede kaart op hetzelfde nummer geeft
TAKEN.
- Name
themeId- Type
- ID
- Description
Weglaten betekent: de familie kiest zelf in de customiser, via een korte wizard voor thema, opzet en zichtbaarheid.
- Name
externalFuneralDirectorId- Type
- String
- Description
Vrij tekstveld, maximaal 200 tekens.
- Name
deceased- Type
- DeceasedInput
- Description
firstName,lastName,dateOfBirth(JJJJ-MM-DD),dateOfDeath(JJJJ-MM-DD) enphotoUrl.
- Name
livestreamUrl- Type
- URL
- Description
Http of https.
- Name
familyContact- Type
- FamilyContactInput
- Description
nameenemail.
Verzoek
mutation CreateCard($input: CardCreateInput!) {
cardCreate(input: $input) {
card {
id
status
externalDossierId
deceased {
firstName
lastName
photoUrl
}
test
createdAt
}
userErrors {
field
message
code
}
}
}
Antwoord
{
"data": {
"cardCreate": {
"card": {
"id": "gid://rouwkaart/Card/069a4543-62ed-442a-b69f-489b3182431a",
"status": "DRAFT",
"externalDossierId": "HS-2026-0042",
"deceased": {
"firstName": "Jan",
"lastName": "Jansen",
"photoUrl": "https://media.rouwkaart-online.nl/memoriam/069a…/portret.jpg"
},
"test": true,
"createdAt": "2026-09-25T10:00:00.000Z"
},
"userErrors": []
}
}
}
Over de portretfoto
deceased.photoUrl is bij het aanmaken het adres waar wíj de foto ophalen.
Wij slaan hem daarna in onze eigen opslag op, en in het antwoord staat onze
kopie.
Dat heeft twee redenen: de kaart moet jaren blijven werken, ook als jouw systeem er niet meer is, en jouw server krijgt geen bezoekersverkeer van iedereen die de kaart bekijkt.
- Name
Formaten- Type
- jpeg, png, webp, gif, heic
- Description
- Name
Grootte- Type
- maximaal 10 MB
- Description
- Name
Bereikbaar- Type
- op het moment van aanmaken
- Description
Het adres moet openbaar zijn; wij sturen geen inloggegevens mee.
Lukt het ophalen niet, dan mislukt de hele mutatie en ontstaat er géén kaart. Dat is bewust: een kaart die stilletjes zonder portret ontstaat merk je pas als de familie ernaar vraagt.
Foto niet op te halen
{
"data": {
"cardCreate": {
"card": null,
"userErrors": [
{
"field": ["input", "deceased", "photoUrl"],
"message": "kon niet worden opgehaald (ophalen gaf status 404)",
"code": "UNPROCESSABLE"
}
]
}
}
}
Idempotency
Weet je niet zeker of je verzoek is aangekomen (netwerk viel weg, timeout, herstart), stuur het dan opnieuw met dezelfde Idempotency-Key. Je krijgt
het antwoord van de eerste keer terug en er komt geen tweede kaart.
- Name
Idempotency-Key- Type
- header, max 255 tekens
- Description
Een eigen unieke waarde per verzoek. Je dossiernummer plus een handeling werkt goed:
HS-2026-0042-create.
- Name
X-Rouwkaart-Idempotent-Replay- Type
- antwoordheader
- Description
truewanneer dit het onthouden antwoord is.
Dezelfde sleutel op een ánder verzoek wordt afgewezen. Dat is bijna altijd een sleutel die per ongeluk hergebruikt wordt. Een verzoek dat een fout opleverde wordt niet onthouden: corrigeren en met dezelfde sleutel opnieuw sturen mag.
Twee keer hetzelfde 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}" \
-H "Idempotency-Key: HS-2026-0042-create" \
-d @kaart.json
# Nog een keer, met dezelfde sleutel:
# X-Rouwkaart-Idempotent-Replay: true
# ... en exact hetzelfde antwoord.
Krijg je TAKEN op je dossiernummer terwijl je denkt dat het de eerste
poging was, dan is je vorige verzoek wél aangekomen. Haal de kaart op en
ga verder. Dit is precies waar de idempotency-sleutel voor is.
Kaart ophalen
Op het globale id. Een kaart van een andere partner geeft null, hetzelfde
als een kaart die niet bestaat. Zou dat verschillen, dan verraadt het
antwoord dát die kaart er is.
Er is bewust geen "al mijn kaarten"-query: je kent je eigen dossiers, en wij zijn niet de plek om jouw administratie te doorzoeken.
Verzoek
query Card($id: ID!) {
card(id: $id) {
id
status
cardUrl
updatedAt
deceased {
firstName
lastName
dateOfDeath
}
familyContact {
email
}
livestreamUrl
}
}
Antwoord, live
{
"data": {
"card": {
"id": "gid://rouwkaart/Card/069a4543-62ed-442a-b69f-489b3182431a",
"status": "ACTIVE",
"cardUrl": "https://memoriam.rouwkaart-online.nl/memoriam/jan-jansen-1940-05-01",
"updatedAt": "2026-09-26T09:14:03.000Z",
"deceased": {
"firstName": "Jan",
"lastName": "Jansen",
"dateOfDeath": "2026-09-18"
},
"familyContact": { "email": "marieke@voorbeeld.nl" },
"livestreamUrl": "https://kerkdienstgemist.nl/jan"
}
}
}
Elk object is ook op te halen met node(id:):
query Node {
node(id: "gid://rouwkaart/Card/069a4543-62ed-442a-b69f-489b3182431a") {
__typename
... on Card {
status
cardUrl
}
}
}
Kaart bijwerken
Alleen de velden die je meestuurt veranderen. Stuur expliciet null om een
veld te wissen.
Wat vastligt
- Name
externalDossierId- Type
- na het aanmaken
- Description
Staat niet in
CardUpdateInput. Een kaart hoort bij één dossier, en dat verband loskoppelen kan alleen aan jouw kant.
- Name
themeId- Type
- na het bestellen
- Description
De bestelling hangt aan dat product. Probeer je het toch, dan krijg je
IMMUTABLE.
De rest blijft open, ook na het bestellen, de livestreamlink voorop.
Verzoek
mutation UpdateCard($id: ID!, $input: CardUpdateInput!) {
cardUpdate(id: $id, input: $input) {
card {
id
livestreamUrl
updatedAt
}
userErrors {
field
message
code
}
}
}
Thema wijzigen na bestellen
{
"data": {
"cardUpdate": {
"card": null,
"userErrors": [
{
"field": ["input", "themeId"],
"message": "kan na het bestellen niet meer worden gewijzigd",
"code": "IMMUTABLE"
}
]
}
}
}
Een cardUpdate zonder bruikbare velden is geen fout. De kaart blijft zoals
hij is en je krijgt hem gewoon terug.
Veelgestelde vragen
- Name
Kan ik een kaart verwijderen?- Type
- niet via de API
- Description
Een rouwkaart die gedeeld is, moet blijven werken. Moet er echt iets weg, bijvoorbeeld een testkaart of een dossier dat niet doorgaat, mail ons.
- Name
Kan ik zelf bestellen via de API?- Type
- nee
- Description
Bestellen gebeurt door de familie in de customiser, na het invullen. Dat is ook het moment waarop zij de prijs ziet en akkoord geeft.
- Name
Wat als de familie niets doet?- Type
- de kaart blijft DRAFT
- Description
Er verloopt niets en er gebeurt niets. Je kunt later gewoon een nieuwe sessielink opvragen.