Each product has its own metadata endpoint, returning information about the banks available to you and their capabilities. Use it to configure your integration from bank features rather than hard-coding them. The two responses differ: only the Blink Payments one carries payment limits, flow support and authorisation timeouts.
GET /payments/v1/meta HTTP/1.1
Host: sandbox.debit.blinkpay.co.nz
Authorization: Bearer {access_token}
Required scope: view:metadata
[
{
"name": "ASB",
"payment_limit": {
"total": "100000",
"currency": "NZD"
},
"features": {
"enduring_consent": {
"enabled": true,
"consent_indefinite": false
},
"decoupled_flow": {
"enabled": true,
"available_identifiers": [
{ "type": "mobile_number", "name": "Mobile Number" },
{ "type": "consent_id", "name": "Consent ID" }
],
"request_timeout": "PT10M"
}
},
"redirect_flow": {
"enabled": true,
"request_timeout": "PT10M"
}
}
]
| Field | Description |
|---|---|
payment_limit.total | BlinkPay's maximum for a single payment to this bank, in NZD: one value per bank, applied to every flow and every consent type. An amount string such as "100000". A payment over it is rejected with 400 BP229. It doesn't show the bank's own limits, such as a daily total or ASB's $10,000 per AutoPay payment, so a smaller payment can still be declined at the bank; see Transaction Limits. A separate limit applies to your account |
features.decoupled_flow.enabled | Whether decoupled flow is supported |
features.decoupled_flow.available_identifiers | Supported identifier types |
features.decoupled_flow.request_timeout | Timeout for decoupled consent (ISO 8601) |
features.enduring_consent.enabled | Whether recurring payments are supported |
features.enduring_consent.consent_indefinite | Whether indefinite consents are allowed |
features.enduring_consent.maximum_consent | Maximum consent duration (ISO 8601) |
features.card_payment.enabled | Whether card payments are supported |
features.card_payment.allowed_card_payment_types | Supported card payment types (e.g. PANENTRY, GOOGLEPAY) |
features.card_payment.allowed_card_networks | Supported card networks (e.g. VISA, MASTERCARD) |
redirect_flow.enabled | Whether redirect flow is supported |
redirect_flow.request_timeout | Timeout for redirect consent (ISO 8601) |
When card payments are enabled for your account, an entry with "name": "Card" appears in the same array as the bank entries:
{
"name": "Card",
"features": {
"card_payment": {
"enabled": true,
"allowed_card_payment_types": [
"APPLEPAY",
"CLICKTOPAY",
"GOOGLEPAY",
"PANENTRY"
],
"allowed_card_networks": [
"VISA",
"MASTERCARD"
]
}
}
}
If the card payment entry is not present, card payment onboarding has not been completed; the Blink Payments card payments guide describes the onboarding steps.
GET /v1/meta HTTP/1.1
Host: sandbox.data.blinkpay.co.nz
Authorization: Bearer {access_token}
Required scope: read:meta
The response is a top-level JSON array with one entry per bank enabled for your organisation, so it lists only the banks you can create consents for:
[
{
"bank_id": "59a68dd9-6070-11f0-bb8d-0ad2a4bc413d",
"name": "ASB",
"features": {
"accounts": true,
"balances": true,
"transactions": true,
"statements": true,
"party": true
}
}
]
| Field | Description |
|---|---|
bank_id | Identifier for the bank. It differs between sandbox and production, so don't hard-code it; use name (the bank value you send when creating a consent) |
name | Bank display name |
features.accounts | Whether account data is supported |
features.balances | Whether balance data is supported |
features.transactions | Whether transaction data is supported |
features.statements | Whether statement data is supported (false at Kiwibank and NZHL) |
features.party | Whether party (account holder) data is supported |
Metadata changes infrequently. Cache the response for up to 24 hours to reduce API calls.
| Use case | Product | How |
|---|---|---|
| Bank selection UI | Both | Blink Payments: show only banks whose redirect_flow or features.decoupled_flow is enabled for the flow you use. Blink Data: show the banks in the response, which are those enabled for your organisation |
| Payment limits | Blink Payments only | Check the payment amount against payment_limit.total before submitting |
| Card payment availability | Blink Payments only | Check for the Card entry and its allowed card types and networks |
| Timeout configuration | Blink Payments only | Size your polling window from request_timeout. The Blink Data response has no timeouts |
| Permission availability | Blink Data only | Request only the permissions the bank supports, for example leave out ReadStatements where features.statements is false (otherwise 400 BDT241) |