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 behavior of live connections. 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 "Connections" page, and connecting Demo Bank. 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.

Enduring Consent

If your application is requesting enduring consent in the OAuth flow, the information below is relevant.


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


Demo Bank allows you to request payments with specific amounts to simulate various failure states. Payments of amounts not listed in the table below will return successful responses.


The destination account must be a valid NZ bank account number. This means that payment requests where the destination account number is a Demo Bank account number (starting with 99-9999) will be rejected by the API.

AmountStatusStatus CodeNotes
5.02ERRORINTERNAL_ERRORAn internal Akahu error
5.03ERRORBANK_ERRORAn unknown bank error
5.10DECLINEDAKAHU_LIMIT_EXCEEDEDAmount exceeds an Akahu-defined payment limit
5.11DECLINEDINVALID_ACCOUNTAccount doesn't have PAYMENT_FROM attribute (payments only)
5.12DECLINEDINVALID_ACCOUNTAccount doesn't have TRANSFER_FROM attribute (transfers only)
5.13DECLINEDINVALID_ACCOUNTDestination account doesn't have TRANSFER_TO attribute (transfers only)
5.14DECLINEDINVALID_ACCOUNTSource and destination are the same account
5.16DECLINEDSINGLE_LIMIT_EXCEEDEDPayment exceeds a bank-defined single payment limit
5.17DECLINEDDAILY_LIMIT_EXCEEDEDPayment exceeds a bank-defined daily payment limit
5.18PENDING_APPROVALN/AForces payment into PENDING_APPROVAL state and triggers an MFA payment flow
5.19DECLINEDAUTHENTICATION_FAILEDSimulates a failed payment due to Akahu being unable to authenticate with the user's financial institution
5.20SENTN/ASets a 30 second delay on payment processing
5.21CANCELLEDUSER_CANCELLEDSets a 60 second delay then cancels the payment


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

Demo Bank does not contain real money.


Demo Bank transfers between the static accounts will always be marked SENT, unless you request more than the account "has", in which case it will be marked DECLINED with Status code INSUFFICIENT_FUNDS.


Since these transfers are simulated, the source and destination account balance will not change after the transfer is made.

Demo Bank does not contain real money.


SupportedNot supported


Not supported


Not supported


Not supported

One-Off Consent

If your application is requesting one-off consent in the OAuth-like flow, Demo Bank will return a mock identity response. The verify name endpoint is also supported.