API Reference
Base URL: https://api.sodapopfi.com
All requests and responses are JSON. Timestamps are Unix milliseconds unless a field says otherwise.
Endpoints
| Method & path | Purpose | Signature action |
|---|---|---|
| Invoices | ||
POST /integration/invoices | Create an invoice | invoice.create |
GET /integration/invoices/status | Get one invoice, re-checked on-chain | invoice.status |
GET /integration/invoices | List invoices with filters | invoice.list |
DELETE /integration/invoices | Cancel an invoice | invoice.delete |
| Withdrawals | ||
GET /integration/invoices/withdraw/prepare | Paid invoices ready to withdraw | invoice.withdraw.prepare |
POST /integration/invoices/withdraw | Withdraw now on one chain | invoice.withdraw |
GET /integration/invoices/withdraw/transactions | Withdrawal transaction history | invoice.withdraw.transactions |
| Fees and payout | ||
POST /integration/fees/set-meta | Set the withdraw fee (gasless) | fee.set-meta |
POST /integration/fees/set-payout-meta | Set the payout address (gasless) | fee.set-payout-meta |
Authentication
Every endpoint accepts either an API key (x-depay-api-key) or a request signed
by the owner wallet (x-depay-signature + x-depay-timestamp). The action
column is used only for signed requests. Details:
Authentication.
Supported chains
| Network | chainId | PaymentFactory |
|---|---|---|
| Optimism | 10 | 0x8dAE900Fb6A1179A69b1E70A49b8399c6b9e4B19 |
| BNB Smart Chain | 56 | 0x8dAE900Fb6A1179A69b1E70A49b8399c6b9e4B19 |
| Polygon | 137 | 0x8dAE900Fb6A1179A69b1E70A49b8399c6b9e4B19 |
| Base | 8453 | 0x8dAE900Fb6A1179A69b1E70A49b8399c6b9e4B19 |
| Arbitrum One | 42161 | 0x8dAE900Fb6A1179A69b1E70A49b8399c6b9e4B19 |
| Avalanche C-Chain | 43114 | 0x8dAE900Fb6A1179A69b1E70A49b8399c6b9e4B19 |
The PaymentFactory address is also the verifyingContract for
EIP-712 settings. Ethereum mainnet is not
supported. See Smart contracts for the wallet
implementation address, ABI summary and events.
Tokens
tokenAddress accepts a contract address or a symbol (USDC, USDT, EURC)
that SodaPop resolves for the selected chain. Omit it to bill in the chain's
native token. Responses always return the resolved address.
Errors
message is a string, or an array of strings for field validation errors.
Some errors carry a machine-readable code.
{
"statusCode": 400,
"code": "CHAIN_NOT_SUPPORTED",
"message": "Unsupported chainId. Supported chainIds: ...",
"error": "Bad Request"
}
See Errors and troubleshooting for the full list.