Seamless ACH webhooks let your application receive real-time updates about key events—like payments being created, processed, or refunded. These updates are delivered via HTTP POST to a URL you configure.
🔔 Webhook Endpoint
Seamless ACH webhooks let your application receive real-time updates about key events—like payments being created, processed, or refunded. These updates are sent via HTTP POST to a URL you configure.
How It Works
- Webhook URLs are tied to your API key. When you call this endpoint using your API key, Seamless ACH automatically associates the webhook with your account.
- Events use version 2 format by default. Each webhook contains an
eventtype and related data (e.g., transaction status or customer details). - Secure delivery. Seamless ACH uses basic access authentication and includes your secret API key in each request.
You can manage your webhook URLs in your Webhooks Settings.
Event Name: transaction.status vs check.changed
transaction.status vs check.changedThe event field's value depends on your account's webhook version:
- Webhook V2 (default for new accounts):
eventis"transaction.status". - Webhook V1 (legacy accounts):
eventis"check.changed".
Both versions deliver the same payload — only the event field differs. Contact support to change your webhook version.
Acknowledging Webhooks
To confirm you’ve received a webhook, your server should respond with an HTTP 2xx status code.
- Any other response (e.g.,
3xx,4xx, or5xx) will be treated as a failed delivery. - Redirects or "Not Modified" responses will also count as failures.
Note: Events are only available for retrieval via the API for up to 7 days.
🧾 Sample Webhook Payload
{
"event": "transaction.status",
"check": {
"id": "txn_7890abcd",
"status": "failed",
"error_code": "R01",
"error_description": "Insufficient Funds",
"error_explanation": "Available balance is not sufficient to cover the debit."
},
"timestamp": "2025-05-01T14:30:00Z"
}
On Webhook V1 accounts,
eventwill be"check.changed"instead — the rest of the payload is identical.