- First, onboard your agents (users) via the Onboard Agent API . This is a one-time step and is optional.
- Follow the steps below to design the PPI transaction flow within your app:
i. Use the Get Sender Information API to determine whether the customer has already been onboarded on Eko's platform.
a. For a new customer, use the Onboard Sender to register the sender, then call Generate Sender Verification OTP, and Verify Customer OTP to complete the verification.
b. Use Get DigiKhata Aadhaar KYC Consent Languagesand Get DigiKhata Aadhaar KYC Consent Details to retrieve KYC consent information in both written and audio formats.
c. Complete the KYC process using the Generate Sender Aadhaar OTP , Validate Sender Aadhaar OTP and Validate Pan APIs to onboard them on the platform.
d. Use the Load DigiKhata wallet API to add funds to the sender's wallet.
e. For an existing customer, call the Get Sender Information and Verify OTP APIs to retrieve the customer's monthly limit and current wallet balance.
ii. Next, callGet List of Recipients to fetch all beneficiaries already registered under that sender.
iii. If the intended recipient has not been registered yet, use Add Recipient , Add Recipient Bank , Verify OTP to Add Recipient and Validate OTP to Add Recipient to complete beneficiary registration.
iv. Finally, call the PayPoint Transaction API to initiate a PPI transaction to the registered recipient for that customer. - Also, note the following:
- Check the status of any transaction using the Transaction Inquiry API.
- If the transaction goes into Refund Pending state, checkout the Initiate Refund API.
Every transaction response will contain a tx_status code with the following possible values:
| tx_status | txstatus_desc |
|---|---|
| 0 | Success |
| 1 | Fail |
| 2 | Initiated |
| 3 | Refund Pending |
| 4 | Refunded |
| 5 | Hold (Transaction Inquiry Needed) |
In case if any other value is returned in tx_status parameter then the transaction should be treated as initiated and transaction inquiry should be done until final status is received.
Transaction Timeout
A transaction can timeout due to multiple reasons, such as, bad internet connection or slow response from the partner bank. In such cases, transaction should not be treated as declined or failed. Ideally, it should be inquired using the Transaction Inquiry API by the passing your own reference number, i.e.,
client_ref_id.