post https://sandbox.juspay.in/txns #transaction API
After the successful Mandate registration, Merchant will receive a mandate_id, mandate_token from Juspay that should be stored against a customer at their end. For the subsequent charge transactions, the merchant is supposed to pass a combination of customer_id and mandate_id to do a debit without a 2FA. This API will create an order and perform a transaction with PG based on the mandate_id passed in the request.
Response Parameters:
Field | Type | Description |
---|---|---|
order_id | String | Unique Identifier for the order. |
txn_id | String | Transaction Id for the payment |
txn_uuid | String | Transaction UUID for the payment |
status | String | Status of the transaction. See Appendix for status mapping. |
payment.authentication.method | String | HTTP Method for authentication. Can be one of GET or POST |
payment.authentication.url | String | URL to which the user has to be taken to for completing the authentication |
payment.authentication.params | Params Object | Present only when the method is POST. Parameter map that has to be sent along with the URL for authentication. |
Mandate Execution API failure responses:
Status code | Reason | Response |
---|---|---|
401 | Invalid Authentication | { "status": "error", "error_code": "access_denied" } |
400 | Duplicate order id | { "status_id": 40, "status": "DUPLICATE_ORDER_ID", "error_message": "Order already exists with the given order_id" } |
400 | Invalid order amount | {"status":"Invalid Request","error_message":Invalid order amount","error_code":"Invalid"} |
400 | Mandate max amount not found | {"status":"Invalid Request","error_message":"Mandate max amount not found.","error_code":"Invalid"} |
400 | Amount not found in request. | {"status":"Invalid Request","error_message":"Amount not found in request.","error_code":"Invalid"} |
400 | Order amount greater than mandate max amount | {"status":"Invalid Request","error_message":"Order amount greater than mandate max amount (<currency <> max amount>)","error_code":"Invalid"} |
400 | Order amount not equal to mandate max amount. | {"status":"Invalid Request","error_message":"Order amount not equal to mandate max amount.","error_code":"Invalid"} |
400 | Currency not valid for mandate transaction | {"status":"Invalid Request","error_message":"currency not valid for mandate transaction.","error_code":"Invalid"} |
400 | notification_id not found in request. | {"status":"Invalid Request","error_message":"mandate.notification_id is mandatory.","error_code":"Invalid"} |
400 | Notification record not found | {"status":"Invalid Request","error_message":"Notification record not found for ","error_code":"Invalid"} |
400 | Notification status is not success. | {"status":"Invalid Request","error_message":"Notification status is not success.","error_code":"Invalid"} |
400 | Mandate not found | {"status":"invalid_request_error","error_message":"Mandate not found","error_code":"Mandate not found"} |
400 | Mandate not in active state. | {"status":"invalid_request_error","error_message":"Mandate is in non active(REVOKED / FAILURE) state. Recurring cannot be executed","error_code":"Mandate is in non active(REVOKED / FAILURE) state. Recurring cannot be executed"} |