> For the complete documentation index, see [llms.txt](https://developers.tix.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.tix.xyz/api/claim-wallets.md).

# Claim Wallets

## Get purchase status

> Looks up the purchase using the idempotency key supplied when creating it. A non-terminal status is not proof of failure.

```json
{"openapi":"3.1.0","info":{"title":"TIX Developer Platform API","version":"0.3.0"},"tags":[{"name":"Claim wallets"}],"servers":[{"url":"https://api.tix.xyz","description":"Live / Production — real money"},{"url":"https://api.sandbox.tix.xyz","description":"Sandbox / Test money"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"get-purchase-status-response":{"type":"object","properties":{"custodialTransactionId":{"type":"string","format":"sha256_hex","pattern":"^[0-9a-fA-F]{64}$"},"transactionSignature":{"type":"string","description":"Solana signature ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `signature()`)."},"status":{"anyOf":[{"type":"string","enum":["processing","confirmed","landed_with_error","expired"]},{"type":"null"}]},"failureReason":{"type":"string","minLength":1},"claimWallet":{"type":"object","properties":{"address":{"type":"string","description":"Solana address ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `address()`)."},"claimWalletId":{"type":"string","format":"sha256_hex","pattern":"^[0-9a-fA-F]{64}$"}},"required":["address","claimWalletId"],"additionalProperties":false}},"required":["custodialTransactionId","transactionSignature","status","claimWallet"],"additionalProperties":false}}},"paths":{"/claim_wallets/purchase-status":{"get":{"operationId":"get-purchase-status","summary":"Get purchase status","tags":["Claim wallets"],"description":"Looks up the purchase using the idempotency key supplied when creating it. A non-terminal status is not proof of failure.","parameters":[{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255},"description":"The key identifying this operation; reuse it for retries and purchase-status lookups."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/get-purchase-status-response"}}}},"default":{"description":"Unsuccessful request. Error responses may be plain text, JSON, or empty; no common error-body contract is guaranteed."}}}}}}
```

## Purchase tickets into a claim wallet

> Purchases the offered tickets for a recipient. Each offer must identify a different event and ticket pair. Reuse the idempotency key when retrying the same purchase, and query purchase status before starting another purchase. The returned claim URL is a private credential.

```json
{"openapi":"3.1.0","info":{"title":"TIX Developer Platform API","version":"0.3.0"},"tags":[{"name":"Claim wallets"}],"servers":[{"url":"https://api.tix.xyz","description":"Live / Production — real money"},{"url":"https://api.sandbox.tix.xyz","description":"Sandbox / Test money"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"accept-claim-offers-response":{"type":"object","properties":{"status":{"anyOf":[{"type":"string","enum":["processing","confirmed","landed_with_error","expired"]},{"type":"null"}]},"claimWallet":{"type":"object","properties":{"address":{"type":"string","description":"Solana address ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `address()`)."},"claimWalletId":{"type":"string","format":"sha256_hex","pattern":"^[0-9a-fA-F]{64}$"}},"required":["address","claimWalletId"],"additionalProperties":false},"claimUrl":{"type":"string","format":"uri"},"failureReason":{"type":"string","minLength":1}},"required":["status","claimWallet","claimUrl"],"additionalProperties":false},"accept-claim-offers-request":{"type":"object","properties":{"userSubject":{"type":"string","minLength":1},"userEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"offers":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"event_id":{"anyOf":[{"type":"string","pattern":"^[0-9]+$","description":"Decimal integer from 0 to 18446744073709551615."},{"type":"integer","minimum":0,"maximum":9007199254740991}],"description":"Decimal integer from 0 to 18446744073709551615. Prefer decimal strings to avoid JSON number precision loss."},"ticket_id":{"anyOf":[{"type":"string","pattern":"^[0-9]+$","description":"Decimal integer from 0 to 18446744073709551615."},{"type":"integer","minimum":0,"maximum":9007199254740991}],"description":"Decimal integer from 0 to 18446744073709551615. Prefer decimal strings to avoid JSON number precision loss."},"permit_version":{"anyOf":[{"type":"string","pattern":"^[0-9]+$","description":"Decimal integer from 0 to 18446744073709551615."},{"type":"integer","minimum":0,"maximum":9007199254740991}],"description":"Decimal integer from 0 to 18446744073709551615. Prefer decimal strings to avoid JSON number precision loss."},"seller_payout":{"type":"string","description":"Solana address ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `address()`)."},"royalty_destinations":{"type":"array","items":{"type":"string","description":"Solana address ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `address()`)."}},"ticket_type_config":{"anyOf":[{"type":"string","description":"Solana address ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `address()`)."},{"type":"null"}]},"usdc_mint":{"type":"string","description":"Solana address ([`@solana/kit`](https://www.npmjs.com/package/@solana/kit), `address()`)."}},"required":["event_id","ticket_id","permit_version","seller_payout","royalty_destinations","usdc_mint"],"additionalProperties":false}}},"required":["userSubject","userEmail","offers"]}}},"paths":{"/claim_wallets":{"post":{"operationId":"accept-claim-offers","summary":"Purchase tickets into a claim wallet","tags":["Claim wallets"],"description":"Purchases the offered tickets for a recipient. Each offer must identify a different event and ticket pair. Reuse the idempotency key when retrying the same purchase, and query purchase status before starting another purchase. The returned claim URL is a private credential.","parameters":[{"name":"idempotency-key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255},"description":"The key identifying this operation; reuse it for retries and purchase-status lookups."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accept-claim-offers-response"}}}},"default":{"description":"Unsuccessful request. Error responses may be plain text, JSON, or empty; no common error-body contract is guaranteed."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accept-claim-offers-request"}}}}}}}}
```
