Coda Payments · AsyncAPI Specification

Coda Payments Webhooks

Version

View Spec View on GitHub CompanyPaymentsMerchant of RecordGamingDigital GoodsCarrier BillingE-WalletsPayoutsSoutheast AsiaMonetizationAsyncAPIWebhooksEvents

AsyncAPI Specification

coda-payments-webhooks.yml Raw ↑
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.
All 92 tools

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.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.