API
Gavekort
Fire endepunkter dækker hele kortets liv gennem API'et: udsted, list, slå op, indløs.
| Metode | Sti | Gør |
|---|---|---|
| POST | /v1/api/giftcards | Udsteder et kort |
| GET | /v1/api/giftcards | Lister forretningens kort |
| GET | /v1/api/giftcards/{code} | Slår ét kort op |
| POST | /v1/api/giftcards/{code}/redeem | Indløser et beløb |
Prøv det her på siden
Konsollen herunder kører de samme skemaer og den samme indløsningsregel som API'et, mod et kort, der kun findes i din browser. Ret i kroppen, og se hvilken status dit eget kald ville få.
Konsollen
- Kort
- PIRR-DLT2-9GPW
- Saldo
- 500,00 kr.
- Status
- active
Forespørgsel
GET /v1/api/giftcards/PIRR-DLT2-9GPW
Authorization: Bearer pk_test_…
Ingen krop. Koden står i stien.
Svar
200 OK
{
"giftCard": {
"id": "gc_3n8qk2vh",
"code": "PIRR-DLT2-9GPW",
"orderId": null,
"status": "active",
"initialOre": 50000,
"balanceOre": 50000,
"expiresAt": "2029-01-15T12:00:00.000Z",
"merchantSlug": "cafe-noir",
"reference": "Faktura 2026-114",
"punchValueOre": null
}
}Saldoen er regnet ud af posteringerne, ikke læst af et felt — det er derfor den altid stemmer med indløsningerne.
Svar 200 OK. Saldoen er regnet ud af posteringerne, ikke læst af et felt — det er derfor den altid stemmer med indløsningerne.
Konsollen kalder ikke ud på nettet — den kører de samme skemaer og den samme indløsningsregel som API'et, mod et kort, der kun findes i din browser. Statuskoder og fejltekster er derfor dem, din egen integration får.
Udsted et kort
Udsteder et kort uden om betalingsflowet — til et B2B-salg mod faktura eller et kort givet med på huset.
| Felt | Type | Krav |
|---|---|---|
| amountOre | heltal | Påkrævet. Beløb i øre, mindst 1. |
| validityMonths | heltal | Valgfrit. Mindst 36 — kortere afvises. |
| origin | b2b | comp | Valgfrit. Standard er comp. |
| reference | tekst | Valgfrit. Din egen note, fx et fakturanummer. Højst 200 tegn. |
curl -X POST https://api.pirr.fun/v1/api/giftcards \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{
"amountOre": 50000,
"origin": "b2b",
"reference": "Faktura 2026-114"
}'Svarer 201 med kortet under giftCard. Beløbet er i øre — 50000 er 500,00 kr.
List kort
curl https://api.pirr.fun/v1/api/giftcards \
-H "Authorization: Bearer pk_live_..."Svarer 200 med forretningens kort under giftCards.
Slå et kort op
curl https://api.pirr.fun/v1/api/giftcards/PIRR-XXXX-XXXX \
-H "Authorization: Bearer pk_live_..."Svarer 200 med kortet under giftCard, eller 404 hvis koden ikke findes på din forretning.
Indløs
Trækker et beløb fra kortets saldo. Koden står i stien, beløbet i kroppen.
| Felt | Type | Krav |
|---|---|---|
| amountOre | heltal | Påkrævet. Beløb i øre, mindst 1. |
| location | tekst | Valgfrit. Hvor det skete, fx "Vesterbro". Højst 120 tegn. |
| idempotencyKey | tekst | Valgfrit, men anbefalet. Samme nøgle to gange trækker kun én gang. |
curl -X POST https://api.pirr.fun/v1/api/giftcards/PIRR-XXXX-XXXX/redeem \
-H "Authorization: Bearer pk_live_..." \
-H "Content-Type: application/json" \
-d '{
"amountOre": 6400,
"location": "Vesterbro",
"idempotencyKey": "pos-terminal-3-1753440000"
}'Svarer 200 med resultatet af indløsningen:
{
"code": "PIRR-XXXX-XXXX",
"amountOre": 6400,
"remainingBalanceOre": 43600,
"status": "active"
}status er kortets tilstand efter indløsningen — en af active, redeemed, expired, void, disputed. Er saldoen brugt op, skifter den til redeemed.