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

FieldTypeDescription
idoptionalAssetIDAsset id-string used everywhere else in the API, e.g. USDT_ARBITRUM.
id values AssetID
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_PLASMA
blockchainIdoptionalintegerInternal blockchain ID (corresponds to GET /v1/blockchains[].id).
contractAddressoptionalstringnullERC20 contract address; null for native coins (ETH, BNB, POL, XPL).
decimalsoptionalintegerNumber of decimal places: smallest-unit amounts are whole tokens * 10^decimals.
groupoptionalstringAsset group, e.g. USDT, USDC, ETH.
nameoptionalstringHuman-readable asset name.

BlockchainResponse

FieldTypeDescription
idoptionalintegerInternal blockchain ID.
idStringoptionalstringNetwork id-string, e.g. ETHEREUM, ARBITRUM (the suffix of an asset id-string).
evmChainIdoptionalintegernullEIP-155 chain ID; null for non-EVM chains.
chainNameoptionalstringHuman-readable chain name.
requiredConfirmationsoptionalintegerBlock confirmations required for a payment to reach finality.
networkFeeUsdoptionalstringFlat network-fee estimate in USD (decimal string).

CreatePaymentRequest

FieldTypeDescription
activationFlowSecondsoptionalintegerGrace 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).
amountoptionalstringMerchant 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.
assetoptionalAssetIDAsset 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.
asset values AssetID
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_PLASMA
networkFeePayeroptionalFeePayerWho bears the network (gas) fee. Default merchant.
networkFeePayer values FeePayer
merchantcustomer
serviceFeePayeroptionalFeePayerWho bears the platform (service) fee. Default merchant.
serviceFeePayer values FeePayer
merchantcustomer
externalIdoptionalstringYour 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.
metadataoptionalobjectArbitrary 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.
paymentWindowSecondsoptionalintegerHow long the payment stays open for funding, in seconds. Optional; when omitted the project default applies. Range 300 (5 minutes) to 86400 (24 hours).
redirectConfigoptionalRedirectConfigDTOOptional "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.
redirectConfig fields RedirectConfigDTO
FieldTypeDescription
dataoptionalstringOpaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token.
paramsoptionalstring[]Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier).
params values string[]
idexternalId
urloptionalstringBase "return to store" URL the customer is sent back to after paying.
underpaymentToleranceoptionalstringAmount the customer may underpay and still have the payment accepted, as an integer string in the asset's smallest unit (same scale as amount). Optional; if set it must be >= 0 and strictly less than amount. Default 0 (exact amount required). Example: for amount "10000000" (10 USDT) a value of "500000" allows a 0.50 USDT shortfall.
webhookUrloptionalstringWebhook URL to receive this payment's events. Optional; overrides the project's default webhook URL for this payment only.

CreateStaticWalletRequest

FieldTypeDescription
allowedAssetsoptionalAssetID[]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.
allowedAssets values AssetID
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_PLASMA
externalIdoptionalstringYour own identifier for this static wallet. Echoed back on the wallet and denormalized onto each of its deposits. Optional.
metadataoptionalobjectArbitrary JSON key/value data to attach to the static wallet. Stored and echoed back unchanged.
webhookUrloptionalstringWebhook URL to receive this wallet's deposit events. Optional; falls back to the project default webhook when omitted.

ListPaymentsResponse

