The Payments API enable you to create, retrieve, cancel and reconcile payments. The API requires upgrade to the Pro Plan.
- If you're using your own sponsor bank, you'll need an active NACH Profile for the sponsor bank to which you want to submit the payment. You can create NACH Profiles by contacting Support.
mandatein LotusPay. This can be an internal mandate (i.e. one that you originally created in LotusPay), or an imported external mandate (i.e. one that you originally created elsewhere and later imported into LotusPay).
Step 1. For each amount that you want to request on each mandate, you create
payment via a
POST request using the POST Payment Create API with the required arguments. LotusPay returns an
status is initially
response_sequence_number is initially empty. You should store the
charge_date can be any date up to one year in advance. If
charge_dateis not an NACH business day, LotusPay will automatically roll it forward to the next business day (except if its the last day of the month, in which case LotusPay will automatically roll it back to the previous business day). You can include any custom identifiers as key-value pairs in
metadata. The cut-off time for creating transactions on an NACH business day varies by sponsor bank. You can cancel
pending_submission payments up to this cut-off time using the POST Payment Cancel API. If a
mandate is cancelled for any reason, all of its
payments are automatically and immediately cancelled too.
Step 2. Upon the date specified in
charge_date, in the morning LotusPay submits each
payment provided that its
status transitions to
Step 3. Your sponsor bank reviews the transactions. If your sponsor bank conducts any validations, they may deny to submit certain transactions. For example, if the sponsor bank is validating frequency, and they have already observed one successful transaction in a mandate's frequency period, they may deny subsequent transaction requests on the same mandate in the same period. NPCI encourages banks to run such validations. Such transactions will be automatically marked as
cancelled (usually in the evening, but sometimes earlier), and you can see the reason in the dashboard. All valid transactions are submitted to the NACH system. NB: LotusPay does not validate frequency.
Step 4. The NACH system processes each transaction with the destination bank of the respective mandate, and returns a status to your sponsor bank.
Step 5. In the evening, LotusPay updates each transaction.
status transitions to
transaction_reference is populated with the transaction sequence number assigned by NPCI. LotusPay instantly informs you of the status by sending
POST requests to your webhook URL of
ach_debit.extended (containing the full
ach_debit payload). You should update the
transaction_reference in your system. Click here to learn more about transaction failures and codes/descriptions. If required,
failed payments can be retried on the next business day. If you are not integrating the webhook, you can use the GET Payment API to retrieve the details, or you can view details and export reports in the dashboard. Any objects with
submitted if extended by the destination bank will usually reach a final status of
failed within one or two business days.
Step 6. LotusPay creates an
settlement for the aggregate amount of all
confirmed payments for a
charge_date with each sponsor bank. This is the amount that we will pay into your bank account on the same day. You should check your bank statement to ensure that you receive this exact amount. You can use the GET Settlement List API to detect new objects, and then use the GET Settlement API to see the details of each new object. You can run custom search filters and export CSV reports from the dashboard Payment list page e.g. all transactions for
charge_date today. You can also export a CSV report from an individual Settlement page to see all the
confirmed payments in that particular
Another useful endpoint is the GET Payment List API. You can use this endpoint with a filter to see all the payments for a particular