send21-io

Send21 provides a non-custodial crypto payment link service and API for people and AI agents. Users can create pay links or invoices priced in various cryptocurrencies, including BTC, USDC, USDT, EURC, SOL, and ETH, and pay directly from their wallets via on-chain or Lightning. The platform emphasizes security, stating that it never holds users' money or private keys, and offers documentation, pricing, and demo pages for developers and businesses.

send21-io publishes 13 API contracts indexed on the APIs.io network, including Account API, Auth API, Checkout API, and 10 more. Tagged areas include Company, Payments, Crypto, API, and Non-custodial.

The send21-io catalog on APIs.io includes 1 event-driven AsyncAPI specification, 1 JSON-LD context, and 1 Spectral governance ruleset.

send21-io’s developer surface includes authentication, documentation, API reference, getting-started guide, support, pricing, and 24 more developer resources.

56.9/100 strong Agent 55/100 agent ready Full breakdown ↓
scored 2026-10-31 · rubric v0.25.0 · Show this score on your site →
1 published contract
CompanyPaymentsCryptoAPINon-custodialAI

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-10-31 · rubric v0.25.0
Regulatory Posture applies to this provider. Its tags matched the Payments regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
Create-or-Update Ergonomics could not be measured. We hold no machine-readable contract for this provider to read, so there is nothing to measure a write surface against. Excluded rather than scored zero: never-measured and measured-empty are different facts. Publishing an OpenAPI is what makes this facet — and several others — scorable at all.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site. Kin Score badge preview for send21-io It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/send21-io/"><img src="https://apis.io/badge/send21-io/card.svg" alt="send21-io on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
  • A2A Agent Card +8 pts — a2a/-a2a.yml manifest, graded on conformance.grade against A2A 1.0.0
  • Rate-Limit Signaling +7 pts — OpenAPI responses document X-RateLimit-* / RateLimit headers (verified), else a rate_limits artifact or RateLimits link (documented)
  • Request/Response Examples +7 pts — share of operations carrying request/response examples; else an Examples / Code Samples link
  • Documented Reversibility +6 pts — a reversal operation in the contract, graded up when a window is documented too
  • Pagination +5 pts — share of collection GETs (an array, or one wrapped in data/items/results ...) that declare a page/limit/offset/cursor parameter, a Link header or a next/cursor field; na with no collection GETs
  • Agentic Commerce Well-Known Document +5 pts — a parsing /.well-known/ucp.json or acp.json declaring a version and at least one service — `self` when its endpoints are on the provider's own domain, `platform` when they are on a vendor's
3 more unmet checks in the Agent Readiness table above.
Kin Score — facets with the most composite points still available (weight × headroom):
Each check links to what satisfies it. Publish the artifact, or tell us where it already lives, and the score moves on the next scoring run.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from the provider profile at artifacts.apis.io/send21-io/apis.yml: open an issue on github.com/api-evangelist/send21-io to ask a question or point us at an artifact you publish. Submit an artifact on GitHub — free → Manage your own listing — the Influence plan, $499/mo →

APIs 13

Individual APIs this provider publishes, each with its own machine-readable definition.

send21-io Account API

The Account API from send21-io — 2 operation(s) for account.

send21-io Auth API

The Auth API from send21-io — 26 operation(s) for auth.

send21-io Checkout API

The Checkout API from send21-io — 3 operation(s) for checkout.

send21-io Demo API

The Demo API from send21-io — 3 operation(s) for demo.

send21-io Drafts API

The Drafts API from send21-io — 13 operation(s) for drafts.

send21-io Fees API

The Fees API from send21-io — 3 operation(s) for fees.

send21-io Rates API

The Rates API from send21-io — 1 operation(s) for rates.

send21-io Recurring Templates API

The RecurringTemplates API from send21-io — 4 operation(s) for recurringtemplates.

send21-io Suggestions API

The Suggestions API from send21-io — 1 operation(s) for suggestions.

send21-io Webhooks API

**send21 calls your server when a draft changes.** Register an endpoint with `POST /api/v1/webhooks` (scope `webhooks:manage`) and pick the events you want. The response contain...

send21-io Address Book API

The Address Book API from send21-io — 2 operation(s) for address book.

send21-io API Keys API

The API Keys API from send21-io — 2 operation(s) for api keys.

send21-io Payment Requests API

The Payment Requests API from send21-io — 3 operation(s) for payment requests.