FieldTypeDescription
hasMoreoptionalbooleanTrue when more payments exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalPaymentResponse[]Page of payments, ordered per the request's order parameter.
items fields PaymentResponse
FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance.
activatedAtoptionalintegerUnix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation.
activationFlowSecondsoptionalintegerResolved activation grace period, in seconds. Null when not configured.
addressoptionalstringOn-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned.
amountoptionalstringInteger string in the asset's smallest unit.
amountConfirmedoptionalstringInteger string in the asset's smallest unit.
amountReceivedoptionalstringInteger string in the asset's smallest unit.
assetoptionalAssetIDAsset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment.
asset values AssetID
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_PLASMA
confirmedAtoptionalintegerUnix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation.
createdAtoptionalintegerUnix-milliseconds timestamp when the payment was created.
expiresAtoptionalintegerUnix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then.
externalIdoptionalstringMerchant's own identifier for this payment, echoed from creation. Null when none was provided.
feeoptionalstringPlatform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit.
idoptionalstringUnique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path.
metadataoptionalobjectArbitrary key/value data attached by the merchant at creation, echoed back unchanged.
networkFeeoptionalstringEstimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit.
quotedPriceoptionalstringUSD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic.
networkFeePayeroptionalFeePayerWho bears the network (gas) fee, echoed from creation.
networkFeePayer values FeePayer
merchantcustomer
serviceFeePayeroptionalFeePayerWho bears the platform (service) fee, echoed from creation.
serviceFeePayer values FeePayer
merchantcustomer
paymentWindowSecondsoptionalintegerResolved length of the payment window, in seconds.
projectIdoptionalstringIdentifier of the project that owns this payment.
redirectConfigoptionalRedirectConfigDTOReturn-to-store redirect configuration echoed from creation. Null when none was configured.
redirectConfig fields RedirectConfigDTO
FieldTypeDescription
dataoptionalstringOpaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token.
paramsoptionalstring[]Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier).
params values string[]
idexternalId
urloptionalstringBase "return to store" URL the customer is sent back to after paying.
statusoptionalPaymentStatusEnumMain payment lifecycle status. See the status enum for the full meaning of each value.
status values PaymentStatusEnum
pendingacceptedsuccessfailed
subStatusoptionalPaymentSubStatusEnumFine-grained payment sub-status describing the current step or amount condition. See the sub-status enum for the full meaning of each value.
subStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaid
transactionsoptionalTransactionListPreview page of the on-chain transactions detected for this payment (newest first). Use GET /v1/payments/{paymentId}/transactions for the full paginated list.
transactions fields TransactionList
FieldTypeDescription
hasMoreoptionalbooleanTrue when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalobject[]Page of transactions, ordered per the request's order parameter.
underpaymentToleranceoptionalstringInteger string in the asset's smallest unit.
updatedAtoptionalintegerUnix-milliseconds timestamp when the payment was last updated.
webhookUrloptionalstringWebhook URL that receives this payment's events, echoed from creation. Null when the project default webhook is used.
paymentPageUrloptionalstringAbsolute URL of the Suward-hosted checkout page where the customer pays this payment.

ListStaticDepositsResponse

