Track payment status
Helps merchant send better transaction status for JuspaySafeBrowser product
As soon as the payment is over, please share the status of the payment. These responses are crucial in order to track transaction success/failure metrics.
To minimise chances of missing payment status, we would recommend you to POST this information to our servers directly using the following api call.
curl -X POST https://logs.juspay.in/payment/status
-H "Content-Type: application/json"
-d "@data.json" {
"merchant_id": "<Merchant Id>",
"client_id": "<Merchant Id>_ios/<Merchant Id>_android/<Merchant Id>_web",
"order_id": "<Order Id>",
"transaction_id": "<Transaction Id>",
"payment_status": "SUCCESS",
"amount_details": {
"amount": "123.45",
"purchase_amount":12345,
"exponent":2,
"currency":356
},
"signature": "<signature>"
}
In the above, we recommend that you send both order_id and transaction_id , however, one of them would suffice as long as uniqueness is achieved.
We rely greatly on the payment status metrics to fine tune our system (both current and future versions). Failure to send status metrics might result in us disabling the enhancements for your customers.
Param Details:
Key | Type | Required | Description |
---|---|---|---|
merchant_id | String | Yes | Merchant Id shared by Juspay team. |
client_id | String | Yes | Varies based os platforms. For iOS - < Merchant Id >_ios For Android - < Merchant Id >_android For Web - < Merchant Id >_web |
order_id | String | Yes | Unique order identifier for an order |
transaction_id | String | No | Required if multiple orders can be attempted on the same order. |
payment_status | String | Yes | Status of transaction. SUCCESS - For successful transactions. FAILURE - For transactions which have failed. PENDING - For transactions which have not reached terminal state. |
amount | Decimal | Yes | Amount merchant uses to display and should not be confused with purchase_amount . |
purchase_amount | Number | Yes | Normalised amount which will be used with exponent to calculate final amount. |
exponent | Number | Yes | should be passed based on currency. Please pass 2 for INR. Considering upto 2 decimal places |
currency | Number | Yes | 356 for INR transactions Refer iban for more details. |
signature | String | Yes | Juspay server's uses public-key signature verification for verifying the source of data. Merchants will need to generate/use a private key for signing the payload. (Merchants can decide the key generation and algo. Please share the public key to juspay over a secure channel.) Steps to generate payload signature: 1. Stringify the complete payload. 2. Sign the stringified data with merchant private key. 3. Base64 encode the generated signature. Please refer above example for payload structure. |
Updated about 1 year ago