Get Subscription Checkout
GET/subscription-checkouts/:idDescription
Retrieve the current state of a subscription checkout intent. Use this to confirm whether the customer completed the subscribe flow before falling back to a success_url redirect.
Headers
| Header | Description | Required |
|---|---|---|
| Authorization | Bearer token with your API key | yes |
Path Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| id | string | The subscription checkout ID (e.g. `schk_1234567890abcdef`). | yes |
Example Request
const response = await fetch(
'https://checkout.exodus.com/subscription-checkouts/schk_1234567890abcdef',
{
headers: {
Authorization: 'Bearer sk_live_xxxxxxxxxxxxxxxx',
},
},
);Response
SUCCESSFUL RESPONSE
{
"object": "subscription_checkout",
"id": "schk_1234567890abcdef",
"status": "completed",
"onchain_id": "0x9f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a",
"subscriber": "0x742d35Cc6634C0532925a3b844Bc9e7595f8fE21",
"external_customer_id": "cus_42",
"supported_chains": ["eip155:1", "eip155:137", "eip155:42161"],
"subscription_manager_addresses": {
"eip155:1": "0xA1B2C3D4E5F6789012345678901234567890ABCD",
"eip155:137": "0xB2C3D4E5F67890123456789012345678901234CD",
"eip155:42161": "0xC3D4E5F6789012345678901234567890123456CD"
},
"token_addresses": {
"eip155:1": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"eip155:137": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"eip155:42161": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
},
"token_symbol": "USDC",
"charge_amount": "9990000",
"period_duration": 2592000,
"cap_amount": "120000000",
"checkout_url": "https://checkout.exodus.com/subscribe/schk_1234567890abcdef",
"success_url": "https://merchant.com/subscribed",
"cancel_url": "https://merchant.com/cancelled",
"metadata": { "external_plan_ref": "pro_monthly" },
"subscription_id": "sub_abc123def456",
"expires_at": "2026-05-19T12:05:00Z",
"created_at": "2026-05-19T12:00:00Z",
"completed_at": "2026-05-19T12:02:18Z"
}Status-dependent fields
| Status | Populated fields |
|---|---|
pending | All base fields; subscriber may be null if not pre-bound; no completed_at/cancelled_at/expired_at. |
completed | subscriber, subscription_id, completed_at. Chain picked by the customer is reflected in the materialized Subscription. |
cancelled | cancelled_at, optional cancellation_reason. |
expired | expired_at. |
The on-chain chain the customer picked is recorded on the resulting Subscription. Fetch it via GET /subscriptions/:id using the subscription_id on a completed intent.
Errors
| Status | Code | Description |
|---|---|---|
| 404 | not_found | Intent ID does not exist. |
| 403 | forbidden | Intent belongs to another merchant. |
