Welcome to Dapi

Here you will find comprehensive documentation to help you integrate with Dapi's API as quickly as possible, as well as support if you get stuck. Get started below!

Get Started    

Get Started

API Requirements

Our API uses POST requests and HTTP response codes. All responses come in standard JSON. All requests should be posted in standard JSON.

Integrating with Dapi

1. Get Your API Keys

To start with the Dapi API, create an account on our Dashboard.

  1. Open Dashboard and click Sign Up

Dashboard Login Menu

  1. Enter your details, including your company name, email address, and a password for your account. Your company name will only be used to identify you within the Dashboard, as you will be able to make multiple applications and select a separate name for each of them.

Dashboard Signup Menu

  1. Verify your account by following the link sent to your email.
  2. View the Dashboard home screen. This is the home for all of your interactions with Dapi.

Dapi's Dashboard Screen

2. Create a New Application Using Dashboard

  1. Select a name for your application. You will not be able to change this name later.

Application Name Creation

You should see the following window with your app name at the top:

New Application Control Page

  1. Save the provided App Key by copying it from the top text box.

App Key and App Secret Screen

  1. Download the App Secret, which will be saved on your computer as a txt file.



Please note that the appSecret can only be accessed and saved during this time until you refresh the page. Losing your appSecret means losing your application!

  1. Add any IPs or Hostnames that will be sending requests to the Dapi API. Only IP addresses that you specify here will be authorized to interact with Dapi.

IP and Hostname Screen

  1. List the webhook URLs where you would like us to send request responses to.

Webhook URL Screen

3. Install Connect in Your Application

You can use the Connect layer to securely capture end-users’ login information for future use with the Dapi API.

4. Log in with the Sandbox Environment

After you obtain your appKey and appSecret from the Dashboard, try submitting requests with our Sandbox environment. Our Sandbox works with synthetic data to simulate API calls with the Dapi Bank. This way, you can test Dapi’s functionality without interacting with real financial institutions.

  1. Set the environment variable in Connect to ‘sandbox’ and enter the appKey from the Dashboard as follows:
var handler = Dapi.create({
  environment: Dapi.environments.sandbox,
  appKey: 'YOUR_APP_KEY',
  countries: ['AE'],
  isExperimental: true,
  1. Select a bank from the list of available institutions.

Bank Selection Screen

  1. Log into any of the banks with the following test credentials:
Username: dapi_user1
Password: dapi_password1

Sample Bank Login Screen

After a successful login, you should see the following message:

Successful Login Screen

Please click “Continue” to receive your API keys.

  1. Save the connectionID, accessCode, userID and userSecret values from the response (UserLogin).
    "bankFullLogoPNG": "https://cdn.dapi.co/banks-full-logo/ADCB.png",
    "bankFullLogoSVG": "https://cdn.dapi.co/banks-full-logo/ADCB.svg",
    "bankHalfLogoPNG": "https://cdn.dapi.co/banks-horizontal-logo/ADCB.png",
    "bankHalfLogoSVG": "https://cdn.dapi.co/banks-horizontal-logo/ADCB.svg",
    "bankMiniLogoPNG": "https://cdn.dapi.co/banks-mini-logo/ADCB.png",
    "bankMiniLogoSVG": "https://cdn.dapi.co/banks-mini-logo/ADCB.svg",
    "bankID": "ADCBAEAA",
    "bankFullName": "Abu Dhabi Commercial Bank",
    "bankShortName": "ADCB",
    "success": true,
    "accessCode": "eyJhbGciOiJIUz...",
    "userSecret": "gi2OV9VKp...",
    "tokenID": "f6b1eac4-57e1-4f53-b1fd-fe7fadbca8fd",
    "userID": "RU3wUuE01v...",
    "connectionID": "5d456f33fd08aa051513822e40100419b8741158"

5. Exchange the accessCode for accessToken

Submit a request to exchange the temporary accessCode for a permanent accessToken in order to perform operations with Dapi for a specific user, such as retrieving data and initiating payments.

  1. Call the following endpoint:
[POST] https://api.dapi.co/v1/auth/ExchangeToken
  1. Enter these parameters in the body of your request (use raw JSON) from the successful login response in Connect:
StringID for a user’s successful log in to Connect.
StringPrivate token that is generated and available to view only when a new application is first created in the Dashboard.
StringUnique code for a user’s successful login to Connect. Returned in the response of UserLogin.
  1. If the request is successful, you should see the following response:
    "success": true,
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzYWx0IjoiRmlHUUhDM2NwZ01NZmhaejNHMk8zNitHakdBUEs0ZFptSEgwRy9jN1cxWT0iLCJhcHBLZXkiOiIyZmQ2OTcxN2Y0M2JhMTNkOWM4ZDI5NDY2NzQ0YjVjZTZhNDJiMTQ5YmEwM2I1NTM2Y2ZjMzY2NTg5NzVmNTNlIiwiaWF0IjoxNTg3MDQ0NTgyfQ.pJ-0mnq-7CheSZMkCZnzy56WtAoqPs-8cqWkDwfzXNQ"

Alternatively, you might see the following error messages:

    "success": false,
    "msg": "Invalid app key or Secret"

Verify that you have entered the correct values for the appKey and appSecret as suggested in the steps above.

    "success": false,
    "msg": "Invalid/expired token, invalid secret or invalid connectionID"

Verify that you have entered the correct values for the accessCode, appSecret, and connectionID.

    "success": false,
    "msg": "ConnectionID invalid or already used"

You have already used this connectionID to obtain an accessToken. Repeat this request only for a new user or if the user has changed their login details.

6. Send Further Requests

Now that you have exchanged the accessCode for an accessToken and obtained the userSecret you are ready to try the Sandbox environment with all of Dapi’s other available endpoints. For certain requests, such as payment initiation and adding beneficiaries you will need these further testing credentials:

otp: 123456

For detailed information on all available endpoints see Authentication.

7. Go Live in Production Environment

Once you are ready to integrate your application with live financial institutions, use Dapi’s production environment.

  1. Contact us to request access.
  2. Once we enable production access, you can set the environment variable in Connect to ‘production’.
var handler = Dapi.create({
  environment: Dapi.environments.production,
  appKey: 'YOUR_APP_KEY',
  countries: ['AE'],
  isExperimental: true,

Using the production environment you can test API calls and money transfers with real bank information using manual back-end routine interaction outside of your app UI (such as through Postman).



Login information in Connect is the same as user’s credentials for logging into bank software outside of Dapi. The user may be asked to enter different credentials, such as a four digit PIN attached to a specific credit or debit card.



Live requests may take some time to process as Dapi needs to communicate with the financial institution to retrieve the data.

Updated 21 days ago

Get Started

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.