Objects & enums
Every object and enumeration the API returns or accepts, generated from the public OpenAPI specification.
Each endpoint page shows the fields of its own request and response inline, so you rarely need this page while integrating. It exists for lookup: one stable anchor per type, for linking and for skimming the whole surface at once. → Conventions
Objects
AssetResponse
| Field | Type | Description |
|---|---|---|
idoptional | AssetID | Asset id-string used everywhere else in the API, e.g. USDT_ARBITRUM. |
| ||
blockchainIdoptional | integer | Internal blockchain ID (corresponds to GET /v1/blockchains[].id). |
contractAddressoptional | stringnull | ERC20 contract address; null for native coins (ETH, BNB, POL, XPL). |
decimalsoptional | integer | Number of decimal places: smallest-unit amounts are whole tokens * 10^decimals. |
groupoptional | string | Asset group, e.g. USDT, USDC, ETH. |
nameoptional | string | Human-readable asset name. |
BlockchainResponse
| Field | Type | Description |
|---|---|---|
idoptional | integer | Internal blockchain ID. |
idStringoptional | string | Network id-string, e.g. ETHEREUM, ARBITRUM (the suffix of an asset id-string). |
evmChainIdoptional | integernull | EIP-155 chain ID; null for non-EVM chains. |
chainNameoptional | string | Human-readable chain name. |
requiredConfirmationsoptional | integer | Block confirmations required for a payment to reach finality. |
networkFeeUsdoptional | string | Flat network-fee estimate in USD (decimal string). |
CreatePaymentRequest
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
activationFlowSecondsoptional | integer | Grace period in seconds before the payment window starts counting, giving the customer time to open the checkout before the timer runs. Optional; range 1 to 3600 (1 hour). | |||||||||||||||
amountoptional | string | Merchant base amount, integer string in the asset's smallest unit. When a fee payer is customer the customer is charged more than this (gross); when merchant (default) the fee is deducted from the merchant's proceeds. | |||||||||||||||
assetoptional | AssetID | Asset the customer will pay in, as an asset id-string (e.g. USDT_ARBITRUM). Required only when the project allows more than one asset; when the project has a single asset it may be omitted. The full set of accepted values is served live at GET /v1/assets. | |||||||||||||||
| |||||||||||||||||
networkFeePayeroptional | FeePayer | Who bears the network (gas) fee. Default merchant. | |||||||||||||||
| |||||||||||||||||
serviceFeePayeroptional | FeePayer | Who bears the platform (service) fee. Default merchant. | |||||||||||||||
| |||||||||||||||||
externalIdoptional | string | Your own identifier for this payment. Echoed back on the payment and its webhooks, and can be appended to the return URL as a redirect parameter. Optional. | |||||||||||||||
metadataoptional | object | Arbitrary JSON key/value data to attach to the payment. Stored and echoed back unchanged on the payment and its webhooks; never sent on-chain. Use it to correlate the payment with your own records. | |||||||||||||||
paymentWindowSecondsoptional | integer | How long the payment stays open for funding, in seconds. Optional; when omitted the project default applies. Range 300 (5 minutes) to 86400 (24 hours). | |||||||||||||||
redirectConfigoptional | RedirectConfigDTO | Optional "return to store" redirect configuration: the base URL the customer is sent back to after paying, plus which payment identifiers to append as query parameters. | |||||||||||||||
| |||||||||||||||||
| Field | Type | Description |
|---|---|---|
dataoptional | string | Opaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token. |
paramsoptional | string[] | Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier). |
| ||
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
underpaymentToleranceoptionalwebhookUrloptionalCreateStaticWalletRequest
| Field | Type | Description |
|---|---|---|
allowedAssetsoptional | AssetID[] | Accepted-asset allow-list, as asset id-strings (see GET /v1/assets), e.g. ["USDT_ARBITRUM"]. Deposits of assets not on this list are ignored (status "ignored") and not credited. |
| ||
externalIdoptional | string | Your own identifier for this static wallet. Echoed back on the wallet and denormalized onto each of its deposits. Optional. |
metadataoptional | object | Arbitrary JSON key/value data to attach to the static wallet. Stored and echoed back unchanged. |
webhookUrloptional | string | Webhook URL to receive this wallet's deposit events. Optional; falls back to the project default webhook when omitted. |
ListPaymentsResponse
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
hasMoreoptional | boolean | True when more payments exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
itemsoptional | PaymentResponse[] | Page of payments, ordered per the request's order parameter. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance. | |||||||||||||||
activatedAtoptional | integer | Unix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation. | |||||||||||||||
activationFlowSecondsoptional | integer | Resolved activation grace period, in seconds. Null when not configured. | |||||||||||||||
addressoptional | string | On-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned. | |||||||||||||||
amountoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||
amountConfirmedoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||
amountReceivedoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||
assetoptional | AssetID | Asset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment. | |||||||||||||||
| |||||||||||||||||
confirmedAtoptional | integer | Unix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation. | |||||||||||||||
createdAtoptional | integer | Unix-milliseconds timestamp when the payment was created. | |||||||||||||||
expiresAtoptional | integer | Unix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then. | |||||||||||||||
externalIdoptional | string | Merchant's own identifier for this payment, echoed from creation. Null when none was provided. | |||||||||||||||
feeoptional | string | Platform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit. | |||||||||||||||
idoptional | string | Unique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path. | |||||||||||||||
metadataoptional | object | Arbitrary key/value data attached by the merchant at creation, echoed back unchanged. | |||||||||||||||
networkFeeoptional | string | Estimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit. | |||||||||||||||
quotedPriceoptional | string | USD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic. | |||||||||||||||
networkFeePayeroptional | FeePayer | Who bears the network (gas) fee, echoed from creation. | |||||||||||||||
| |||||||||||||||||
serviceFeePayeroptional | FeePayer | Who bears the platform (service) fee, echoed from creation. | |||||||||||||||
| |||||||||||||||||
paymentWindowSecondsoptional | integer | Resolved length of the payment window, in seconds. | |||||||||||||||
projectIdoptional | string | Identifier of the project that owns this payment. | |||||||||||||||
redirectConfigoptional | RedirectConfigDTO | Return-to-store redirect configuration echoed from creation. Null when none was configured. | |||||||||||||||
| |||||||||||||||||
| Field | Type | Description |
|---|---|---|
dataoptional | string | Opaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token. |
paramsoptional | string[] | Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier). |
| ||
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
statusoptionalstatus values PaymentStatusEnum
pendingacceptedsuccessfailedsubStatusoptionalsubStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaidtransactionsoptionaltransactions fields TransactionList
| Field | Type | Description |
|---|---|---|
hasMoreoptional | boolean | True when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. |
itemsoptional | object[] | Page of transactions, ordered per the request's order parameter. |
underpaymentToleranceoptionalupdatedAtoptionalwebhookUrloptionalpaymentPageUrloptionalListStaticDepositsResponse
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
hasMoreoptional | boolean | True when more deposits exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
itemsoptional | StaticDepositResponse[] | Page of static-wallet deposits, ordered per the request's order parameter. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance. |
addressoptional | string | On-chain address that received the deposit (the static wallet's address). |
amountoptional | string | Gross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
assetoptional | AssetID | Asset of the deposit, as an asset id-string (see GET /v1/assets). |
| ||
confirmedAtoptional | integer | Unix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation. |
createdAtoptional | integer | Unix-milliseconds timestamp when the deposit record was created. |
detectedAtoptional | integer | Unix-milliseconds timestamp when the deposit was first detected on-chain. |
externalIdoptional | string | ExternalID is the static wallet's externalId, denormalized onto the deposit. |
feeoptional | string | Platform fee on this deposit, integer string in the asset's smallest unit: max(0.4% of the amount, $1 equivalent). The $1 floor is 0 for assets without a published USD price. |
idoptional | string | Unique Suward identifier of the deposit. |
invalidatedAtoptional | integer | Unix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated. |
netAmountoptional | string | Amount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit. |
networkFeeoptional | string | Estimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit. |
projectIdoptional | string | Identifier of the project that owns this deposit. |
staticWalletIdoptional | string | Identifier of the static wallet that received this deposit. |
statusoptional | string | Deposit lifecycle status. detected: seen on-chain, awaiting confirmations. accepted: safe confirmations reached, credited (non-final). confirmed: finalized (terminal). ignored: the asset is not on the wallet's allow-list, so the deposit is not credited. invalidated: dropped after detection, e.g. by a chain reorg. |
| ||
transferIndexoptional | string | Index of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction. |
txHashoptional | string | On-chain transaction hash of the deposit. |
updatedAtoptional | integer | Unix-milliseconds timestamp when the deposit was last updated. |
ListStaticWalletsResponse
| Field | Type | Description | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
hasMoreoptional | boolean | True when more static wallets exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. | |||||||||||||||||||||||||||||||||
itemsoptional | StaticWalletResponse[] | Page of static wallets, ordered per the request's order parameter. | |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
addressoptional | string | Reusable on-chain deposit address of this static wallet. Customers may send accepted assets to it repeatedly; each incoming transfer becomes a deposit. |
allowedAssetsoptional | AssetID[] | Accepted-asset allow-list, as asset id-strings (see GET /v1/assets). Deposits of assets outside this list are ignored and not credited. |
| ||
createdAtoptional | integer | Unix-milliseconds timestamp when the static wallet was created. |
externalIdoptional | string | Your own identifier for this static wallet, echoed from creation. Null when none was provided. |
idoptional | string | Unique Suward identifier of the static wallet. |
metadataoptional | object | Arbitrary key/value data attached by the merchant, echoed back unchanged. |
projectIdoptional | string | Identifier of the project that owns this static wallet. |
updatedAtoptional | integer | Unix-milliseconds timestamp when the static wallet was last updated. |
webhookUrloptional | string | Webhook URL that receives this wallet's deposit events. Null when the project default webhook is used. |
PaymentResponse
| Field | Type | Description | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance. | |||||||||||||||||||||||||||
activatedAtoptional | integer | Unix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation. | |||||||||||||||||||||||||||
activationFlowSecondsoptional | integer | Resolved activation grace period, in seconds. Null when not configured. | |||||||||||||||||||||||||||
addressoptional | string | On-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned. | |||||||||||||||||||||||||||
amountoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||||||||||||||
amountConfirmedoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||||||||||||||
amountReceivedoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||||||||||||||
assetoptional | AssetID | Asset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
confirmedAtoptional | integer | Unix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation. | |||||||||||||||||||||||||||
createdAtoptional | integer | Unix-milliseconds timestamp when the payment was created. | |||||||||||||||||||||||||||
expiresAtoptional | integer | Unix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then. | |||||||||||||||||||||||||||
externalIdoptional | string | Merchant's own identifier for this payment, echoed from creation. Null when none was provided. | |||||||||||||||||||||||||||
feeoptional | string | Platform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit. | |||||||||||||||||||||||||||
idoptional | string | Unique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path. | |||||||||||||||||||||||||||
metadataoptional | object | Arbitrary key/value data attached by the merchant at creation, echoed back unchanged. | |||||||||||||||||||||||||||
networkFeeoptional | string | Estimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit. | |||||||||||||||||||||||||||
quotedPriceoptional | string | USD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic. | |||||||||||||||||||||||||||
networkFeePayeroptional | FeePayer | Who bears the network (gas) fee, echoed from creation. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
serviceFeePayeroptional | FeePayer | Who bears the platform (service) fee, echoed from creation. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
paymentWindowSecondsoptional | integer | Resolved length of the payment window, in seconds. | |||||||||||||||||||||||||||
projectIdoptional | string | Identifier of the project that owns this payment. | |||||||||||||||||||||||||||
redirectConfigoptional | RedirectConfigDTO | Return-to-store redirect configuration echoed from creation. Null when none was configured. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
dataoptional | string | Opaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token. |
paramsoptional | string[] | Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier). |
| ||
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
statusoptionalstatus values PaymentStatusEnum
pendingacceptedsuccessfailedsubStatusoptionalsubStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaidtransactionsoptionaltransactions fields TransactionList
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
hasMoreoptional | boolean | True when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. | |||||||||||||||
itemsoptional | TransactionResponse[] | Page of transactions, ordered per the request's order parameter. | |||||||||||||||
| |||||||||||||||||
| Field | Type | Description |
|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the transfer reached the accepted (safe) confirmation tier. Null before acceptance. |
amountoptional | string | On-chain transfer amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
detectedAtoptional | integer | Unix-milliseconds timestamp when the transfer was first seen on-chain. |
txHashoptional | string | On-chain transaction hash of the transfer. |
underpaymentToleranceoptionalupdatedAtoptionalwebhookUrloptionalpaymentPageUrloptionalPublicPaymentResponse
| Field | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
activatedAtoptional | integer | Unix-milliseconds timestamp when the payment was activated. Null before activation. | |||||||||
activationFlowSecondsoptional | integer | Activation grace period in seconds before the payment window starts counting. Null when not configured. | |||||||||
addressoptional | string | On-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned. | |||||||||
amountoptional | string | Integer string in the asset's smallest unit. | |||||||||
amountReceivedoptional | string | Integer string in the asset's smallest unit. | |||||||||
assetoptional | AssetID | Asset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected. | |||||||||
| |||||||||||
createdAtoptional | integer | Unix-milliseconds timestamp when the payment was created. | |||||||||
expiresAtoptional | integer | Unix-milliseconds timestamp when the payment window closes; the payment expires if unpaid by then. | |||||||||
idoptional | string | Unique Suward identifier of the payment. | |||||||||
paymentWindowSecondsoptional | integer | Length of the payment window in seconds — how long the payment stays open for funding once activated. | |||||||||
redirectoptional | PublicRedirect | Resolved "return to store" redirect (base URL plus the query parameters to append) used to send the customer back after payment. Null when none was configured. | |||||||||
| |||||||||||
| Field | Type | Description |
|---|---|---|
queryoptional | object | Query parameters to append to the URL when redirecting the customer back, e.g. id, externalId, data. Empty when the redirect has no parameters. |
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
statusoptionalstatus values PaymentStatusEnum
pendingacceptedsuccessfailedsubStatusoptionalsubStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaidunderpaymentToleranceoptionalupdatedAtoptionalpaymentPageUrloptionalPublicRedirect
| Field | Type | Description |
|---|---|---|
queryoptional | object | Query parameters to append to the URL when redirecting the customer back, e.g. id, externalId, data. Empty when the redirect has no parameters. |
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
QuotePaymentRequest
| Field | Type | Description |
|---|---|---|
assetrequired | AssetID | Asset identifier (see GET /v1/assets for the live list). |
| ||
amountrequired | string | Merchant base amount, integer string in the asset's smallest unit. Example: "5000000" = 5 USDT. The response returns the derived gross (what the customer pays) and netAmount (what the merchant receives). |
networkFeePayeroptional | FeePayer | Who bears the network (gas) fee. Default merchant. |
| ||
serviceFeePayeroptional | FeePayer | Who bears the platform (service) fee. Default merchant. |
| ||
QuotePaymentResponse
| Field | Type | Description |
|---|---|---|
assetoptional | AssetID | Asset the quote is denominated in, echoed from the request. |
| ||
amountoptional | string | Gross amount, integer string in the asset's smallest unit. |
feeoptional | string | Platform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit. |
networkFeeoptional | string | Estimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit. |
netAmountoptional | string | Amount the merchant receives after all fees. Integer string in the asset's smallest unit. |
grossoptional | string | Amount the customer pays: base plus any customer-paid fees. Integer string in the asset's smallest unit. |
quotedPriceoptional | string | USD price used for this quote, decimal string. Not locked — the binding price is captured when the payment is created. |
RedirectConfigDTO
| Field | Type | Description |
|---|---|---|
dataoptional | string | Opaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token. |
paramsoptional | string[] | Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier). |
| ||
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
SimulatePaymentRequest
| Field | Type | Description |
|---|---|---|
amountoptional | string | Optional simulated received amount, integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
statusoptional | PaymentStatusEnum | Target main status. Required — status and subStatus are independent axes, both must be supplied. |
| ||
subStatusoptional | PaymentSubStatusEnum | Target sub-status (amount/detail axis). Required — status and subStatus are independent axes, both must be supplied. |
| ||
SimulateStaticDepositRequest
| Field | Type | Description |
|---|---|---|
amountoptional | string | Deposited amount to simulate, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
assetoptional | AssetID | Asset id-string of the simulated deposit (see GET /v1/assets), e.g. USDT_ARBITRUM. |
| ||
statusoptional | string | Target lifecycle stage to drive the simulated deposit to. |
| ||
transferIndexoptional | string | Optional index of the transfer within the transaction, as a string-encoded integer. |
txHashoptional | string | Optional synthetic transaction hash; a random one is generated when omitted. |
StaticDepositResponse
| Field | Type | Description |
|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance. |
addressoptional | string | On-chain address that received the deposit (the static wallet's address). |
amountoptional | string | Gross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
assetoptional | AssetID | Asset of the deposit, as an asset id-string (see GET /v1/assets). |
| ||
confirmedAtoptional | integer | Unix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation. |
createdAtoptional | integer | Unix-milliseconds timestamp when the deposit record was created. |
detectedAtoptional | integer | Unix-milliseconds timestamp when the deposit was first detected on-chain. |
externalIdoptional | string | ExternalID is the static wallet's externalId, denormalized onto the deposit. |
feeoptional | string | Platform fee on this deposit, integer string in the asset's smallest unit: max(0.4% of the amount, $1 equivalent). The $1 floor is 0 for assets without a published USD price. |
idoptional | string | Unique Suward identifier of the deposit. |
invalidatedAtoptional | integer | Unix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated. |
netAmountoptional | string | Amount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit. |
networkFeeoptional | string | Estimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit. |
projectIdoptional | string | Identifier of the project that owns this deposit. |
staticWalletIdoptional | string | Identifier of the static wallet that received this deposit. |
statusoptional | string | Deposit lifecycle status. detected: seen on-chain, awaiting confirmations. accepted: safe confirmations reached, credited (non-final). confirmed: finalized (terminal). ignored: the asset is not on the wallet's allow-list, so the deposit is not credited. invalidated: dropped after detection, e.g. by a chain reorg. |
| ||
transferIndexoptional | string | Index of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction. |
txHashoptional | string | On-chain transaction hash of the deposit. |
updatedAtoptional | integer | Unix-milliseconds timestamp when the deposit was last updated. |
StaticWalletResponse
| Field | Type | Description |
|---|---|---|
addressoptional | string | Reusable on-chain deposit address of this static wallet. Customers may send accepted assets to it repeatedly; each incoming transfer becomes a deposit. |
allowedAssetsoptional | AssetID[] | Accepted-asset allow-list, as asset id-strings (see GET /v1/assets). Deposits of assets outside this list are ignored and not credited. |
| ||
createdAtoptional | integer | Unix-milliseconds timestamp when the static wallet was created. |
externalIdoptional | string | Your own identifier for this static wallet, echoed from creation. Null when none was provided. |
idoptional | string | Unique Suward identifier of the static wallet. |
metadataoptional | object | Arbitrary key/value data attached by the merchant, echoed back unchanged. |
projectIdoptional | string | Identifier of the project that owns this static wallet. |
updatedAtoptional | integer | Unix-milliseconds timestamp when the static wallet was last updated. |
webhookUrloptional | string | Webhook URL that receives this wallet's deposit events. Null when the project default webhook is used. |
TransactionList
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
hasMoreoptional | boolean | True when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. | |||||||||||||||
itemsoptional | TransactionResponse[] | Page of transactions, ordered per the request's order parameter. | |||||||||||||||
| |||||||||||||||||
| Field | Type | Description |
|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the transfer reached the accepted (safe) confirmation tier. Null before acceptance. |
amountoptional | string | On-chain transfer amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
detectedAtoptional | integer | Unix-milliseconds timestamp when the transfer was first seen on-chain. |
txHashoptional | string | On-chain transaction hash of the transfer. |
TransactionResponse
| Field | Type | Description |
|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the transfer reached the accepted (safe) confirmation tier. Null before acceptance. |
amountoptional | string | On-chain transfer amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
detectedAtoptional | integer | Unix-milliseconds timestamp when the transfer was first seen on-chain. |
txHashoptional | string | On-chain transaction hash of the transfer. |
UpdateStaticWalletRequest
| Field | Type | Description |
|---|---|---|
allowedAssetsoptional | AssetID[] | New accepted-asset allow-list, as asset id-strings (see GET /v1/assets). When empty or omitted the current list is left unchanged. |
| ||
metadataoptional | object | Replacement key/value metadata for the static wallet. |
webhookUrloptional | string | Replacement webhook URL for this wallet's deposit events. |
Webhook events
PaymentEvent
Webhook body for a payment lifecycle transition. Signed over the raw body with the project's Ed25519 key; verify with project.webhookPublicKey. `createdAt` is the signed, trusted timestamp; `payment` is the full payment resource (the same shape as the merchant GET /v1/payments/{paymentId} view). Obtain `webhookPublicKey` from your project settings in the Suward dashboard.
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
typerequired | string | Event type. payment.accepted: safe confirmations reached and the balance was credited (non-final). payment.success: the payment finalized (terminal). payment.failed: the payment failed or expired without a valid payment (terminal). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eventIdrequired | string | Unique identifier of this event. The same event may be redelivered on retry; use eventId to deduplicate. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAtrequired | integer | Event creation time, unix milliseconds. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentrequired | PaymentResponse | Full payment resource at the time of the event — the same shape as the merchant GET /v1/payments/{paymentId} view. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance. | |||||||||||||||
activatedAtoptional | integer | Unix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation. | |||||||||||||||
activationFlowSecondsoptional | integer | Resolved activation grace period, in seconds. Null when not configured. | |||||||||||||||
addressoptional | string | On-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned. | |||||||||||||||
amountoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||
amountConfirmedoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||
amountReceivedoptional | string | Integer string in the asset's smallest unit. | |||||||||||||||
assetoptional | AssetID | Asset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment. | |||||||||||||||
| |||||||||||||||||
confirmedAtoptional | integer | Unix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation. | |||||||||||||||
createdAtoptional | integer | Unix-milliseconds timestamp when the payment was created. | |||||||||||||||
expiresAtoptional | integer | Unix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then. | |||||||||||||||
externalIdoptional | string | Merchant's own identifier for this payment, echoed from creation. Null when none was provided. | |||||||||||||||
feeoptional | string | Platform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit. | |||||||||||||||
idoptional | string | Unique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path. | |||||||||||||||
metadataoptional | object | Arbitrary key/value data attached by the merchant at creation, echoed back unchanged. | |||||||||||||||
networkFeeoptional | string | Estimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit. | |||||||||||||||
quotedPriceoptional | string | USD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic. | |||||||||||||||
networkFeePayeroptional | FeePayer | Who bears the network (gas) fee, echoed from creation. | |||||||||||||||
| |||||||||||||||||
serviceFeePayeroptional | FeePayer | Who bears the platform (service) fee, echoed from creation. | |||||||||||||||
| |||||||||||||||||
paymentWindowSecondsoptional | integer | Resolved length of the payment window, in seconds. | |||||||||||||||
projectIdoptional | string | Identifier of the project that owns this payment. | |||||||||||||||
redirectConfigoptional | RedirectConfigDTO | Return-to-store redirect configuration echoed from creation. Null when none was configured. | |||||||||||||||
| |||||||||||||||||
| Field | Type | Description |
|---|---|---|
dataoptional | string | Opaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token. |
paramsoptional | string[] | Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier). |
| ||
urloptional | string | Base "return to store" URL the customer is sent back to after paying. |
statusoptionalstatus values PaymentStatusEnum
pendingacceptedsuccessfailedsubStatusoptionalsubStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaidtransactionsoptionaltransactions fields TransactionList
| Field | Type | Description |
|---|---|---|
hasMoreoptional | boolean | True when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter. |
itemsoptional | object[] | Page of transactions, ordered per the request's order parameter. |
underpaymentToleranceoptionalupdatedAtoptionalwebhookUrloptionalpaymentPageUrloptionalStaticDepositEvent
Webhook body for a static-wallet deposit transition. Signed over the raw body with the project's Ed25519 key; verify with project.webhookPublicKey. `createdAt` is the signed, trusted timestamp; `staticDeposit` is the full deposit resource. Obtain `webhookPublicKey` from your project settings in the Suward dashboard.
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
typerequired | string | Event type. static_deposit.accepted: the deposit reached safe confirmations and was credited (non-final). static_deposit.success: the deposit finalized (terminal). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
eventIdrequired | string | Unique identifier of this event. The same event may be redelivered on retry; use eventId to deduplicate. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAtrequired | integer | Event creation time, unix milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
staticDepositrequired | StaticDepositResponse | Full static-wallet deposit resource at the time of the event. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Field | Type | Description |
|---|---|---|
acceptedAtoptional | integer | Unix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance. |
addressoptional | string | On-chain address that received the deposit (the static wallet's address). |
amountoptional | string | Gross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount). |
assetoptional | AssetID | Asset of the deposit, as an asset id-string (see GET /v1/assets). |
| ||
confirmedAtoptional | integer | Unix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation. |
createdAtoptional | integer | Unix-milliseconds timestamp when the deposit record was created. |
detectedAtoptional | integer | Unix-milliseconds timestamp when the deposit was first detected on-chain. |
externalIdoptional | string | ExternalID is the static wallet's externalId, denormalized onto the deposit. |
feeoptional | string | Platform fee on this deposit, integer string in the asset's smallest unit: max(0.4% of the amount, $1 equivalent). The $1 floor is 0 for assets without a published USD price. |
idoptional | string | Unique Suward identifier of the deposit. |
invalidatedAtoptional | integer | Unix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated. |
netAmountoptional | string | Amount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit. |
networkFeeoptional | string | Estimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit. |
projectIdoptional | string | Identifier of the project that owns this deposit. |
staticWalletIdoptional | string | Identifier of the static wallet that received this deposit. |
statusoptional | string | Deposit lifecycle status. detected: seen on-chain, awaiting confirmations. accepted: safe confirmations reached, credited (non-final). confirmed: finalized (terminal). ignored: the asset is not on the wallet's allow-list, so the deposit is not credited. invalidated: dropped after detection, e.g. by a chain reorg. |
| ||
transferIndexoptional | string | Index of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction. |
txHashoptional | string | On-chain transaction hash of the deposit. |
updatedAtoptional | integer | Unix-milliseconds timestamp when the deposit was last updated. |
Enumerations
AssetID
Asset id-string (see GET /v1/assets), e.g. USDT_ETHEREUM.
USDT_ETHEREUMUSDT_ARBITRUMUSDT_OPTIMISMUSDT_BASEUSDT_BSCUSDT_PLASMAUSDT_POLYGONUSDC_ETHEREUMUSDC_ARBITRUMUSDCE_ARBITRUMUSDC_OPTIMISMUSDC_BASEUSDC_BSCUSDC_PLASMAUSDC_POLYGONETH_ETHEREUMETH_ARBITRUMETH_OPTIMISMETH_BASEXPL_PLASMABNB_BSCPOL_POLYGONTESTCOIN_ETHEREUMTESTCOIN_OPTIMISMTESTCOIN_PLASMATESTSTABLECOIN_ETHEREUMTESTSTABLECOIN_OPTIMISMTESTSTABLECOIN_PLASMAFeePayer
Who bears a fee: merchant = deducted from the merchant's proceeds (default); customer = added on top of the customer charge.
merchantcustomerPaymentStatusEnum
Terminal states: success (finalized), failed (terminal, no valid payment). Non-final: pending (awaiting funds), accepted (safe confirmations reached, credited — non-final until finalized).
pendingacceptedsuccessfailedPaymentSubStatusEnum
overpaid / underpaid: more or less than the requested amount was received. partiallyPaid: payment expired with a partial payment that never reached acceptance.
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaidErrors
ErrorResponse
| Field | Type | Description |
|---|---|---|
argsoptional | any[] | Optional list of values interpolated into the error message template (e.g. field names or limits). Order matches the placeholders in the message. |
errorCodeoptional | integer | Stable numeric application error code identifying the error type. Use it for programmatic handling; it does not change across locales or message wording. |
messageoptional | string | Human-readable description of what went wrong. Intended for logging and debugging, not for programmatic branching (use errorCode for that). |
Something unclear? payments@suward.com — we treat every integration question as a documentation defect.