FieldTypeDescription
hasMoreoptionalbooleanTrue when more deposits exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalStaticDepositResponse[]Page of static-wallet deposits, ordered per the request's order parameter.
items fields StaticDepositResponse
FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance.
addressoptionalstringOn-chain address that received the deposit (the static wallet's address).
amountoptionalstringGross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
assetoptionalAssetIDAsset of the deposit, as an asset id-string (see GET /v1/assets).
asset values AssetID
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_PLASMA
confirmedAtoptionalintegerUnix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation.
createdAtoptionalintegerUnix-milliseconds timestamp when the deposit record was created.
detectedAtoptionalintegerUnix-milliseconds timestamp when the deposit was first detected on-chain.
externalIdoptionalstringExternalID is the static wallet's externalId, denormalized onto the deposit.
feeoptionalstringPlatform 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.
idoptionalstringUnique Suward identifier of the deposit.
invalidatedAtoptionalintegerUnix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated.
netAmountoptionalstringAmount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit.
networkFeeoptionalstringEstimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit.
projectIdoptionalstringIdentifier of the project that owns this deposit.
staticWalletIdoptionalstringIdentifier of the static wallet that received this deposit.
statusoptionalstringDeposit 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.
status values string
detectedacceptedconfirmedignoredinvalidated
transferIndexoptionalstringIndex of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction.
txHashoptionalstringOn-chain transaction hash of the deposit.
updatedAtoptionalintegerUnix-milliseconds timestamp when the deposit was last updated.

ListStaticWalletsResponse

FieldTypeDescription
hasMoreoptionalbooleanTrue when more static wallets exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalStaticWalletResponse[]Page of static wallets, ordered per the request's order parameter.
items fields StaticWalletResponse
FieldTypeDescription
addressoptionalstringReusable on-chain deposit address of this static wallet. Customers may send accepted assets to it repeatedly; each incoming transfer becomes a deposit.
allowedAssetsoptionalAssetID[]Accepted-asset allow-list, as asset id-strings (see GET /v1/assets). Deposits of assets outside this list are ignored and not credited.
allowedAssets values AssetID
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_PLASMA
createdAtoptionalintegerUnix-milliseconds timestamp when the static wallet was created.
externalIdoptionalstringYour own identifier for this static wallet, echoed from creation. Null when none was provided.
idoptionalstringUnique Suward identifier of the static wallet.
metadataoptionalobjectArbitrary key/value data attached by the merchant, echoed back unchanged.
projectIdoptionalstringIdentifier of the project that owns this static wallet.
updatedAtoptionalintegerUnix-milliseconds timestamp when the static wallet was last updated.
webhookUrloptionalstringWebhook URL that receives this wallet's deposit events. Null when the project default webhook is used.

PaymentResponse

FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance.
activatedAtoptionalintegerUnix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation.
activationFlowSecondsoptionalintegerResolved activation grace period, in seconds. Null when not configured.
addressoptionalstringOn-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned.
amountoptionalstringInteger string in the asset's smallest unit.
amountConfirmedoptionalstringInteger string in the asset's smallest unit.
amountReceivedoptionalstringInteger string in the asset's smallest unit.
assetoptionalAssetIDAsset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment.
asset values AssetID
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_PLASMA
confirmedAtoptionalintegerUnix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation.
createdAtoptionalintegerUnix-milliseconds timestamp when the payment was created.
expiresAtoptionalintegerUnix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then.
externalIdoptionalstringMerchant's own identifier for this payment, echoed from creation. Null when none was provided.
feeoptionalstringPlatform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit.
idoptionalstringUnique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path.
metadataoptionalobjectArbitrary key/value data attached by the merchant at creation, echoed back unchanged.
networkFeeoptionalstringEstimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit.
quotedPriceoptionalstringUSD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic.
networkFeePayeroptionalFeePayerWho bears the network (gas) fee, echoed from creation.
networkFeePayer values FeePayer
merchantcustomer
serviceFeePayeroptionalFeePayerWho bears the platform (service) fee, echoed from creation.
serviceFeePayer values FeePayer
merchantcustomer
paymentWindowSecondsoptionalintegerResolved length of the payment window, in seconds.
projectIdoptionalstringIdentifier of the project that owns this payment.
redirectConfigoptionalRedirectConfigDTOReturn-to-store redirect configuration echoed from creation. Null when none was configured.
redirectConfig fields RedirectConfigDTO
FieldTypeDescription
dataoptionalstringOpaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token.
paramsoptionalstring[]Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier).
params values string[]
idexternalId
urloptionalstringBase "return to store" URL the customer is sent back to after paying.
statusoptionalPaymentStatusEnumMain payment lifecycle status. See the status enum for the full meaning of each value.
status values PaymentStatusEnum
pendingacceptedsuccessfailed
subStatusoptionalPaymentSubStatusEnumFine-grained payment sub-status describing the current step or amount condition. See the sub-status enum for the full meaning of each value.
subStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaid
transactionsoptionalTransactionListPreview page of the on-chain transactions detected for this payment (newest first). Use GET /v1/payments/{paymentId}/transactions for the full paginated list.
transactions fields TransactionList
FieldTypeDescription
hasMoreoptionalbooleanTrue when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalTransactionResponse[]Page of transactions, ordered per the request's order parameter.
items fields TransactionResponse
FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the transfer reached the accepted (safe) confirmation tier. Null before acceptance.
amountoptionalstringOn-chain transfer amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
detectedAtoptionalintegerUnix-milliseconds timestamp when the transfer was first seen on-chain.
txHashoptionalstringOn-chain transaction hash of the transfer.
underpaymentToleranceoptionalstringInteger string in the asset's smallest unit.
updatedAtoptionalintegerUnix-milliseconds timestamp when the payment was last updated.
webhookUrloptionalstringWebhook URL that receives this payment's events, echoed from creation. Null when the project default webhook is used.
paymentPageUrloptionalstringAbsolute URL of the Suward-hosted checkout page where the customer pays this payment.

