---
title: "Complete approved credit purchase"
method: POST
path: "/v1/billing/orders/{orderId}/complete"
tags: ["Billing"]
---

# Complete approved credit purchase

`POST /v1/billing/orders/{orderId}/complete`

## Request

- Base URL: `https://api.videogen.io`
- URL: `https://api.videogen.io/v1/billing/orders/{orderId}/complete`
- Auth: HTTP bearer

Sensitive write. Complete only this quoted order after the user approves its exact terms. Deliver the scoped one-time card token through the secure header, never model-visible text. Reuse the same order, revision, client idempotency key and credential on an identical retry. A different token cannot replace an existing claim. Payment and credit fulfillment are separate states.

## Path parameters

- `orderId` string, uuid, required

## Headers

- `Stripe-Shared-Payment-Token` string, required

## Request body

- CompleteBillingOrderRequest
  - `revision` integer, required
  - `idempotencyKey` string, required

## Response `200`

Current account or order state.

- BillingOrder
  - `orderId` string, uuid, required
  - `state` 'requires_approval' | 'requires_action' | 'processing' | 'paid_pending_fulfillment' | 'fulfilled' | 'failed' | 'canceled' | 'expired', required
  - `revision` integer, required
  - `teamId` string, required
  - `teamName` string, required
  - `seller` 'VideoGen', required
  - `product` 'credits', required
  - `credits` integer, required
  - `currency` string, required
  - `subtotalMinor` integer, required
  - `discountMinor` integer, required
  - `taxMinor` integer, required
  - `feesMinor` integer, required
  - `totalMinor` integer, required
  - `expiresAt` integer, required: Unix seconds when this quote expires.
  - `termsVersion` string, required
  - `refundTerms` string, required
  - `refundStatus` 'none' | 'requested' | 'processing' | 'succeeded' | 'failed', required
  - `verificationUrl` string, nullable: Secure VideoGen verification continuation when required. Sign in as the purchaser on the same team. This is not a checkout link.
  - `receiptUrl` string, nullable, required
  - `retryGuidance` string, required
  - `paymentHandler` object, required: Seller payment handler and merchant identity for a compatible native wallet. This does not attest to host acceptance.

## Other responses

- `default`: Error

## Changes

- **2026-11-05** `25148ccd4132`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/videogen/apis/videogen-api/changes/v1/billing/orders/:orderId/complete/post.md)

---

[API](https://skmtc.dev/videogen/apis/videogen-api.md) - [All operations](https://skmtc.dev/videogen/apis/videogen-api/llms.txt) - [OpenAPI document](https://skmtc.dev/videogen/apis/videogen-api/revisions/25148ccd4132?raw)
