PPI Transaction Flow

  1. First, you need to onboard your agents (users) using the Onboard Agent API. This is a one-time process and optional.
  2. Then, follow these guidelines to design the PPI transaction flow in your app:
    1. Check if the customer has already been onboarded on EKO’s platform using the Get Sender Information API.
      1. For a new customer, use the Onboard Sender for onboarding the sender , Generate Sender Verification OTP, Verify Customer OTP.
      2. Use the Get DigiKhata Aadhaar KYC Consent Languagesand Get DigiKhata Aadhaar KYC Consent Details to fetch the KYC details in written and audio format.
      3. Proceed with the KYC through Generate Sender Aadhaar OTP , Validate Sender Aadhaar OTP and Validate Pan APIs to onboard them on the platform.
      4. Use the Load DigiKhata wallet API to load the sender's wallet.
      5. For an existing customer, use the Get Sender Information and Verify OTP APIs to get the customer monthly limit and the wallet balance. .
    2. Then, Get List of Recipients which are already registered for that sender.
    3. If the desired recipient is not registered, Add Recipient , Add Recipient Bank API, Generate Add Recipient Bank OTP API and Validate OTP to Add Recipient API for that sender.
    4. Then, use the PayPoint Transaction API to initiate PPI transaction to a registered recipient for that customer.
  3. Also, note the following:
    1. Check the status of any transaction later using the Transaction Inquiry API.
    2. 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_statustxstatus_desc
0Success
1Fail
2Initiated
3Refund Pending
4Refunded
5Hold (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.