Scopes

Akahu's permission system and how to use it to get the data you want

As part of Akahu's dedication to privacy and the security of personal data, we use a scope system to provide only the data an app requires to function (i.e. The Principle of Least Privilege).

As an app developer, you will need to specify and give reasons for which scopes your app requires when you sign up to create an app. These scopes are enforced at the data access level, so your app will never be able to access data for which it doesn't have permission, nor ask users to grant access to data the app is not allowed to view.

For example: If your app provides account summaries on a dashboard, it has no reason to access payment or transfer scopes. If the app tried to access the /payments endpoint it would be denied.

Personal apps

The scopes of access granted to a Personal App can be managed at https://my.akahu.nz/developers/permissions. By default Personal Apps have full read-only permissions to your data.

Providing scopes for OAuth requests

To get you up and running faster, you only need to supply Akahu with the scope for the type of consent that your app is requesting (enduring consent or one-off consent). Akahu will automatically add all of the additional scopes that your app is allowed to access. If you wish to request a subset of your app's available scopes, simply set the scope parameter to a space-separated list of the scopes you desire.

Enduring consent scopes

Akahu provides the following scopes for requests that require enduring consent.

ENDURING_CONSENT (required)

Gives your app ongoing permission to access the user's accounts. Supply this scope in an OAuth request to begin an enduring consent flow.

AKAHU (optional)

Gives your app access to the user's profile information held by Akahu, such as the email address they used to register their Akahu account.

ACCOUNTS (optional)

Gives access to the user's connected accounts. You will only be able to view the accounts shared with you by the user. The account data visible to your app is also limited, depending on whether your app needs access to balances, metadata, or account holder details.

TRANSACTIONS (optional)

Gives access to the user's transactions. You will only be able to view transactions from accounts shared with you by the user. Further restrictions may be applied including limiting the date window viewable for your app or limiting the categories of transactions visible to your app.

TRANSFERS (optional)

Gives access to our transfer API, allowing your app to move money between a user's accounts you have been granted access to.

PAYMENTS (optional)

Gives access to our payments API, allowing your app to send money to any account number from accounts you have been granted access to.

IDENTITY_NAMES (optional)

Gives access to the user's official name as retrieved from connected accounts.

IDENTITY_DOBS (optional)

Gives access to the user's date of birth as retrieved from connected accounts.

IDENTITY_EMAILS (optional)

Gives access to the user's email addresses as retrieved from connected accounts.

IDENTITY_PHONES (optional)

Gives access to the user's phone numbers as retrieved from connected accounts.

IDENTITY_TAX_NUMBERS (optional)

Gives access to the user's tax numbers (IRD numbers) as retrieved from connected accounts.

One-off consent scopes

Akahu provides the following scopes for one-off requests.

ONEOFF (required)

Gives your app permission to access a user's data at the time you request it. Supply this scope in an OAuth request to begin a one-off connection flow.

HOLDER (optional)

Gives access to the user's account holder information, as supplied by the connected institution.

ADDRESS (optional)

Gives access to the user's residential and postal address, as supplied by the connected institution.

ACCOUNT (optional)

Gives access to the user's account details, including the holder name, account number, and branch details, as supplied by the connected institution.

TRANSACTIONS (optional)

Gives access to transactions associated with the user's connected account(s).

STATEMENTS (optional)

Gives your app permission to access a user's bank statements.

PDF_EXPORTS (optional)

Gives your app permission to access a user's bank transactions in PDF format.