Recurring Transactions

How to Integrate

1 Obtain your API Keys

ℹ️ If you already have your API keys and know how to use it, you may proceed to the next step.

The Payments Processing Platform APIs uses API keys to authenticate requests. API keys carry many privileges, your grant or permission to access and integrate with Maya’s endpoints.

Step 1: Prepare your Public GPG Keys to be submitted to Maya. Don’t have keys yet? Learn How

Step 2: Provide email address of the nominated recipient of the API Keys.

Step 3: Credentials and keys will be received via an encrypted email. You should be able to decrypt it using your public and private GPG keys.

📖 Different API keys will be provided for each environment: Sandbox or Production.

Authenticating with our API

Authentication is done via HTTP Basic Authentication. Depending on the API endpoint, the public (pk-....) or secret (sk-....) key must be provided as the username and the password left as blank.

Steps are as follows:

  1. Combine Username and Password (left blank) separated by ‘:’ (colon). If your API key is “pk-Z0OSzLvIcOI2UIvDhdTGVVfRSSeiGStnceqwUE7n0Ah”, the resulting string is:
  1. Apply Base64 encoding to the resulting string from Step 1. Using the resulting string from Step 1, the Base64 encoded string will be:
  1. Indicate the authorization method i.e. “Basic” followed by a space then the Base64 encoded string in Step 2. An example is shown below.
Authorization: Basic cGstWjBPU3pMdkljT0kyVUl2RGhkVEdWVmZSU1NlaUdTdG5jZXF3VUU3bjBBaDo=

See also: HTTP Basic Auth

2 Create the Initial Transaction

🧩 Tips

It is highly recommended that you perform the 3D Secure or 3D Secure 2 (3DS or 3DS2) authentication to increase your success rate and prevent transaction from getting declined by the issuing banks.

You will be responsible for performing the 3D Secure or 3D Secure 2 (3DS or 3DS2) authentication leg, including, but not limited to, integrating with its own or a 3rd party Merchant Plug-in (MPI).

Create the initial transaction as normal transaction (includes 3D Secure or 3D Secure 2 (3DS or 3DS2) authentication, initial authorization with 3D Secure or 3D Secure 2 (3DS or 3DS2) values and card security code (CSC), if any).

You may refer to the following guides depending on your use case:

3 Create Recurring Transaction

ℹ️ 3D Secure or 3D Secure 2 (3DS or 3DS2) is NOT supported for Recurring transactions.

Create the transaction and follow the same procedures described in the following guides, depends on your use case, and set the frequency indicator:

🧠 Keep in mind

In order to process a recurring transaction, you need to set transaction.frequencyIndicator as RECURRING. This should no longer include the 3D Secure or 3D Secure 2 (3DS or 3DS2), and CSC values.

These transactions will be treated as MERCHANT-initiated transactions, regardless of what is set as the initiator (transaction.initiator).

⚠️ Payments Processing Platform does NOT match the recurring transactions to their corresponding original transactions.

Please make sure that recurring transactions are ONLY performed after a corresponding successful original transaction. Chargebacks may apply for incorrectly processed recurring transactions.

4 Test your Work

Test your services by simulating transactions in our sandbox environment. You may use the test accounts available in Sandbox Test Credentials and Cards .


Use the Transaction Inquiry endpoints to track and monitor your transactions.