---
title: "Confirm action / advance formation"
method: POST
path: "/v1/actions/{token}/confirm"
tags: ["Actions"]
---

# Confirm action / advance formation

`POST /v1/actions/{token}/confirm`

## Request

- Base URL: `https://api.offshoreproz.com`
- URL: `https://api.offshoreproz.com/v1/actions/{token}/confirm`
- Auth: none required

Owner confirms the action. **Sandbox:** simulates provider immediately, returns next action. **Live:** initiates real provider (Stripe Identity/Checkout/DocuSeal) and returns redirect URL. Owner completes at the provider, then webhook advances the status automatically.

## Path parameters

- `token` string, required

## Request body

- object
  - `email` string, email: Required for payment (Stripe pre-fill) and signature (DocuSeal)
  - `name` string: Required for signature step (DocuSeal)

## Response `200`

Step completed (sandbox) or already completed

- object
  - `data` object
    - `formation_id` string
    - `status` 'draft' | 'pending_owner_confirmation' | 'portal_synced' | 'kyc_pending' | 'kyc_review' | 'kyc_approved' | 'kyc_failed' | 'payment_pending' | 'payment_authorized' | 'signature_pending' | 'filing_ready' | 'filing_in_progress' | 'registration_complete' | 'ein_pending' | 'documents_ready' | 'complete' | 'action_required' | 'failed' | 'cancelled'
    - `next_action` object, nullable
      - `type` string
      - `url` string, uri
      - `expires_at` string
  - `request_id` string

## Other responses

- `202`: Live provider initiated — redirect owner to redirect_url
- `422`: Token invalid/expired/consumed, or formation not in expected status

---

[API](https://skmtc.dev/offshoreproz/apis/offshoreproz-agent-api.md) · [All operations](https://skmtc.dev/offshoreproz/apis/offshoreproz-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/offshoreproz/apis/offshoreproz-agent-api/revisions/13026c827538?raw)