Scroll for all 13

Pricing Plans 1

Published pricing tiers and plan structures.

Event Specifications 1

AsyncAPI definitions for this provider's event-driven and streaming APIs.

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Send21 Io Context

100 classes · 257 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

send21-io API Rules

10 rules · 9 errors 1 info

SPECTRAL

JSON Schema 6

Standalone JSON Schema definitions for this provider's data models.

CreateDraftRequest

14 properties

JSON SCHEMA

DemoDraftResponse

14 properties

JSON SCHEMA

DraftResponse

39 properties

JSON SCHEMA

FeeBreakdownResponse

13 properties

JSON SCHEMA

PaymentRequestResponse

20 properties

JSON SCHEMA

QuoteInfo

18 properties

JSON SCHEMA

Security Posture 3

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Send21 Io Authentication

1 scheme

SECURITY

Send21 Io Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Send21 Io Vulnerability Disclosure

security.txt · contact published

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Send21 Io Agentic Access

146 operations · 102 acting · 4 human-in-the-loop

146 operations · 102 acting

AGENTIC

Resources

Get Started 2

Portal, sign-up, and the first successful call

Documentation 2

Reference material describing how the API behaves

Agent Surfaces 3

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 9

Pagination, idempotency, versioning, errors, and events

Scroll for all 9

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 5

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 4

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 2

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: send21-io
name: send21-io
image: https://send21.io/og/send21-card.png
description: Send21 provides a non-custodial crypto payment link service and API for people and AI agents. Users can create
  pay links or invoices priced in various cryptocurrencies, including BTC, USDC, USDT, EURC, SOL, and ETH, and pay directly
  from their wallets via on-chain or Lightning. The platform emphasizes security, stating that it never holds users' money
  or private keys, and offers documentation, pricing, and demo pages for developers and businesses.
url: https://artifacts.apis.io/send21-io/apis.yml
x-type: company
x-source: harvest:mcp-registry
x-tier: profiled
x-tier-reason: enrichment pass 2026-10-31 (modular-v1; was harvest)
specificationVersion: '0.20'
created: '2026-10-31'
modified: '2026-10-31'
tags:
- Company
- Payments
- Crypto
- API
- Non-custodial
- AI
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
- FN: APIs.json
  email: info@apis.io
common:
- type: AgenticAccess
  url: agentic-access/send21-io-agentic-access.yml
- type: Plans
  url: plans/send21-io-plans-pricing.yml
- type: Spectral
  url: rules/send21-io-rules.yml
- type: JSONLD
  url: json-ld/send21-io-context.jsonld
- type: Vocabulary
  url: vocabulary/send21-io-vocabulary.yml
- type: Webhooks
  url: asyncapi/send21-io-webhooks.yml
- type: DataModel
  url: data-model/send21-io-data-model.yml
- type: Idempotency
  url: conventions/send21-io-conventions.yml
- type: Conventions
  url: conventions/send21-io-conventions.yml
- type: Security
  url: security/send21-io-vulnerability-disclosure.yml
- type: Authentication
  url: authentication/send21-io-authentication.yml
- type: ErrorCatalog
  url: errors/send21-io-problem-types.yml
- type: Conformance
  url: conformance/send21-io-conformance.yml
- type: LLMsTxt
  url: llms/send21-io-llms.txt
- type: SecurityTxt
  url: well-known/send21-io-security.txt
- type: WellKnown
  url: well-known/send21-io-well-known.yml
- type: Hosts
  url: hosts/send21-io-hosts.yml
- type: Vendors
  url: vendors/send21-io-vendors.yml
- type: Login
  url: https://send21.io/login
- type: VulnerabilityDisclosure
  url: security/send21-io-vulnerability-disclosure.yml
- type: DomainSecurity
  url: security/send21-io-domain-security.yml
- type: Website
  url: https://send21.io/
- type: Documentation
  url: https://send21.io/docs
- type: APIReference
  url: https://send21.io/swagger/v1/swagger.json
- type: GettingStarted
  url: https://send21.io/docs/quickstart
- type: Support
  url: https://send21.io/about
- type: GitHubOrganization
  url: https://github.com/send21io
- type: Pricing
  url: https://send21.io/pricing
- type: TermsOfService
  url: https://send21.io/terms
- type: PrivacyPolicy
  url: https://send21.io/privacy
