Transfer funds to Maya Wallet

Helps your customer to to transfer their funds from your application onto their Maya wallet.

By integrating with Maya’s MI3 and Maya Connect, you can leverage a secure fund transfer from your application to the target Maya wallet.

How to transfer funds to Maya Wallet

This implementation will require you to get an authorization code from the user to acquire their access token which represents their wallet account.

Step 1: Get Authorization
GET /authorize

Redirect user to this URI for authentication and authorization. Authorization code will be generated and returned after successful authorization.


  1. Consumer logs in to your application and requested to transfer their funds onto their Maya wallet.
  2. With the Connect secret keys provisioned for you, your system calls /authorize to redirect user to Maya Connect login page get authorization.
  3. Maya Connect shows the login and authorization form to user.
  4. Consumer supplies the needed credentials and approve the authorization form.
  5. Maya connects calls your system using the onboarded redirect URL providing the authorization code and set cookies.

⚠️ To view the Maya Connect API documents, contact your Maya Relations Manager.

Step 2: Get Access Token
POST /token

Once authorized, exchange the authorization code to customer access token via this endpoint. POST /token endpoint will generate and return the customer access token, refresh token and token expiry.


  1. With the Connect secret keys provisioned for you, your system calls /token to exchange the authorization code for customer access token.
  2. Maya Connect returns customer access token, refresh token and their expiry details.
DataExpiry in seconds
Customer Access Token3600
Refresh Token604800
ID Token600

⚠️ To view the Maya Connect API documents, contact your Maya Relations Manager.

Conditional: Refresh Token
POST /token

When customer access token expires, you can request new tokens using the refresh token. This endpoint will be enabled depends on your use case and consumer journey. For more information, contact your Maya Relations Manager.


  1. With the Connect secret keys provisioned for you, your system calls /token providing the refresh token.
  2. Maya Connect generates and returns new customer access token, refresh token and their expiry details.

⚠️ To view the Maya Connect API documents, contact your Maya Relations Manager.

Step 3: Create a Transfer

After obtaining the customer’s access token from the Maya Connect, you can now proceed in creating an intent to transfer using the customer’s access token as the recipient.

ℹ️ When using access tokens to represent the recipient, account type of the recipient on the transfer request must be TOKEN.

No movement of funds will be done yet at this stage and to give you some time to validate the transfer details such as the recipient information, fees that may be incurred, etc.

⚠️ Idempotency. Creating transfers always result in a new intent even when using the same request reference number. For more details, see General Knowledge in using Mi3.


  1. With the API keys provisioned to you, your system calls the /transfers endpoint of MI3 to create an intent to transfer using the customer access token.
  2. MI3 returns the initial status of the transfer intent with the transferId.

See API specifications for Creating a Transfer.

ℹ️ There is currently no time limit for executing a transfer after creation. Change on this behavior may be imposed in the future.

Step 4: Execute a Transfer

When intent to transfer has been created, you may use this endpoint to execute the transfer. This endpoint will require the transferId acquired during Create a Transfer.

⚠️ Execution of a particular transfer can only be done ONCE. Whether it’s Approved or Declined, succeeding execution will return an error.

After successful call, state will become APPROVED or DECLINED depends on the transaction processing status.


  1. With the API keys provisioned to you, your system calls the /transfers/{transferId}/execute endpoint of MI3 providing the transferId to execute the intent to transfer.
  2. MI3 returns the updated status of the transfer to your system.

See API specifications for Executing a Transfer.

Retrieving a Transfer

Once a transaction has been Created or Executed, you can retrieve its details or status using the provided transferId.


  1. With the API keys provisioned to you, your system calls the /transfers/{transferId} endpoint of MI3 providing the transferId to retrieve the transfer status and details.
  2. MI3 returns the transfer details to your system.

See API specifications for Retrieving a Transfer.


Did this page help you?