# API reference

All customer API operations, generated from the published OpenAPI contracts. Base URL: `https://route.click/v1`. Use the matching network key and `Route-Network` header. See [Configure access](routing-policies.md) for authentication and [Execute](next-actions.md) for workflow decisions.

## Mainnet operations

Contract **1.44.0-preview**. [Download mainnet OpenAPI](openapi.json) for complete parameters, request/response schemas and examples.

| Method | Path | Required scope | Operation |
| --- | --- | --- | --- |
| GET | `/assets` | `catalog:read` | listAssets |
| GET | `/adapters` | `catalog:read` | listAdapters |
| GET | `/providers` | `providers:read` | listConnections |
| PUT | `/providers/{adapter}` | `providers:write` | updateConnection |
| PUT | `/providers/near/credential` | `providers:write` | saveNearCredential |
| DELETE | `/providers/near/credential` | `providers:write` | removeNearCredential |
| GET | `/policy` | `policy:read` | readPolicy |
| PUT | `/policy` | `policy:write` | savePolicy |
| POST | `/quotes` | `quotes:write` | createQuote |
| GET | `/quotes/{id}` | `quotes:read` | readQuote |
| POST | `/payments` | `payments:write` | preparePayment |
| GET | `/payments` | `payments:read` | List payments |
| GET | `/payments/{id}` | `payments:read` | readPayment |
| POST | `/payments/{id}/cancel` | `payments:write` | cancelDraft |
| POST | `/payments/{id}/execute` | `payments:write` | executePayment |
| POST | `/payments/{id}/prepare` | `payments:write` | prepareDeposit |
| GET | `/payments/{id}/preparation` | `payments:read` | getPreparation |
| POST | `/payments/{id}/submission` | `payments:write` | registerSource |
| POST | `/payments/{id}/refresh` | `payments:write` | refreshPayment |
| GET | `/webhooks` | `webhooks:read` | listWebhooks |
| POST | `/webhooks` | `webhooks:write` | createWebhook |
| PUT | `/webhooks/{id}` | `webhooks:write` | updateWebhook |
| POST | `/webhooks/{id}/rotate` | `webhooks:write` | rotateWebhookSecret |
| POST | `/webhooks/{id}/test` | `webhooks:write` | testWebhook |
| POST | `/webhooks/{id}/retry` | `webhooks:write` | retryWebhook |
| GET | `/payments/{id}/wallet-approval` | `payments:read` | getWalletApproval |
| POST | `/payments/{id}/wallet-approval` | `payments:write` | requestWalletApproval |
| POST | `/payments/{id}/wallet-approval/confirm` | `payments:write` | confirmWalletApproval |
| POST | `/payments/{id}/wallet-approval/revoke` | `payments:write` | revokeWalletApproval |
| GET | `/payments/{id}/transaction` | `payments:read` | getTransaction |
| POST | `/payments/{id}/transaction` | `payments:write` | prepareTransaction |
| POST | `/payments/{id}/transaction/signature` | `payments:write` | saveTransactionSignature |
| POST | `/payments/{id}/advance` | `payments:write` | Requote and prepare the next transfer after verified intermediate settlement |
| POST | `/payments/{id}/reconcile` | `payments:write` | Check a rejected NEAR preparation |
| POST | `/payments/{id}/transaction/review` | `payments:write` | Renew an eligible EVM transaction review without replacing its transaction |
| POST | `/payments/{id}/archive` | `payments:write` | Archive an unused draft |
| PUT | `/providers/garden/credential` | `providers:write` | saveGardenCredential |
| DELETE | `/providers/garden/credential` | `providers:write` | removeGardenCredential |
| PUT | `/providers/swapkit/credential` | `providers:write` | saveSwapKitCredential |
| DELETE | `/providers/swapkit/credential` | `providers:write` | removeSwapKitCredential |
| POST | `/auto-route` | `quotes:write` | Auto-route: compare paths for a payment intent |
| GET | `/payments/{id}/next-action` | `payments:read` | Read the next payment action |
| GET | `/payments/{id}/recovery` | `payments:read` | Read saved payment recovery evidence |
| POST | `/payments/{id}/transaction/broadcast` | `payments:write` | beginWalletBroadcast |
| POST | `/payments/{id}/transaction/broadcast-confirm` | `payments:write` | confirmWalletBroadcast |
| POST | `/payments/{id}/transaction/broadcast-recover` | `payments:write` | Recover wallet submission |
| POST | `/payments/{id}/transaction/broadcast-cancel` | `payments:write` | Close a verified cancelled wallet submission |
| GET | `/payments/{id}/quote-review` | `payments:read` | Review saved provider terms before funding |
| POST | `/payments/{id}/quote-review` | `payments:write` | Accept the exact captured provider terms |
| POST | `/payments/{id}/transaction/renew` | `payments:write` | Renew an eligible expired Stellar mint, Stellar protocol action or NEAR source transaction |
| POST | `/payments/{id}/transaction/close` | `payments:write` | Close an unfunded payment whose current Stellar or EVM action can never execute |
| POST | `/payments/{id}/advance-preview` | `payments:write` | Preview continuation from a verified intermediate receipt |
| POST | `/payments/{id}/refresh-route` | `payments:write` | Refresh remaining estimates for an unfunded composed transfer |
| POST | `/payments/{id}/transaction/bitcoin-recover` | `payments:write` | Verify canonical Bitcoin replacement funding or cancellation |

