Payment Type Guides
Choose and implement the right payment flow for your product.
Spare supports multiple payment types under one consent and payment-request model. Each type maps to a different commercial pattern; this hub links to the right integration path.
Country matters
Not every type is available in every region. Check Coverage and use the country selector before building.
Quick picker
| Payment type | Use when | Guide |
|---|---|---|
SingleInstantPayment | One-off checkout or invoice | Single instant |
FixedPeriodicSchedule / VariablePeriodicSchedule | Subscriptions, rent, installments | Recurring & scheduled |
FixedOnDemand / VariableOnDemand | Pre-auth + charge later (utilities, top-ups) | On-demand |
FixedDefinedSchedule / VariableDefinedSchedule | Known future dates (loan schedule) | Defined schedule |
Shared building blocks
Every payment type uses the same primitives:
- Payment request, declares type, beneficiary, and instructions
- Consent, payer authorizes at their bank (direct API or Spare Link)
- Execution, Spare submits debits per the schedule or on demand
- Mandate, created for any non-SIP type to track recurring or future debits
Read Payment flow and Mandates before starting a type-specific guide.
End-to-end flow
Every type follows the same five steps; only the payment request body differs.
| Step | Action | Endpoint |
|---|---|---|
| 1 | Create the payment request (type + instructions) | POST /payment-requests β 201 |
| 2 | Create a consent, get the authorization URL | POST /consent/payment/create?id={internalReference} β 201 |
| 3 | Payer authorizes at their bank | Bank redirect |
| 4 | Exchange the bank's code for a payment record | POST /payment-actions/write-callback?code={code}&state={state} β 201 |
| 5 | Read the payment status | GET /payments/{paymentId} β 200 |
Write-callback is required
The payment record doesn't exist until step 4. GET /payments/{paymentId} returns 404 until the write-callback runs. POST /payment-requests also needs an x-signature, see Request Signing.