Skip to content
Developers

Accept your first stablecoin payment in 5 minutes.

Get an API key. Make one POST request. Share the link. Real code, real endpoints, same flow as the production API.

Before you start

1

PYMSTR account

Free. No KYB. Sign up in 5 minutes via social login.

2

API key

Created in the PYMSTR dashboard. Store server-side only.

3

Settlement wallet

Bring your own self-custody wallet, or PYMSTR creates an embedded wallet for you on signup. You hold the keys either way.

4

Webhook endpoint

Configure your webhook URL in the dashboard so PYMSTR can notify your backend when payments complete. Optional: set a redirect URL the customer returns to after paying.

Step 01 · Create the payment

One POST. That's the integration.

Send an amount and a currency. PYMSTR returns a paymentUrl your customer pays at. Optional fields (acceptedChains, acceptedTokens, externalId, expiresAt, sellers) let you restrict the customer's options or wire up marketplace splits.

POST https://api.pymstr.com/v1/paymentsrequest
curl -X POST https://api.pymstr.com/v1/payments \
  -H "Authorization: Bearer pk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "49.99",
    "currency": "USD",
    "title": "Order #1234",
    "externalId": "order-1234"
  }'

Response · 201 Created

response
{
  "id": "8f3a9c2d-1b6e-4d8a-9c2e-3f4b5d6e7a8c",
  "status": "ACTIVE",
  "amount": "49.99",
  "currency": "USD",
  "title": "Order #1234",
  "externalId": "order-1234",
  "acceptedChains": [1, 42161, 8453, 137, 56],
  "acceptedTokens": ["USDC", "USDT"],
  "pymstrFee": "0.24",
  "merchantFee": "49.75",
  "paymentUrl": "https://pay.pymstr.com/p/8f3a9c2d-1b6e-4d8a-9c2e-3f4b5d6e7a8c",
  "expiresAt": "2026-05-20T07:00:00Z",
  "createdAt": "2026-05-19T07:00:00Z"
}
Step 02 · Share the link

One URL. Anywhere your customer is.

The response's paymentUrl is a hosted PYMSTR page. You don't build a checkout, you don't render anything customer-facing. Drop it into whatever channel reaches the customer.

paymentUrlhosted by PYMSTR
https://pay.pymstr.com/p/8f3a9c2d-1b6e-4d8a-9c2e-3f4b5d6e7a8c
Email

Send in an email

Link the URL from your transactional emails or order confirmations.

Invoice

Link from your invoice

Embed the URL as the "Pay now" CTA on PDF or HTML invoices.

SMS

Send via SMS or chat

Short URL, copies cleanly into texts, WhatsApp, Telegram, Slack.

Redirect

Redirect from your app

After the customer hits "Pay" in your checkout, redirect them to the paymentUrl.

At the URL, the customer signs in (social login or wallet connect), picks from the chains + tokens you accept, and signs one transaction. Funds settle directly to your wallet on-chain.

Step 03 · Get notified

Webhook fires when the chain confirms.

Configure a webhook endpoint in Dashboard → Webhooks. Once a customer pays, PYMSTR sends a payment.completed event with the paymentId. The funds are already in your wallet. The webhook is for your accounting and order-fulfilment side.

See /developers/webhooks for more.

Sign up at the PYMSTR dashboard, then create a key in the API Keys section. Treat the key like any other production secret and store it securely in the backend. See docs.pymstr.com for the full key-management flow.

Build with the stablecoin rail.