Money In Operation — This webhook fires when a customer completes a payment via a Payment Link, transferring funds into your SingaPay account.
Information
| Method | Path | Format | Authentication |
|---|---|---|---|
| POST | https://your-webhook-url/callback | json | HMAC SHA512 Signature |
POST request to your configured transaction_notif_url when a Payment Link transaction is successfully completed.
For optional view and expiry notifications (when someone opens a link), see Payment Link Inquiry.
This webhook may share a callback URL with other event types. See Shared webhook endpoints for routing by
event value.Request Details
Headers
| Field | Value | Type | Mandatory | Description |
|---|---|---|---|---|
Content-Type | application/json | Alphabetic | Yes | Specifies JSON format for the request body |
X-PARTNER-ID | — | Alphanumeric | Yes | Your API Key from the merchant dashboard. Example: b3ed7d4b-a96c-6c08-b3c7-12c3124242d9 |
Body Parameters
HTTP Status Code. Example:
200true for 2xx responses, false for 4xx–5xx.Container for transaction, customer, and payment details.
Payload Examples
Transaction Status Codes
| Status | Description |
|---|---|
paid | Payment completed successfully |
pending | Payment is pending |
expired | Payment link has expired |
failed | Payment has failed |
Event Description
This webhook fires when a payment is successfully completed through a payment link. The payload covers:Transaction Details
Reference number, type, status, amount, and timestamps.
Customer Info
Name, email, and phone number of the paying customer.
Payment Link Metadata
Usage count, expiry, status, URL, and creation timestamps.
Payment Method
Method used (
payment_link) and all associated additional info.Security and responses
Return HTTP200 promptly after validating the request. For retry behavior, see Webhook retry mechanism.
Verify every webhook using Security and signature validation. Use your configured callback path when building StringToSign.
Handle duplicate deliveries idempotently using stable identifiers from the payload (for example transaction_id or reff_no).