## Testnet operations

Contract **0.10.7-preview**. [Download testnet OpenAPI](testnet-openapi.json) for complete parameters, request/response schemas and examples.

| Method | Path | Required scope | Operation |
| --- | --- | --- | --- |
| GET | `/assets` | `catalog:read` | testnetAssets |
| GET | `/adapters` | `catalog:read` | testnetAdapters |
| POST | `/quotes` | `quotes:write` | testnetQuote |
| GET | `/quotes/{id}` | `quotes:read` | getTestnetQuote |
| GET | `/payments` | `payments:read` | testnetPayments |
| POST | `/payments` | `payments:write` | createTestnetPayment |
| GET | `/payments/{id}` | `payments:read` | getTestnetPayment |
| GET | `/payments/{id}/preparation` | `payments:read` | getTestnetPreparation |
| POST | `/payments/{id}/prepare` | `payments:write` | prepareTestnetAction |
| POST | `/payments/{id}/refresh` | `payments:write` | refreshTestnetPayment |
| POST | `/payments/{id}/cancel` | `payments:write` | cancelTestnetDraft |
| GET | `/payments/{id}/transaction` | `payments:read` | getTestnetTransaction |
| POST | `/payments/{id}/transaction` | `payments:write` | prepareTestnetTransaction |
| POST | `/payments/{id}/transaction/signature` | `payments:write` | saveTestnetSignature |
| POST | `/payments/{id}/execute` | `payments:write` | executeTestnetPayment |
| GET | `/policy` | `policy:read` | readPolicy |
| PUT | `/policy` | `policy:write` | savePolicy |
| GET | `/payments/{id}/next-action` | `payments:read` | Read the next payment action |
| GET | `/payments/{id}/recovery` | `payments:read` | Read saved payment recovery evidence |
| POST | `/payments/{id}/transaction/broadcast` | `payments:write` | beginWalletBroadcast |
| POST | `/payments/{id}/transaction/broadcast-confirm` | `payments:write` | confirmWalletBroadcast |
| POST | `/payments/{id}/transaction/broadcast-recover` | `payments:write` | Recover wallet submission |
| POST | `/payments/{id}/transaction/broadcast-cancel` | `payments:write` | Close a verified cancelled wallet submission |
| POST | `/payments/{id}/transaction/renew` | `payments:write` | Renew an expired customer-signed Stellar mint |

## Responses and retry behavior

Response shapes and concurrency versions differ between mainnet and testnet. Use the matching schema, or the normalized [next-action API](next-actions.md). Save request identities before mutations; a timeout does not prove failure. See [Track and recover](recovery.md).
