TidePay
Payments

Create a one-off payment

POST
/payments

Pulls amount of tokenKey from fromWallet and forwards it to toWallet. idempotencyKey is required. See Core concepts → Payments.

X-API-Key<token>

Your merchant API key, shown once at creation in the dashboard (Settings → API key).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/payments" \  -H "Content-Type: application/json" \  -d '{    "toWallet": "string",    "amount": "25.00",    "tokenKey": "usdc-polygon",    "idempotencyKey": "550e8400-e29b-41d4-a716-446655440000"  }'
{  "id": "pay_01j8x2q3r4s5t6u7v8w9x0y1z2",  "merchantId": "string",  "customerId": "string",  "source": "one_time",  "subscriptionId": "string",  "offerId": "string",  "priceId": "string",  "periodStart": "2026-08-19T14:32:00.000Z",  "periodEnd": "2026-08-19T14:32:00.000Z",  "attempts": 1,  "idempotencyKey": "string",  "paymentMethod": "wallet_connect",  "fromWallet": "0x71c7656ec7ab88b098defb751b7401b5f6d8976",  "toWallet": "0x71c7656ec7ab88b098defb751b7401b5f6d8976",  "amount": "10.00",  "platformAmount": "10.00",  "merchantAmount": "10.00",  "tokenKey": "usdc-polygon",  "chainId": 137,  "pullTxHash": "string",  "forwardTxHash": "string",  "platformTransferTxHash": "string",  "distributeTxHash": "string",  "status": "pending",  "failureReason": "insufficient_allowance",  "isSandbox": true,  "affiliatePartnerId": "string",  "affiliateCommissionPct": "string",  "createdAt": "2026-08-19T14:32:00.000Z",  "updatedAt": "2026-08-19T14:32:00.000Z"}