---
title: "POST /api/v1/auth/signup"
method: POST
path: "/api/v1/auth/signup"
tags: ["Authentication", "Billing"]
---

# POST /api/v1/auth/signup

`POST /api/v1/auth/signup`

Starts a Product-scoped signup using an active Plan from the public Product catalog. The subscriber account and billing entities are created atomically only after gateway approval.

## Request body

- object
  - `name` string, required
  - `email` string, email, required
  - `password` string, required
  - `clickId` string
  - `intakeId` string
  - `card` object, required
    - `cardholderName` string, required
    - `number` string, required
    - `expiryMonth` string, required
    - `expiryYear` string, required
    - `cvv` string, required
  - `browser` object
    - `colorDepth` integer
    - `javaEnabled` boolean
    - `javascriptEnabled` boolean
    - `language` string
    - `screenHeight` integer
    - `screenWidth` integer
    - `timezoneOffset` integer
  - `planId` integer, required

## Response `200`

Gateway approval completed the atomic signup, or this independent attempt requires a 3DS browser action.

- union
  - object
    - `loginUrl` string, uri, required
    - `status` 'complete', required
  - object
    - `presentation` 'iframe', required
    - `redirectUrl` string, uri, required
    - `status` 'requires_action', required

## Other responses

- `400` — The JSON request does not match the signup contract.
- `404` — The selected Plan is not available.
- `409` — The Product-scoped account already exists.
- `422` — The payment was declined.
- `503` — Billing is temporarily unavailable.

---

[API](https://skmtc.dev/expertschat/apis/billing-core-api.md) · [All operations](https://skmtc.dev/expertschat/apis/billing-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/expertschat/billing-core-api/revisions/c6d0e986ce32/schema)
