Tidepay API Docs

Create a plan

POST
/plans

tokenKey determines the plan's network — EVM (e.g. usdc-polygon) or Solana (e.g. usdc-solana). merchantDestinationWallet must match that network's address format (0x... for EVM, base58 for Solana). split (payout splitting via 0xSplits) is EVM-only and is rejected for Solana plans. maxCycles caps a subscription against this plan to that many billed cycles before it auto-cancels (omit for a plan that bills forever). maxFailedCycles auto-cancels a subscription after that many consecutive failed charge attempts, independent of the cron's own 7-day past_due grace window — whichever limit is reached first wins. identifier is an optional readable slug, unique per merchant, letting you reference this plan by name instead of its opaque id (see GET /plans/identifier/{identifier}). features is purely descriptive metadata shown at checkout and never affects billing.

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

curl -X POST "https://example.com/plans" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "amount": "string",    "tokenKey": "usdc-polygon",    "intervalDay": 1,    "merchantDestinationWallet": "string"  }'
Empty