Skip to main content

Webhook

2 API calls in this section.

Public webhook endpoints for payment gateway notifications.

NASS Webhook​

Billing & Subscriptions / Webhook
POST/payment/webhooks/nass

NASS webhook that confirms the payment internally using ORDER/rrn.

Headers

ParameterTypeDescription
Content-Typestring

Example: application/json

Body parameters

ParameterTypeDescription
terminalstring—
actionCodestring—
responseCodestring—
statusMsgstring—
amountstring—
currencystring—
rrnstring—
orderIdstring—
Staging
Request
curl
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/payment/webhooks/nass" \2  --header "Content-Type: application/json" \3  --data-raw '{4  "terminal": "00053402",5  "actionCode": "0",6  "responseCode": "00",7  "statusMsg": "Approved",8  "amount": "5000",9  "currency": "368",10  "rrn": "505801383493",11  "orderId": "<ORDER_FROM_INITIATE>"12}'

Response examples

No saved response example. Use Try it to inspect a staging response.

Payment Gateway Webhook​

Billing & Subscriptions / Webhook
POST/payment/webhooks/:gateway_code

Handles webhook notifications from payment gateways with signature verification and payment status updates.

Path parameters

ParameterTypeDescription
gateway_codeRequiredstring

Gateway identifier (razorpay, stripe, etc.)

Example: razorpay

Headers

ParameterTypeDescription
Content-Typestring

Example: application/json

X-Razorpay-Signaturestring

Razorpay webhook signature for verification

Example: {{razorpay_signature}}

Body parameters

ParameterTypeDescription
entitystring—
account_idstring—
eventstring—
containsarray<string>—
payloadobject—
payload.paymentobject—
payload.payment.entityobject—
payload.payment.entity.idstring—
payload.payment.entity.entitystring—
payload.payment.entity.amountnumber—
payload.payment.entity.currencystring—
payload.payment.entity.statusstring—
Show 9 more body fields

Additional body parameters

ParameterTypeDescription
payload.payment.entity.order_idstring—
payload.payment.entity.methodstring—
payload.payment.entity.descriptionstring—
payload.payment.entity.emailstring—
payload.payment.entity.notesobject—
payload.payment.entity.notes.order_idstring—
payload.payment.entity.notes.customer_idstring—
payload.payment.entity.created_atnumber—
created_atnumber—
Staging
Request
curl
1curl --globoff --request POST "https://staging-api.ondi.io/functions/v1/payment/webhooks/${GATEWAY_CODE}" \2  --header "Content-Type: application/json" \3  --header "X-Razorpay-Signature: ${RAZORPAY_SIGNATURE}" \4  --data-raw '{5  "entity": "event",6  "account_id": "acc_BFQ7uQEaa4j3z7",7  "event": "payment.captured",8  "contains": [9    "payment"10  ],11  "payload": {12    "payment": {13      "entity": {14        "id": "pay_BFQ7uQEaa4j3z8",15        "entity": "payment",16        "amount": 29999,17        "currency": "USD",18        "status": "captured",19        "order_id": "order_BFQ7uQEaa4j3z9",20        "method": "card",21        "description": "Payment for order order-12345",22        "email": "[email protected]",23        "notes": {24          "order_id": "order-12345",25          "customer_id": "user-uuid-456"26        },27        "created_at": 170123456728      }29    }30  },31  "created_at": 170123456732}'

Response examples

No saved response example. Use Try it to inspect a staging response.