Business Rules to Code for Cash-in to Maya Wallet

Development Considerations

See Maya Partner Journey for the development activities you need to consider.


States of Cash-in to Maya Wallet

Transfer in Maya can have four (4) states: CREATED, PROCESSING, APPROVED, and DECLINED. You can start by creating intents to transfer and then execute after your validation.

StateDescription
CREATEDThe initial state of the transfer intent in Maya upon the successful call of the Initiate a Transfer
PROCESSINGTransfer intent in Maya will transition to this state upon triggering the Execute Transfer
APPROVEDThe transfer intent in Maya will be transitioned to this state when the funds are credited to the target Maya wallet
DECLINEDThe transfer intent will be transitioned to this state when the crediting of funds to Maya wallet has failed

Cash-in Validity

At present, there is no time restriction for executing a transfer intent after it has been created. However, if you choose not to proceed, you can discard the transferId and handle the customer management on your end.

NOTE: Change in this behavior may be imposed in the future.



Handling of ambiguous errors in Cash-in to Maya Wallet

Maya's Cash-In solution does not support webhooks for transaction status updates. As such, you must implement a polling mechanism to verify the outcome of a transaction.

In the event of ambiguous or incomplete responses, call the Retrieve a Transfer endpoint to check the status of the cash-in request before proceeding with any follow-up actions.

We recommend this approach in, but not limited to, the following scenarios:

  • No response received from the Cash-in to Maya Wallet endpoint.
  • Gateway errors, timeouts, or any response that is malformed or unparsable from the Cash-in to Maya Wallet endpoint.

Validate the result of the Retrieve a Transfer:

Retrieve a Transfer ResultWhat to Do
If the Retrieve a Transfer response indicates that the transfer intent is in a PROCESSING state…Wait a few seconds and continue monitoring by calling again the Retrieve a Transfer endpoint until the transfer intent transitions to a final state—either APPROVED or DECLINED
If the Retrieve a Transfer response indicates that the transfer intent is in a CREATED state...Your application may retrigger the Execute Transfer by providing the transferId associated with the transfer for processing
If Retrieve a Transfer response indicates that the transfer intent is in the final state—either APPROVED or DECLINEDNotify the customer on the state of the transfer

See also Cash-in to Maya Wallet Errors for the list of errors and handling.


Rate Limiting of Cash-in to Maya Wallet

Maya applies rate limiting to its endpoints. We recommend implementing exponential back-off or incrementing delays between requests to Maya endpoints if you receive an HTTP 429 response.