PublicPaymentResponse

FieldTypeDescription
activatedAtoptionalintegerUnix-milliseconds timestamp when the payment was activated. Null before activation.
activationFlowSecondsoptionalintegerActivation grace period in seconds before the payment window starts counting. Null when not configured.
addressoptionalstringOn-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned.
amountoptionalstringInteger string in the asset's smallest unit.
amountReceivedoptionalstringInteger string in the asset's smallest unit.
assetoptionalAssetIDAsset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected.
asset values AssetID
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_PLASMA
createdAtoptionalintegerUnix-milliseconds timestamp when the payment was created.
expiresAtoptionalintegerUnix-milliseconds timestamp when the payment window closes; the payment expires if unpaid by then.
idoptionalstringUnique Suward identifier of the payment.
paymentWindowSecondsoptionalintegerLength of the payment window in seconds — how long the payment stays open for funding once activated.
redirectoptionalPublicRedirectResolved "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.
redirect fields PublicRedirect
FieldTypeDescription
queryoptionalobjectQuery parameters to append to the URL when redirecting the customer back, e.g. id, externalId, data. Empty when the redirect has no parameters.
urloptionalstringBase "return to store" URL the customer is sent back to after paying.
statusoptionalPaymentStatusEnumMain payment lifecycle status. See the status enum for the full meaning of each value.
status values PaymentStatusEnum
pendingacceptedsuccessfailed
subStatusoptionalPaymentSubStatusEnumFine-grained payment sub-status. See the sub-status enum for the full meaning of each value.
subStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaid
underpaymentToleranceoptionalstringInteger string in the asset's smallest unit.
updatedAtoptionalintegerUnix-milliseconds timestamp when the payment was last updated.
paymentPageUrloptionalstringAbsolute URL of the Suward-hosted checkout page where the customer pays this payment.

PublicRedirect

FieldTypeDescription
queryoptionalobjectQuery parameters to append to the URL when redirecting the customer back, e.g. id, externalId, data. Empty when the redirect has no parameters.
urloptionalstringBase "return to store" URL the customer is sent back to after paying.

QuotePaymentRequest

FieldTypeDescription
assetrequiredAssetIDAsset identifier (see GET /v1/assets for the live list).
asset values AssetID
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_PLASMA
amountrequiredstringMerchant 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).
networkFeePayeroptionalFeePayerWho bears the network (gas) fee. Default merchant.
networkFeePayer values FeePayer
merchantcustomer
serviceFeePayeroptionalFeePayerWho bears the platform (service) fee. Default merchant.
serviceFeePayer values FeePayer
merchantcustomer

QuotePaymentResponse

FieldTypeDescription
assetoptionalAssetIDAsset the quote is denominated in, echoed from the request.
asset values AssetID
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_PLASMA
amountoptionalstringGross amount, integer string in the asset's smallest unit.
feeoptionalstringPlatform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit.
networkFeeoptionalstringEstimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit.
netAmountoptionalstringAmount the merchant receives after all fees. Integer string in the asset's smallest unit.
grossoptionalstringAmount the customer pays: base plus any customer-paid fees. Integer string in the asset's smallest unit.
quotedPriceoptionalstringUSD price used for this quote, decimal string. Not locked — the binding price is captured when the payment is created.

RedirectConfigDTO

