Demo Bank

Find out how to use Akahu's Demo Bank to test your integration

For non-production environments, Akahu offers a Demo Bank connection for application development and testing. Demo Bank can be used for both one-off and enduring connections. It is also possible to connect to Demo Bank in MyAkahu for Personal App development.

📘

Demo Bank is useful for testing purposes, however it does not fully mimic the behaviour of live connections. Please check our feature support table to see what functionality is currently available. We strongly recommend that you test your application with real institutions before going live.

Connecting to Demo Bank

There are two ways to connect to Demo Bank:

  • For Personal Apps, you can connect by logging in to MyAkahu, navigating to the "Developers" page and adding a new Demo Bank connection. After Demo Bank is connected to your Akahu account, you must also select and share specific Demo Bank accounts with your Personal App via the "Developers" page.

  • For Full Apps, you can connect Demo Bank during the Akahu OAuth flow. Demo Bank will only be available as a connection for non-production environments.

When connecting to Demo Bank, you'll be prompted to enter a username and password. You may enter any value into these fields to continue. In order to simulate an incorrect credential error, the password "Password1" can be entered.

The next screen will simulate a multi-factor authentication screen by asking a simple math question. You must answer this question correctly to complete the connection flow.

Feature support

The following features are supported for Demo Bank connections.

Enduring accessOne-off access
Account data✅✅
Transaction data✖️✅
Party (identity) data✅✅
Payments✅✅
Webhooks✅N/A

For further information about using Demo Bank with enduring access features, please see the enduring access section below.

Enduring access

The information below is relevant if you are using Demo Bank connections with enduring access.

Accounts

Demo Bank has 4 static accounts:

NameAccount NumberTypeNotes
Demo Checking99-9999-9999999-91CHECKINGA checking account is useful for testing payments
Demo Savings99-9999-9999999-92SAVINGSA savings account that can't make payments
Demo Overdrawn99-9999-9999999-93CHECKINGA checking account that has a negative balance
Demo Kiwisaver99-9999-9999999-94KIWISAVERA KiwiSaver account which cannot make payments

Transactions

⚠

Transaction data is not currently supported for Demo Bank accounts connected with enduring access.
Transaction related API endpoints will not return any data for Demo Bank accounts.

Payments

Demo Bank has both a classic connection and an official open banking connection, matching the two ways that Akahu connects to real banks. Your app's configuration determines which one your users connect to, and payment outcomes differ between them. One-off payments always use the official connection.

Choosing a destination account

You should always pay a real NZ bank account number. Attempting to pay a Demo Bank account number will fail bank-account validation with an HTTP 400 error.

Magic amounts

Demo Bank forces a scripted payment outcome when the amount matches one of the codes below. Amounts are matched to two decimal places, and a leading 105. is treated as an alias for 5. (so 105.15 behaves as 5.15), handy when a demo should not look like it is moving loose change.

Each outcome is listed as status / status code. Enduring payments report the code in status_code, and one-off payments report it in status_reason.code.

AmountDescriptionOfficial (One-Off)Official (Enduring)Classic
5.01Payment creation fails500 error response500 error response500 error response
5.02Internal errorFAILED / INTERNAL_ERRORERROR / INTERNAL_ERRORERROR / INTERNAL_ERROR
5.03Bank errorFAILED / BANK_ERRORERROR / BANK_ERRORERROR / BANK_ERROR
5.04Indeterminate bank errorFAILED / BANK_ERROR_INDETERMINATEERROR / BANK_ERROR_INDETERMINATEERROR / BANK_ERROR_INDETERMINATE
5.11Account not allowed to make paymentsN/AN/ADECLINED / INVALID_ACCOUNT
5.14Source and destination are the same accountN/AN/ADECLINED / INVALID_ACCOUNT
5.15Insufficient funds*FAILED / REJECTEDDECLINED / REJECTEDDECLINED / INSUFFICIENT_FUNDS
5.16Single limit exceededN/ADECLINED / SINGLE_LIMIT_EXCEEDEDDECLINED / SINGLE_LIMIT_EXCEEDED
5.17Consent limit exceededN/ADECLINED / PERIOD_LIMIT_EXCEEDEDDECLINED / DAILY_LIMIT_EXCEEDED
5.19Consent no longer validN/ADECLINED / CONSENT_REVOKEDDECLINED / AUTHENTICATION_FAILED
5.20Short delay, then settles30s delay, then SENT30s delay, then SENT30s delay, then SENT
5.22Short delay, then fails30s delay, then FAILED / REJECTED30s delay, then DECLINED / REJECTED30s delay, then DECLINED / INSUFFICIENT_FUNDS
5.23Long delay, then settles180s delay, then SENT180s delay, then SENT180s delay, then SENT
5.24Long delay, then fails180s delay, then FAILED / REJECTED180s delay, then DECLINED / REJECTED180s delay, then DECLINED / INSUFFICIENT_FUNDS

*The NZ Open Banking standards do not reveal the reason for a payment rejection, so the equivalent status code for the official connection is REJECTED rather than INSUFFICIENT_FUNDS. See payment status for more on this.

ℹ

Since these payments are simulated, the source account balance will not change after the payment is made.

Demo Bank does not contain real money.

Webhooks

SupportedNot supported
TOKENTRANSACTION
ACCOUNT
PAYMENT

Did this page help you?