API: Payment methods
Ask the API what a method supports rather than hard-coding it.
These endpoints return the same catalogue the API validates against, so a currency listed here is a currency that will be accepted, and one that is not will be refused before a bank is called.
On this page
GET Every method and its rules/v1/payment-methods
GET
Enabled on your account
/v1/payment-methods/available
Every method and its rules
GET
/v1/payment-methods
The full catalogue, whether or not your account is enabled for it.
Response
{
"object": "list",
"data": [
{
"method": "ideal",
"display_name": "iDEAL",
"currencies": ["EUR"],
"countries": ["NL"],
"refunds": { "kind": "standard", "withinDays": 180 },
"supports_recurring": false,
"requires_redirect": true,
"async_settlement": false,
"required_fields": ["country"],
"chargebacks": false,
"notes": null
}
]
}
Enabled on your account
GET
/v1/payment-methods/available
Only the methods you can actually create a payment with today. Drive your checkout from this rather than from a hard-coded list, and a newly enabled method appears without a deploy.
Response
{
"object": "list",
"data": [
{ "method": "ideal", "display_name": "iDEAL", "currencies": ["EUR"] },
{ "method": "bancontact", "display_name": "Bancontact", "currencies": ["EUR"] }
]
}
On every request
| Header | Description |
|---|---|
Authorization |
Bearer <api key>. The key decides whether you are
in sandbox or live; the host is the same either way. |
Content-Type |
application/json on every request with a body. |
Idempotency-Key |
On every creating request. Up to 255 characters, unique per operation, valid for 24 hours. |
Errors follow one shape across every endpoint, described in errors.