FieldTypeDescription
dataoptionalstringOpaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token.
paramsoptionalstring[]Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier).
params values string[]
idexternalId
urloptionalstringBase "return to store" URL the customer is sent back to after paying.

SimulatePaymentRequest

FieldTypeDescription
amountoptionalstringOptional simulated received amount, integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
statusoptionalPaymentStatusEnumTarget main status. Required — status and subStatus are independent axes, both must be supplied.
status values PaymentStatusEnum
pendingacceptedsuccessfailed
subStatusoptionalPaymentSubStatusEnumTarget sub-status (amount/detail axis). Required — status and subStatus are independent axes, both must be supplied.
subStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaid

SimulateStaticDepositRequest

FieldTypeDescription
amountoptionalstringDeposited amount to simulate, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
assetoptionalAssetIDAsset id-string of the simulated deposit (see GET /v1/assets), e.g. USDT_ARBITRUM.
asset values AssetID
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_PLASMA
statusoptionalstringTarget lifecycle stage to drive the simulated deposit to.
status values string
detectedacceptedconfirmedinvalidated
transferIndexoptionalstringOptional index of the transfer within the transaction, as a string-encoded integer.
txHashoptionalstringOptional synthetic transaction hash; a random one is generated when omitted.

StaticDepositResponse

FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance.
addressoptionalstringOn-chain address that received the deposit (the static wallet's address).
amountoptionalstringGross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
assetoptionalAssetIDAsset of the deposit, as an asset id-string (see GET /v1/assets).
asset values AssetID
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_PLASMA
confirmedAtoptionalintegerUnix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation.
createdAtoptionalintegerUnix-milliseconds timestamp when the deposit record was created.
detectedAtoptionalintegerUnix-milliseconds timestamp when the deposit was first detected on-chain.
externalIdoptionalstringExternalID is the static wallet's externalId, denormalized onto the deposit.
feeoptionalstringPlatform 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.
idoptionalstringUnique Suward identifier of the deposit.
invalidatedAtoptionalintegerUnix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated.
netAmountoptionalstringAmount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit.
networkFeeoptionalstringEstimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit.
projectIdoptionalstringIdentifier of the project that owns this deposit.
staticWalletIdoptionalstringIdentifier of the static wallet that received this deposit.
statusoptionalstringDeposit 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.
status values string
detectedacceptedconfirmedignoredinvalidated
transferIndexoptionalstringIndex of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction.
txHashoptionalstringOn-chain transaction hash of the deposit.
updatedAtoptionalintegerUnix-milliseconds timestamp when the deposit was last updated.

StaticWalletResponse

FieldTypeDescription
addressoptionalstringReusable on-chain deposit address of this static wallet. Customers may send accepted assets to it repeatedly; each incoming transfer becomes a deposit.
allowedAssetsoptionalAssetID[]Accepted-asset allow-list, as asset id-strings (see GET /v1/assets). Deposits of assets outside this list are ignored and not credited.
allowedAssets values AssetID
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_PLASMA
createdAtoptionalintegerUnix-milliseconds timestamp when the static wallet was created.
externalIdoptionalstringYour own identifier for this static wallet, echoed from creation. Null when none was provided.
idoptionalstringUnique Suward identifier of the static wallet.
metadataoptionalobjectArbitrary key/value data attached by the merchant, echoed back unchanged.
projectIdoptionalstringIdentifier of the project that owns this static wallet.
updatedAtoptionalintegerUnix-milliseconds timestamp when the static wallet was last updated.
webhookUrloptionalstringWebhook URL that receives this wallet's deposit events. Null when the project default webhook is used.

TransactionList

FieldTypeDescription
hasMoreoptionalbooleanTrue when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalTransactionResponse[]Page of transactions, ordered per the request's order parameter.
items fields TransactionResponse
FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the transfer reached the accepted (safe) confirmation tier. Null before acceptance.
amountoptionalstringOn-chain transfer amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
detectedAtoptionalintegerUnix-milliseconds timestamp when the transfer was first seen on-chain.
txHashoptionalstringOn-chain transaction hash of the transfer.

TransactionResponse

FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the transfer reached the accepted (safe) confirmation tier. Null before acceptance.
amountoptionalstringOn-chain transfer amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
detectedAtoptionalintegerUnix-milliseconds timestamp when the transfer was first seen on-chain.
txHashoptionalstringOn-chain transaction hash of the transfer.

UpdateStaticWalletRequest

FieldTypeDescription
allowedAssetsoptionalAssetID[]New accepted-asset allow-list, as asset id-strings (see GET /v1/assets). When empty or omitted the current list is left unchanged.
allowedAssets values AssetID
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_PLASMA
metadataoptionalobjectReplacement key/value metadata for the static wallet.
webhookUrloptionalstringReplacement 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.

FieldTypeDescription
typerequiredstringEvent 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).
type values string
payment.acceptedpayment.successpayment.failed
eventIdrequiredstringUnique identifier of this event. The same event may be redelivered on retry; use eventId to deduplicate.
createdAtrequiredintegerEvent creation time, unix milliseconds.
paymentrequiredPaymentResponseFull payment resource at the time of the event — the same shape as the merchant GET /v1/payments/{paymentId} view.
payment fields PaymentResponse
FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance.
activatedAtoptionalintegerUnix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation.
activationFlowSecondsoptionalintegerResolved activation grace period, in seconds. Null when not configured.
addressoptionalstringOn-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned.
amountoptionalstringInteger string in the asset's smallest unit.
amountConfirmedoptionalstringInteger string in the asset's smallest unit.
amountReceivedoptionalstringInteger string in the asset's smallest unit.
assetoptionalAssetIDAsset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment.
asset values AssetID
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_PLASMA
confirmedAtoptionalintegerUnix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation.
createdAtoptionalintegerUnix-milliseconds timestamp when the payment was created.
expiresAtoptionalintegerUnix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then.
externalIdoptionalstringMerchant's own identifier for this payment, echoed from creation. Null when none was provided.
feeoptionalstringPlatform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit.
idoptionalstringUnique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path.
metadataoptionalobjectArbitrary key/value data attached by the merchant at creation, echoed back unchanged.
networkFeeoptionalstringEstimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit.
quotedPriceoptionalstringUSD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic.
networkFeePayeroptionalFeePayerWho bears the network (gas) fee, echoed from creation.
networkFeePayer values FeePayer
merchantcustomer
serviceFeePayeroptionalFeePayerWho bears the platform (service) fee, echoed from creation.
serviceFeePayer values FeePayer
merchantcustomer
paymentWindowSecondsoptionalintegerResolved length of the payment window, in seconds.
projectIdoptionalstringIdentifier of the project that owns this payment.
redirectConfigoptionalRedirectConfigDTOReturn-to-store redirect configuration echoed from creation. Null when none was configured.
redirectConfig fields RedirectConfigDTO
FieldTypeDescription
dataoptionalstringOpaque string passed through unchanged as the "data" query parameter on the return URL. Use it to carry your own session/order token.
paramsoptionalstring[]Which payment identifiers to append to the return URL as query parameters. Allowed values: "id" (the Suward payment id) and "externalId" (your identifier).
params values string[]
idexternalId
urloptionalstringBase "return to store" URL the customer is sent back to after paying.
statusoptionalPaymentStatusEnumMain payment lifecycle status. See the status enum for the full meaning of each value.
status values PaymentStatusEnum
pendingacceptedsuccessfailed
subStatusoptionalPaymentSubStatusEnumFine-grained payment sub-status describing the current step or amount condition. See the sub-status enum for the full meaning of each value.
subStatus values PaymentSubStatusEnum
createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaid
transactionsoptionalTransactionListPreview page of the on-chain transactions detected for this payment (newest first). Use GET /v1/payments/{paymentId}/transactions for the full paginated list.
transactions fields TransactionList
FieldTypeDescription
hasMoreoptionalbooleanTrue when more transactions exist beyond this page. To fetch the next page, pass the last item's id as the lastId query parameter.
itemsoptionalobject[]Page of transactions, ordered per the request's order parameter.
underpaymentToleranceoptionalstringInteger string in the asset's smallest unit.
updatedAtoptionalintegerUnix-milliseconds timestamp when the payment was last updated.
webhookUrloptionalstringWebhook URL that receives this payment's events, echoed from creation. Null when the project default webhook is used.
paymentPageUrloptionalstringAbsolute URL of the Suward-hosted checkout page where the customer pays this payment.

