JavaScript is required to view this page
Error Codes Reference

Error Codes Reference

This page lists the error codes the Blink Data API returns, with the cause of each and what to do. A classified error carries a code (format BDTnnn) and a message; the message often names the rejected value, so log it.

Some errors carry no code. A missing required field or query parameter, or a date that can't be parsed, returns 400 with only a message, so read message and check the request against the Data Retrieval guide. A consent_id that doesn't exist, or that belongs to another organisation, returns 404: treat it as not found.

Error Response Format

{
  "timestamp": "2026-10-15T10:30:00.000+13:00",
  "path": "/v1/accounts/0e2b6c35-8f0a-4d5e-9c1b-2a7d4f6e8b90/transactions",
  "status": 400,
  "error": "400 BAD_REQUEST",
  "message": "To date time must not be before from date time",
  "code": "BDT237"
}

Branch on status and code. Don't parse error.

Common Error Codes

400 Bad Request

CodeCauseFix
BDT211The redirect_uri is not whitelisted for your organisationAdd it under Settings > API Settings in the portal, in the row for the environment you are calling
BDT212The redirect_uri is malformedSend an absolute URI
BDT213The bank is valid but not set up for your organisation, for example a production bank in the sandboxUse PNZ in the sandbox; in production, contact BlinkPay to enable the bank
BDT228The decoupled identifier_type is not supported by that bankUse an identifier the bank accepts (see Sandbox and Production Banks)
BDT230The mobile number is not validCheck the number the customer entered
BDT240expiration_date_time is before start_date_timeSet the expiry after the start
BDT241A permission the bank doesn't offer, for example ReadStatements at a bank without statementsRemove the permission for that bank; GET /v1/meta lists each bank's features
BDT242permissions is emptySend at least one permission
BDT243The bank value is not recognisedUse an exact, case-sensitive value: ANZ, ASB, BNZ, Westpac, Kiwibank, NZHL or PNZ
BDT244expiration_date_time is before end_date_timeSet the expiry on or after the end
BDT245Unknown flow.detail.typeUse gateway, redirect or decoupled
BDT246Unknown flow.flow_hint.typeUse redirect or decoupled
BDT251end_date_time is not after today (New Zealand date)Use a date from tomorrow onwards, or omit it
BDT252start_date_time is in the futureUse a start date-time that is now or earlier
BDT254The idempotency-key header is longer than 255 charactersUse a shorter key; a UUID is recommended
BDT255Both idempotency-key and the deprecated x-idempotency-key were sentSend only idempotency-key
BDT257start_date_time and end_date_time fall on the same date (New Zealand time)Make the data window span at least two dates
BDT258expiration_date_time falls on the date the consent is created (New Zealand time)Set an expiry on a later date, or omit it for no expiry
BDT259A field has the wrong JSON typeCheck the field named in message
BDT260A flow_hint has no bankAdd bank to the hint; Blink Data requires it
BDT261flow.detail.type is missing or emptySet type to gateway, redirect or decoupled
BDT262flow.flow_hint.type is missingAdd type to the hint
BDT264–BDT268The decoupled callback_url is malformed, uses a scheme other than http or https (production requires https), or its host is not public or does not resolveUse a public URL, https in production
BDT236The requested dates fall outside the consent's start_date_time to end_date_time windowKeep the date range within the consent's window
BDT237The to date is before the from dateSwap or correct the dates
BDT238The to date is after todayUse today or earlier, or omit it
BDT239The from date is in the futureUse a from date today or earlier
BDT263The bank's result is too large to return in one requestNarrow the request, for example the date range, and retry
BDT299The request body could not be readCheck the JSON body against the examples in the Data Retrieval guide

403 Forbidden

CodeCauseFix
BDT401The redirect flow is not enabled for that bankUse another flow (the gateway or decoupled) or contact BlinkPay
BDT402The decoupled flow is not enabled for that bankUse another flow (the gateway or redirect) or contact BlinkPay
BDT403The gateway flow is not enabled for your organisationUse the redirect or decoupled flow, or contact BlinkPay to enable the gateway
BDT409The consent was rejectedCreate a new consent
BDT410The consent has been revokedCreate a new consent
BDT411The consent doesn't include the permission this endpoint needsCreate a new consent with the required permission
BDT412The consent has expired (its expiration_date_time has passed; it becomes Consumed)Create a new consent
BDT413The consent is not yet authorisedWait for the customer to finish authorising; check with GET /v1/consents/{consent_id}
BDT415The bank says the consent is no longer usable, for example because the customer revoked it at the bankCreate a new consent

404 Not Found

CodeCauseFix
BDT101The consent doesn't exist, or belongs to another organisationCheck the consent ID, and that you are calling the environment the consent was created in

409 Conflict

CodeCauseFix
BDT701The idempotency key was reused with a different request bodyUse a new idempotency key for a different request
BDT702The consent has already been revokedNo action needed; access is already removed
BDT704A consent request with the same idempotency key is still in progressRetry with the same key once the first request completes

422 Unprocessable Entity

CodeCauseFix
BDT009Revoking a consent that has already ended (Rejected, GatewayTimeout or Consumed)No action needed; create a new consent if you still need access
BDT013The consent timed out at the gateway (GatewayTimeout)Create a new consent
BDT014A BNZ consent with start_date_time more than 2 years agoUse a start date within the last 2 years

502 Bad Gateway

CodeCauseFix
BDT603The bank could not accept the request at this timeWait, then retry with backoff

503 Service Unavailable

CodeCauseFix
BDT601The bank's service is down or not respondingRetry with backoff; check for bank maintenance
BDT602The bank rate-limited the requestWait briefly, then retry with backoff
BDT604A temporary Blink Data problemRetry shortly

Need Help?

For errors not listed here or for assistance troubleshooting:

  1. Check the message field for specific details
  2. Review the Troubleshooting Guide
  3. Contact support@blinkpay.co.nz