Skip to content

Refunds

Refunds reverse a succeeded PaymentIntent, in full or in part, within acquiring rules.

Base path: /v1/refunds

Create

bash
curl https://api.digid.cc/v1/refunds \
  -u sk_live_...: \
  -H "Idempotency-Key: refund-order-1001" \
  -H "Content-Type: application/json" \
  -d '{
    "payment_intent": "pi_1Ab...",
    "amount": 2490,
    "reason": "requested_by_customer"
  }'
FieldTypeNotes
payment_intentstringRequired. The succeeded intent to refund.
amountintMinor units. Omit for a full refund.
reasonduplicate | fraudulent | requested_by_customerInformational.
metadataobjectFree-form.

Constraints (FR-9):

  • Refund amount ≤ original capture amount — excess is rejected.
  • A refunded intent can be refunded again only if a positive balance remains (partial refunds are additive up to the capture amount).

Response:

json
{
  "id": "re_1Cd...",
  "object": "refund",
  "amount": 2490,
  "currency": "eur",
  "payment_intent": "pi_1Ab...",
  "status": "pending",
  "created_at": "2026-09-08T09:30:00Z"
}

State machine

mermaid
stateDiagram-v2
    [*] --> pending: create
    pending --> succeeded
    pending --> failed
    succeeded --> [*]
    failed --> [*]

pendingsucceeded normally; failed means the acquirer rejected the refund (e.g. the original capture is being disputed). A refund.succeeded or refund.failed webhook fires on the transition.

Retrieve

bash
curl https://api.digid.cc/v1/refunds/re_1Cd... -u sk_live_...:

List

bash
curl "https://api.digid.cc/v1/refunds?payment_intent=pi_1Ab...&limit=25" -u sk_live_...:

Further reading

  • Settlement — refunds vs settlements.
  • Disputes — what happens when a cardholder disputes.

digid pay — built in Europe.