apis:
- aid: send21-io:send21-io-account-api
  name: send21-io Account API
  description: The Account API from send21-io — 2 operation(s) for account.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Account
  properties:
  - type: OpenAPI
    url: openapi/send21-io-account-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-auth-api
  name: send21-io Auth API
  description: The Auth API from send21-io — 26 operation(s) for auth.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Auth
  properties:
  - type: OpenAPI
    url: openapi/send21-io-auth-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-checkout-api
  name: send21-io Checkout API
  description: The Checkout API from send21-io — 3 operation(s) for checkout.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Checkout
  properties:
  - type: OpenAPI
    url: openapi/send21-io-checkout-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-demo-api
  name: send21-io Demo API
  description: The Demo API from send21-io — 3 operation(s) for demo.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Demo
  properties:
  - type: OpenAPI
    url: openapi/send21-io-demo-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-drafts-api
  name: send21-io Drafts API
  description: The Drafts API from send21-io — 13 operation(s) for drafts.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Drafts
  properties:
  - type: OpenAPI
    url: openapi/send21-io-drafts-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-fees-api
  name: send21-io Fees API
  description: The Fees API from send21-io — 3 operation(s) for fees.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Fees
  properties:
  - type: OpenAPI
    url: openapi/send21-io-fees-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-rates-api
  name: send21-io Rates API
  description: The Rates API from send21-io — 1 operation(s) for rates.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Rates
  properties:
  - type: OpenAPI
    url: openapi/send21-io-rates-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-recurringtemplates-api
  name: send21-io Recurring Templates API
  description: The RecurringTemplates API from send21-io — 4 operation(s) for recurringtemplates.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - RecurringTemplates
  properties:
  - type: OpenAPI
    url: openapi/send21-io-recurringtemplates-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-suggestions-api
  name: send21-io Suggestions API
  description: The Suggestions API from send21-io — 1 operation(s) for suggestions.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Suggestions
  properties:
  - type: OpenAPI
    url: openapi/send21-io-suggestions-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-webhooks-api
  name: send21-io Webhooks API
  description: "**send21 calls your server when a draft changes.** Register an endpoint with `POST /api/v1/webhooks`\n(scope\
    \ `webhooks:manage`) and pick the events you want. The response contains the signing secret\nonce; store it. Send a signed\
    \ test event any time with `POST /api/v1/webhooks/{id}/test`.\n\n### Delivery\n\nA `POST` to your URL with `Content-Type:\
    \ application/json` and this body:\n\n```json\n{ \"event\": \"draft.confirmed\", \"data\": { ... } }\n```\n\n| Header\
    \ | Meaning |\n|---|---|\n| `X-Send21-Event` | The event type, same as `event` in the body. |\n| `X-Send21-Delivery` |\
    \ Unique delivery id. Retries reuse it, so use it to ignore duplicates. |\n| `X-Send21-Signature-V2` | `t=<timestamp>,v1=<hex\
    \ HMAC-SHA256 of \"<timestamp>.<delivery id>.<raw body>\">`, keyed with your secret. Verify this one: it also signs the\
    \ time and the delivery id, so a copied delivery cannot be replayed later. Refuse deliveries older than 5 minutes (300\
    \ seconds). |\n| `X-Send21-Timestamp` | When the delivery was sent, in Unix seconds (the same value as `t=`). |\n| `X-Send21-Signature`\
    \ | Original signature, kept for existing integrations: `sha256=` followed by the lowercase hex HMAC-SHA256 of the raw\
    \ body only. It has no timestamp, so a copied delivery passes it again. |\n\nAny 2xx response counts as delivered. Anything\
    \ else, or no answer within 15 seconds, is retried\nafter 1, 2, 4, 8 minutes and so on, up to 8 attempts. Deliveries can\
    \ arrive out of order.\n\n### Verifying the signature\n\nCheck `X-Send21-Signature-V2`: compute the HMAC over `<timestamp>.<delivery\
    \ id>.<raw body>`, using the\nraw request bytes before parsing the JSON, compare in constant time, and refuse deliveries\
    \ more than\n300 seconds old. Answer 401 when the header is missing or wrong. The same check as on\nsend21.io/docs/webhooks:\n\
    \n```js\n// X-Send21-Signature-V2: t=<unix seconds>,v1=<hex HMAC-SHA256 of \"<t>.<delivery id>.<raw body>\">\nconst sig\
    \ = String(req.headers['x-send21-signature-v2'] ?? '');\nconst t = /(?:^|,)t=(\\d+)/.exec(sig)?.[1];\nconst v1 = /(?:^|,)v1=([0-9a-f]{64})/.exec(sig)?.[1];\n\
    const deliveryId = String(req.headers['x-send21-delivery'] ?? '');\nconst fresh = t !== undefined && Math.abs(Date.now()\
    \ / 1000 - Number(t)) <= 300;\nconst expected = crypto.createHmac('sha256', secret)\n  .update(t + '.' + deliveryId +\
    \ '.').update(rawBody).digest('hex');\nconst ok = fresh && v1 !== undefined &&\n  crypto.timingSafeEqual(Buffer.from(v1,\
    \ 'hex'), Buffer.from(expected, 'hex'));\nif (!ok) return res.status(401).end();\n```\n\nBefore you ship goods, check\
    \ that the confirmed amount, currency and `orderId` are the ones you\nexpect, or fetch `GET /api/v1/drafts/{id}` with\
    \ your API key and check its status there.\n\n### Events\n\n| Event | When |\n|---|---|\n| `draft.created` | A draft was\
    \ created: by you, an API key, a recurring template, or a payer picking a currency on a pay link. |\n| `draft.seen` |\
    \ A payment for the draft was seen, but is not confirmed yet. Also sent when you accept a payment with a different amount\
    \ (`acceptedByOwner: true`); `draft.confirmed` follows once that transfer has the required confirmations. |\n| `draft.confirmed`\
    \ | The payment reached the required confirmations. For Lightning: the provider confirmed it with a valid preimage. |\n\
    | `draft.amount_mismatch` | A transfer needs your decision (`reviewState: pending`). `reviewReason: \"amount\"`: it arrived\
    \ within 10% of the billed amount, but not the exact amount. `reviewReason: \"rate_lock_expired\"`: a pay-link payment\
    \ of the exact amount arrived more than 10 minutes after its rate lock ended, so it was priced at an older rate. It does\
    \ not pay the draft until you accept it with `POST /api/v1/drafts/{id}/accept-received`; decline it with `POST /api/v1/drafts/{id}/reject-received`.\
    \ Sent once. |\n| `draft.mismatch_accepted` | A payment with a different amount was accepted, by you (`acceptReason`)\
    \ or by the draft's `shortfallPolicy` (`acceptReason: \"auto: shortfallPolicy\"`). Carries `expectedAmountSats`, `receivedAmountSats`,\
    \ `acceptedBy` and `acceptedAt`. |\n| `draft.mismatch_rejected` | You declined it (`rejectReason`, `rejectedBy`, `rejectedAt`).\
    \ `refund: \"manual\"`: the money is in your wallet and send21 cannot return it. |\n| `draft.mismatch_reminder` | Still\
    \ undecided 2 hours before the draft expires. Sent once. |\n| `draft.mismatch_unresolved` | The draft expired or was cancelled\
    \ while the transfer was undecided. The money arrived and is in your wallet; you can still accept it. |\n| `draft.expired`\
    \ | The draft expired unpaid. If an undecided transfer with a different amount arrived, `receivedAmountSats` is set and\
    \ `reviewState` is `unresolved`. Pay-link payments also carry `opened`, `quoteRequested`, `firstOpenedAt` and `quoteRequestedAt`.\
    \ |\n| `draft.cancelled` | The draft was cancelled. |\n| `payment_request.expired` | A pay link expired unpaid. `opened`:\
    \ the payer loaded the pay page (link previews and bots ignored). `quoteRequested`: they picked a currency. `reviewState`\
    \ if a differing transfer arrived. No IP or payer data. |\n| `test` | Sent by the test endpoint. `data` has `message`\
    \ and `occurredAt`. |\n\n### Payload of draft.seen, draft.confirmed, draft.amount_mismatch and draft.expired\n\nAmounts\
    \ ending in `Sats` are base units of the sent asset: 8 decimals for BTC, 6 for USDC, USDT and\nEURC, 9 for SOL and ETH\
    \ (ETH amounts are in gwei). `txId` is the transaction id or signature; for Lightning it is the payment hash. For native\
    \ ETH\nfound by the balance fallback from a smart-wallet transfer, it is `block-<number>`.\n`receivedAmountSats` and `receivedAmount`\
    \ are set only when the amount differs from the billed amount,\nincluding on the `draft.confirmed` of an accepted short\
    \ or over payment, so you can record what arrived.\n`paymentRequestId` and `orderId` are set for pay-link payments.\n\n\
    ```json\n{\n  \"event\": \"draft.amount_mismatch\",\n  \"data\": {\n    \"draftId\": \"3f6c2a9e-5d1b-4c8e-9a7f-2b4d6e8f0a1c\"\
    ,\n    \"status\": \"AwaitingPayment\",\n    \"txId\": \"5KqZ9bQ...\",\n    \"confirmations\": 1,\n    \"receivedAmountSats\"\
    : 49250000,\n    \"receivedAmount\": \"49.250000\",\n    \"sentCurrency\": \"USDC\",\n    \"network\": \"Solana\",\n \
    \   \"amountSats\": 50000000,\n    \"sentAmount\": \"50.000000\",\n    \"fiatCurrency\": \"EUR\",\n    \"fiatAmount\"\
    : 46.00,\n    \"conversionRate\": 0.92,\n    \"rateSource\": \"coinbase\",\n    \"platformFee\": {\n      \"accrued\"\
    : true, \"waived\": false, \"percent\": 0.39, \"feeUsd\": 0.20,\n      \"feeBaseUnits\": 195000, \"feeAmount\": \"0.195000\"\
    , \"currency\": \"USDC\"\n    },\n    \"paymentRequestId\": \"8d1e4b7a-0c2f-4e6d-b3a9-7f5c1e2d4a6b\",\n    \"orderId\"\
    : \"ORDER-1042\",\n    \"occurredAt\": \"2026-10-06T08:22:22Z\"\n  }\n}\n```\n\n### Payload of draft.created and draft.cancelled\n\
    \n`draft.created` has `draftId`, `amountSats`, `network` and `occurredAt`; pay-link drafts add\n`paymentRequestId`, `orderId`\
    \ and `currency`. `draft.cancelled` has `draftId`, `status`, `network`,\n`amountSats`, `paymentRequestId` and `occurredAt`."
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Webhooks
  properties:
  - type: OpenAPI
    url: openapi/send21-io-webhooks-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-address-book-api
  name: send21-io Address Book API
  description: The Address Book API from send21-io — 2 operation(s) for address book.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Address Book
  properties:
  - type: OpenAPI
    url: openapi/send21-io-address-book-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-api-keys-api
  name: send21-io API Keys API
  description: The API Keys API from send21-io — 2 operation(s) for api keys.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - API Keys
  properties:
  - type: OpenAPI
    url: openapi/send21-io-api-keys-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
