POST /corridors/:id/pay, it posts a signed event payload to this URL, and Meterlane updates the corresponding payment record’s status in real time. You do not call this endpoint directly — instead, you register it as the webhook destination inside your Circle dashboard and let Circle drive the updates.
POST /webhooks/circle
Receives inbound payment event notifications from Circle. Meterlane verifies theCircle-Signature HMAC on every request before processing it; unauthenticated or tampered requests are rejected immediately.
Register
https://corridor.meterlane.app/webhooks/circle as the webhook destination URL in your Circle dashboard. Circle will POST signed event payloads to this address whenever a payment status changes.HMAC SHA-256 signature generated by Circle using your shared webhook secret. Meterlane validates this signature on every inbound request. Requests with missing or invalid signatures return
401 Unauthorized.Payment events
| Circle Event | Corridor Payment Status | Meaning |
|---|---|---|
payments.payment_completed | SETTLED | Funds have been delivered to the beneficiary’s bank account |
payments.payment_failed | FAILED | The payout was rejected or could not be completed |
payments.compliance_hold | COMPLIANCE_HOLD | Payment is paused pending a compliance review |
Example webhook payload
Circle posts a JSON body to this endpoint. Thetype field identifies the event and the nested payment object carries the id that maps to a cpnPaymentId in Meterlane.
Meterlane handles all signature verification automatically. You do not need to implement any verification logic on your end — simply ensure the
Circle-Signature header is forwarded untouched if you are proxying Circle events through your own infrastructure.