GET /v2/partners/config groups them. Each event is a prompt to read the resource it names. The envelope and headers are on Webhooks.
Read the catalog at runtime
GET /v2/partners/config returns the machine-readable catalog for the current deployment under capabilities.webhooks, along with the recommended subset and the event groups:
recommendedEvents.
Internal state-machine events are kept for Stableyard’s own audit and reconciliation and are never delivered to partner endpoints. That includes the intermediate deposit states (
deposit.confirming, deposit.settling, deposit.retry_scheduled) and the whole internal payment-session, option, settlement, fee-payout and refund worker lifecycle. If you need finer-grained deposit status than detected, settled, reversed and requires_intervention, poll the deposit instead.Payment events
Off-ramp success payloads carry the delivered amount at its exact precision:
deliveredAmount (a decimal string), deliveredAmountAtomic, deliveredAssetCode and deliveredAssetDecimals. An exact-input USD receipt can keep six decimal places, so scale by deliveredAssetDecimals rather than assuming cents. Older success events without a precision field keep their original units; use their decimal deliveredAmount when present. Settlement-return payloads likewise pair amountAtomic with assetDecimals.
Events are additive and may be delivered more than once. Fetch GET /v2/payments/{paymentId} as the current source of truth rather than reconstructing state from delivery order. Reconcile financial status, operationalState and refundSummary independently.
A payment payload carries the fields that identify the payment and its state at the event, such as paymentId, intent, status, stage, operationalState, operationalReasonCode and statusVersion. Keep the highest statusVersion you have seen and discard anything lower. See Reconciliation.
For account-bound payment.* events, payload.accountId identifies the account whose app environment owns that delivery. It is the sender on a send Payment and the recipient on a receive Payment, not a generic counterparty ID, and the payload repeats it as senderAccountId or receiverAccountId. Public wallet Payments may omit it. Use paymentId as the durable financial identity, and fetch the Payment when the event does not carry enough context for your ledger or interface.
Deposit events
Read
GET /v2/accounts/{accountId}/deposits for the current state of each deposit. See Deposit addresses.
Bank funding events
Sent for an on-ramp bank account. The payload carriesaccountId, onrampBankAccountId, transactionId, status, the USD and stablecoin amounts, and destinationTxHash when already known. It never contains bank details.
Read
GET /v2/accounts/{accountId}/onramp-bank-accounts/{onrampBankAccountId}/transactions for these funding transactions. They use their own transaction identity; an inbound transfer into a standing funding account does not require a new receive Payment.
See On-ramp accounts.
Account events
KYC events
For
kyc.*, read GET /v2/accounts/{accountId}/kyc. See Individual KYC.
Regulated capability events
See Capability activation and Business KYB.
Smart-wallet events
Vault events
See Treasury settlement.
Related
Webhooks overview
Create an endpoint and choose what it subscribes to.
Verifying signatures
Check each delivery before you trust it.
Status codes
Payment, deposit and refund states, and which are terminal.
Reconciliation
Match events to your ledger through duplicates and reordering.