- aid: send21-io:send21-io-payment-requests-api
  name: send21-io Payment Requests API
  description: The Payment Requests API from send21-io — 3 operation(s) for payment requests.
  humanURL: https://send21.io/docs
  baseURL: https://send21.io
  tags:
  - Payment Requests
  properties:
  - type: OpenAPI
    url: openapi/send21-io-payment-requests-api-openapi.yml
  - type: JSONSchema
    url: json-schema/send21-io-draft-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-payment-request-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-quote-info-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-create-draft-request-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-fee-breakdown-response-schema.json
  - type: JSONSchema
    url: json-schema/send21-io-demo-draft-response-schema.json
x-enrichment:
  date: '2026-10-31'
  status: enriched
  artifacts_added: 30
  pass: modular-v1
  engine: identity=local,contract=local,surfaces=local,docs=local,regulatory=local

send21-io API — frequently asked questions

Does send21-io have an API?

Yes. APIs.io lists 13 APIs from send21-io, including send21-io Account API, send21-io Auth API and send21-io Checkout API, and 10 more.

Is there an OpenAPI specification for the send21-io API?

Yes. APIs.io indexes 13 OpenAPI specifications for send21-io, each linked for download from this page.

How do I authenticate with the send21-io API?

send21-io documents its authentication (1 scheme). The details are profiled on APIs.io as Send21 Io Authentication.

How much does the send21-io API cost?

APIs.io lists 1 pricing plan for send21-io, with each plan's price, limits and inclusions under Pricing Plans on this page.

Is the send21-io API ready for AI agents?

send21-io has a Kin Score of 56.9 out of 100 (strong) and an Agent Readiness score of 54.9 (agent-ready), scored by API Evangelist on 2026-10-31.

Work with this as data

Every provider here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This provider
curl "https://apis.io/api/v1/providers/send21-io"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/send21-io/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/send21-io/evidence"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.