---
title: "Create a partner hosted-checkout session"
method: POST
path: "/api/v1/partner/residency_applications/{id}/checkout_session"
tags: ["Partner residency applications"]
---

# Create a partner hosted-checkout session

`POST /api/v1/partner/residency_applications/{id}/checkout_session`

## Path parameters

- `id` string, uuid, required

## Headers

- `Idempotency-Key` string — Makes retried partner write requests safe.

## Request body

- PartnerCheckoutRequest
  - `paymentProvider` 'stripe' | 'stripe-crypto' | 'blink' | 'blink-onchain' | 'solana-pay-ptc'
  - `paymentMethod` object
  - `email` string, email, nullable
  - `redirectUrl` string, uri, required

## Response `200`

Checkout session.

- CheckoutResponse
  - `data` object, nullable, required
  - `invoiceId` string, uuid, required

## Other responses

- `400` — Validation error or precondition failure.
- `401` — Missing or invalid credential.
- `403` — Credential lacks the required scope (Agent Key) or insufficient OAuth scope.
- `404` — Resource does not exist or is invisible to the caller. The two are intentionally indistinguishable.
- `409` — Conflicting state (e.g. legal-entity name already taken).
- `429` — Partner API rate limit exceeded.
- `500` — Server error.

---

[API](https://skmtc.dev/eprospera/apis/e-pro-spera-api.md) · [All operations](https://skmtc.dev/eprospera/apis/e-pro-spera-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eprospera/e-pro-spera-api/revisions/9ecdd3ca5a8c/schema)