StaticDepositEvent

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.

FieldTypeDescription
typerequiredstringEvent type. static_deposit.accepted: the deposit reached safe confirmations and was credited (non-final). static_deposit.success: the deposit finalized (terminal).
type values string
static_deposit.acceptedstatic_deposit.success
eventIdrequiredstringUnique identifier of this event. The same event may be redelivered on retry; use eventId to deduplicate.
createdAtrequiredintegerEvent creation time, unix milliseconds.
staticDepositrequiredStaticDepositResponseFull static-wallet deposit resource at the time of the event.
staticDeposit fields StaticDepositResponse
FieldTypeDescription
acceptedAtoptionalintegerUnix-milliseconds timestamp when the deposit reached the accepted (safe confirmations) tier. Null before acceptance.
addressoptionalstringOn-chain address that received the deposit (the static wallet's address).
amountoptionalstringGross deposited amount, an integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
assetoptionalAssetIDAsset of the deposit, as an asset id-string (see GET /v1/assets).
asset values AssetID
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_PLASMA
confirmedAtoptionalintegerUnix-milliseconds timestamp when the deposit reached finality (confirmed). Null before confirmation.
createdAtoptionalintegerUnix-milliseconds timestamp when the deposit record was created.
detectedAtoptionalintegerUnix-milliseconds timestamp when the deposit was first detected on-chain.
externalIdoptionalstringExternalID is the static wallet's externalId, denormalized onto the deposit.
feeoptionalstringPlatform 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.
idoptionalstringUnique Suward identifier of the deposit.
invalidatedAtoptionalintegerUnix-milliseconds timestamp when the deposit was invalidated (e.g. dropped by a chain reorg). Null unless invalidated.
netAmountoptionalstringAmount credited to the merchant after fees (amount - fee - networkFee), integer string in the asset's smallest unit.
networkFeeoptionalstringEstimated on-chain (gas) cost deducted from the deposit, integer string in the asset's smallest unit.
projectIdoptionalstringIdentifier of the project that owns this deposit.
staticWalletIdoptionalstringIdentifier of the static wallet that received this deposit.
statusoptionalstringDeposit 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.
status values string
detectedacceptedconfirmedignoredinvalidated
transferIndexoptionalstringIndex of this transfer within its transaction, as a string-encoded integer. Distinguishes multiple transfers to the same address in one transaction.
txHashoptionalstringOn-chain transaction hash of the deposit.
updatedAtoptionalintegerUnix-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_PLASMA

FeePayer

Who bears a fee: merchant = deducted from the merchant's proceeds (default); customer = added on top of the customer charge.

merchantcustomer

PaymentStatusEnum

Terminal states: success (finalized), failed (terminal, no valid payment). Non-final: pending (awaiting funds), accepted (safe confirmations reached, credited — non-final until finalized).

pendingacceptedsuccessfailed

PaymentSubStatusEnum

overpaid / underpaid: more or less than the requested amount was received. partiallyPaid: payment expired with a partial payment that never reached acceptance.

createdactivatedawaitingPaymentconfirmingcompletedoverpaidunderpaidexpiredcancelledpartiallyPaid

Errors

ErrorResponse

FieldTypeDescription
argsoptionalany[]Optional list of values interpolated into the error message template (e.g. field names or limits). Order matches the placeholders in the message.
errorCodeoptionalintegerStable numeric application error code identifying the error type. Use it for programmatic handling; it does not change across locales or message wording.
messageoptionalstringHuman-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.