Coda Payments · AsyncAPI Specification
Coda Payments Webhooks
Version
View Spec
View on GitHub
CompanyPaymentsMerchant of RecordGamingDigital GoodsCarrier BillingE-WalletsPayoutsSoutheast AsiaMonetizationAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-04'
method: searched
source: https://docs.coda.co/
spec_type: none
asyncapi_published: false
note: >-
Coda Payments publishes no AsyncAPI document and no event-catalog spec. It does document
a real webhook/notification surface across four products, captured here. Probed
/asyncapi.yaml and /asyncapi.json alongside the OpenAPI probes on every Coda host on
2026-08-04 with no hit.
docs:
- https://docs.coda.co/codapay/hosted-payment-page-integration/get-notified-of-a-transaction-status-change.md
- https://docs.coda.co/codapay/hosted-payment-page-integration/activate-post-notifications.md
- https://docs.coda.co/codapay/hosted-payment-page-integration/fraud-and-chargeback-notifications.md
- https://docs.coda.co/codapay/hosted-payment-page-integration/authorize-and-capture-a-payment-separately/auth-and-capture-notifications.md
- https://docs.coda.co/codapay/direct-api-integration/direct-api-integration-for-cards/get-notified-of-a-charge-status-change.md
- https://docs.coda.co/codapay/direct-api-integration/direct-api-integration-for-alternative-payment-methods/transaction-status-notification.md
- https://docs.coda.co/codapay/additional-features/refund-a-payment/get-notified-about-refund-status-changes.md
- https://docs.coda.co/codapay/additional-features/saving-card-details-new-notification.md
- https://docs.coda.co/codapay/archived-tokenization-api-2.0/webhooks-notification.md
- https://docs.coda.co/codapay/recurring-payments-coming-soon/webhook-notifications.md
- https://docs.coda.co/payout/integration-guides/api-reference/initiate-a-payout-request/notification.md
- https://docs.coda.co/codapay/integration-guides/security-guidelines.md
transport:
style: HTTP callback to a partner-configured URL
configuration: >-
Transaction "Complete Notification URL" (also called the Callback URL) is set per title
in the Publisher Portal under Products > Codapay > Sandbox/Production Configuration.
Direct Card API charges instead carry a per-request setting.webhook_url /
partner_webhook_url. Changes to portal URLs take effect immediately.
payload_style: >-
Hosted Payment Page notifications are query-string parameters appended to the callback
URL (TxnId, OrderId, TotalPrice, PaymentType, ResultCode, Checksum, and USDPrice when
USD Price Notification is enabled). Tokenization/Direct API notifications are JSON
event objects.
acknowledgement: >-
Coda expects the partner to respond with ResultCode=0 on success, or an error code
otherwise.
retries:
attempts: 3
interval: 5 minutes
on_exhaustion: an email alert is triggered
integrity:
mechanism: checksum parameter
payin_formula: MD5(txnId + apiKey + orderId + resultCode)
note: >-
Separate checksum formulas are published for save-card notifications (v2 payin only)
and for refund/chargeback notifications. Partners MUST validate the checksum before
processing a notification — Coda warns that an unprotected notification URL lets an
attacker fabricate payment transactions.
source: https://docs.coda.co/codapay/integration-guides/security-guidelines.md
subscription_management: >-
Transaction notifications are subscribed to in the Publisher Portal under
Team > Manage Access > "Transaction Notification".
channels:
- name: transaction-completion-notification
api: Codapay Hosted Payment Page API
direction: outbound-to-partner
trigger: transaction reaches Successful or Failed
optional_failure_delivery: >-
Failed and expired transaction notifications are delivered only when the "Failed
Notification" toggle is enabled in the portal configuration.
parameters:
- {name: TxnId, always: true, description: Coda transaction ID generated at initiation}
- {name: OrderId, always: true, description: The partner order ID passed at initiation}
- {name: TotalPrice, description: Transaction total}
- {name: PaymentType, description: Payment channel ID used}
- {name: ResultCode, description: 0 on success, otherwise a Codapay error code}
- {name: Checksum, description: MD5 integrity checksum}
- {name: USDPrice, description: Appended when USD Price Notification is enabled (currency 840)}
- name: auth-and-capture-notification
api: Codapay Hosted Payment Page API / Hosted Components
direction: outbound-to-partner
trigger: authorization and capture state changes when auth and capture are performed separately
- name: fraud-and-chargeback-notification
api: Codapay Hosted Payment Page API
direction: outbound-to-partner
trigger: fraud alert or chargeback raised on a transaction
- name: save-card-notification
api: Codapay Hosted Payment Page API (v2 only)
direction: outbound-to-partner
trigger: a user adds or removes a saved payment method
- name: charge-status-notification
api: Codapay Direct Card API
direction: outbound-to-partner
trigger: charge status change (authorization and capture)
configuration_field: setting.webhook_url / partner_webhook_url on the charge request
- name: transaction-status-notification
api: Codapay Direct API for Alternative Payment Methods
direction: outbound-to-partner
trigger: transaction status change through the shopper's payment flow
- name: refund-status-notification
api: Codapay Refund API
direction: outbound-to-partner
trigger: refund status change
description: >-
"Merchants can receive real-time event data by providing URL endpoints to receive Event
JSON Payloads via POST requests."
- name: payout-notification
api: Coda Payout API
direction: outbound-to-partner
trigger: payout status change
- name: subscription-notification
api: Codapay
direction: outbound-to-partner
note: No configuration required — Coda states the subscription notification URL needs no setup.
- name: recurring-payments-webhooks
api: Codapay Recurring Payments
status: coming-soon
direction: outbound-to-partner
event_catalog:
api: Codapay Tokenization API 2.0 (archived)
source: https://docs.coda.co/codapay/archived-tokenization-api-2.0/webhooks-notification/types-of-events.md
envelope: >-
Event object carrying the event type plus the affected shopper / token / charge object.
events:
- name: shopper.created
description: "Occurs whenever a shopper is created"
- name: charge.created
description: "Occurs whenever a charge is created"
- name: token.created
description: "Occurs whenever a token is created"
- name: shopper.status.active
description: "Occurs when a shopper status become active"
- name: shopper.status.inactive
description: "Occurs when a shopper status become inactive"
- name: charge.status.blocked_charge_limit_exceeded
description: "Occurs whenever charge amount limit exceeded"
- name: charge.status.blocked_risk
description: "Occurs when a charge is being blocked by risk"
- name: charge.status.failed
description: "Occurs whenever a charge failed"
- name: charge.status.failed_insufficient_balance
description: "Occurs when charge failed because of insufficient balance in the account"
- name: charge.status.failed_shopper_cancel
description: "Occurs when charge failed because shopper has canceled the transaction"
- name: charge.status.failed_token_cancelled
description: "Occurs when charge failed due to the cancellation of the associated token"
- name: charge.status.failed_token_declined
description: "Occurs when charge failed because the token used for the transaction has been declined"
- name: charge.status.failed_token_expired
description: "Occurs when charge failed because of token expiration"
- name: charge.status.failed_token_not_authorized
description: "Occurs when charge failed due to unauthorized token"
- name: charge.status.failed_unauthenticated
description: "Occurs when charge failed because of authentication"
- name: charge.status.waiting_for_shopper_action
description: "Occurs whenever charge is pending completion and await for shopper action"
- name: charge.status.processing_shopper_action
description: "Occurs whenever charge shopper action is being processed by Coda"
- name: charge.status.initiated
description: "Occurs whenever charge is in the process of being initiated"
- name: charge.status.initiated_accepted
description: "Occurs whenever charge initiation is successful and the Provider has accepted initiation"
- name: charge.status.initiated_not_accepted
description: "Occurs whenever charge initiation is unsuccessful and the Provider does not accept the initiation"
- name: charge.status.initiated_failed
description: "Occurs whenever charge initiation is failed"
- name: charge.status.not_initiated
description: "Occurs when charge is not being initiated on Provider end"
- name: charge.status.authorized
description: "Occurs whenever charge has been successfully authorized"
- name: charge.status.succeeded
description: "Occurs whenever charge is successful"
- name: charge.status.succeeded_for_subscription
description: "Occurs whenever charge is successful for subscription"
- name: token.status.not_initiated
description: "Occurs when token is not being initiated on Provider end"
- name: token.status.initiated
description: "Occurs whenever token is in the process of being initiated"
- name: token.status.initiated_failed
description: "Occurs whenever token initiation is failed"
- name: token.status.waiting_for_shopper_action
description: "Occurs whenever token is pending completion and await for shopper action"
- name: token.status.processing_shopper_action
description: "Occurs whenever token shopper action is being processed by Coda"
- name: token.status.not_authorized
description: "Occurs when token failed authorization process"
- name: token.status.authorized
description: "Occurs whenever token has been successfully authorized"
- name: token.status.expired
description: "Occurs whenever token has been expired"
- name: token.status.cancelled
description: "Occurs whenever token has been canceled"
inbound_partner_endpoints:
note: >-
The Codashop and Coda Webstore fulfillment contract inverts the direction — Coda calls
endpoints the publisher hosts. These are documented as JSON-RPC 2.0 methods signed with
HMAC-SHA256.
methods:
- {method: validate, description: Verify that the player/user id exists before purchase}
- {method: topup, description: Deliver the purchased SKU into the game or app}
- {method: usersync, description: Synchronise user/player data with Coda}
- {method: fetch server list, description: Optional — return the server/zone list for the title}
source: https://docs.coda.co/codashop-and-distribution/integration-guides.md
gaps:
- No AsyncAPI or CloudEvents description of the event surface.
- No published signing secret rotation or replay-window guidance beyond the checksum formulas.
- Checksum uses MD5 rather than an HMAC over the raw body.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/coda-payments-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.