> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crown-brlv.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Account (Reliance)

> Requests onboarding of an individual account whose KYC the partner has already completed and attests to.

Request-first: the response describes a creation request, not an account. The request enters compliance review and the account is provisioned on approval.

**Validated on this request** — every rule below is answered before anything is created:

- The parent account must onboard accounts in reliance mode. A parent that onboards in kyc mode is refused with `403` and must use `POST /v1/accounts/kyc`.
- The parent must hold the `subaccounts-<tier>-tier` capability matching `reward-tier`, or the request is refused with `403`.
- Exactly one of `cpf` and `passport` must be sent, never both. A Brazilian tax residence (`tax-residence` = `BRA`) requires `cpf`, and it must be a valid CPF. Every other residence requires `passport`.
- Addresses in `external-wallets` must be unique within the request, and none may already be registered to another account.

**Idempotency**: a non-terminal request already open for the same taxpayer identifier under the same parent is returned as-is with `200`, instead of a second request being created.



## OpenAPI

````yaml POST /api/v1/accounts/reliance
openapi: 3.1.0
info:
  title: Crown API & Webhooks
  version: 1.0.0
  description: >-
    Open API 3 docs for Crown API


    Webhook events that Crown will POST to your configured endpoint URL. All
    webhooks expect a 200 OK response. Payloads use kebab-case for all keys to
    match the Crown API conventions.
servers:
  - url: https://app.crown-brlv.com
    description: Production server
security: []
paths:
  /api/v1/accounts/reliance:
    post:
      summary: Create an account (reliance)
      description: >-
        Requests onboarding of an individual account whose KYC the partner has
        already completed and attests to.


        Request-first: the response describes a creation request, not an
        account. The request enters compliance review and the account is
        provisioned on approval.


        **Validated on this request** — every rule below is answered before
        anything is created:


        - The parent account must onboard accounts in reliance mode. A parent
        that onboards in kyc mode is refused with `403` and must use `POST
        /v1/accounts/kyc`.

        - The parent must hold the `subaccounts-<tier>-tier` capability matching
        `reward-tier`, or the request is refused with `403`.

        - Exactly one of `cpf` and `passport` must be sent, never both. A
        Brazilian tax residence (`tax-residence` = `BRA`) requires `cpf`, and it
        must be a valid CPF. Every other residence requires `passport`.

        - Addresses in `external-wallets` must be unique within the request, and
        none may already be registered to another account.


        **Idempotency**: a non-terminal request already open for the same
        taxpayer identifier under the same parent is returned as-is with `200`,
        instead of a second request being created.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                cpf:
                  oneOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    A Brazilian resident's CPF. Send this for a BRA tax
                    residence, and passport for any other
                  example: '12345678901'
                passport:
                  type: object
                  properties:
                    number:
                      type: string
                      description: >-
                        Passport number, the identifier of a holder resident
                        outside Brazil
                      example: X1234567
                    country:
                      type: string
                      description: Country that issued the passport, ISO-3
                      example: PRT
                  additionalProperties: false
                  required:
                    - number
                    - country
                  description: A non-Brazilian resident's passport, sent in place of cpf
                tax-residence:
                  type: string
                  description: Tax residence country, ISO-3
                  example: BRA
                kyc-attestation-id:
                  type: string
                  description: Partner's reference to its own completed KYC of the holder
                reward-tier:
                  type: number
                  format: double
                  enum:
                    - 93.5
                    - 90
                    - 97
                  description: >-
                    CDI reward tier (%) for the account. The parent account must
                    hold the matching subaccounts-<tier>-tier capability.
                  example: 97
                external-wallets:
                  type: array
                  items:
                    type: object
                    properties:
                      address:
                        type: string
                        description: On-chain destination address
                        example: 0xabc...
                      custody-country:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: Custodian country, ISO-3
                        example: BRA
                      custody-type:
                        oneOf:
                          - type: string
                            enum:
                              - self
                              - exchange
                          - type: 'null'
                        description: Self-custody or exchange custody
                      custodian-name:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: Custodian/exchange name
                    additionalProperties: false
                    required:
                      - address
              additionalProperties: false
              required:
                - tax-residence
                - kyc-attestation-id
                - reward-tier
      responses:
        '200':
          description: An equivalent non-terminal request already exists
          content:
            application/json:
              schema:
                type: object
                properties:
                  account:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Unique identifier of the account
                        example: 019712cf-c86d-703f-85b8-bdaa4fc8d254
                      alias:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: Human-readable alias for the account
                        example: Trading account
                      status:
                        type: string
                        description: >-
                          Current status of the account. A provisioned account
                          is 'pending-setup' or 'active'. An account still being
                          created is projected as pending, carrying its request
                          status: 'pending', 'rejected', or
                          'provisioning-failed' (see ADR-0008).
                        example: active
                      external-id:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: External identifier associated with the account
                        example: ext-12345
                      parent-id:
                        oneOf:
                          - type: string
                            format: uuid
                          - type: 'null'
                        description: >-
                          Parent account id when this account has a parent; null
                          for a top-level account
                      created-at:
                        type: string
                        example: '2024-01-15T10:30:00Z'
                        format: date-time
                    additionalProperties: false
                    required:
                      - id
                      - alias
                      - status
                      - external-id
                      - created-at
                additionalProperties: false
                required:
                  - account
        '201':
          description: Account creation requested
          content:
            application/json:
              schema:
                type: object
                properties:
                  account:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Unique identifier of the account
                        example: 019712cf-c86d-703f-85b8-bdaa4fc8d254
                      alias:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: Human-readable alias for the account
                        example: Trading account
                      status:
                        type: string
                        description: >-
                          Current status of the account. A provisioned account
                          is 'pending-setup' or 'active'. An account still being
                          created is projected as pending, carrying its request
                          status: 'pending', 'rejected', or
                          'provisioning-failed' (see ADR-0008).
                        example: active
                      external-id:
                        oneOf:
                          - type: string
                          - type: 'null'
                        description: External identifier associated with the account
                        example: ext-12345
                      parent-id:
                        oneOf:
                          - type: string
                            format: uuid
                          - type: 'null'
                        description: >-
                          Parent account id when this account has a parent; null
                          for a top-level account
                      created-at:
                        type: string
                        example: '2024-01-15T10:30:00Z'
                        format: date-time
                    additionalProperties: false
                    required:
                      - id
                      - alias
                      - status
                      - external-id
                      - created-at
                additionalProperties: false
                required:
                  - account
        '400':
          description: Bad request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                      code:
                        type: string
                    additionalProperties: false
                    required:
                      - type
                      - message
                      - code
                    description: Bad request error details
                additionalProperties: false
                required:
                  - error
        '403':
          description: Forbidden - Access denied
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                      code:
                        type: string
                    additionalProperties: false
                    required:
                      - type
                      - message
                      - code
                    description: Forbidden access error details
                additionalProperties: false
                required:
                  - error
        '404':
          description: Not found - Resource does not exist
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                      code:
                        type: string
                    additionalProperties: false
                    required:
                      - type
                      - message
                      - code
                    description: Resource not found error details
                additionalProperties: false
                required:
                  - error
        '422':
          description: Unprocessable entity - Validation failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                      code:
                        type: string
                    additionalProperties: false
                    required:
                      - type
                      - message
                      - code
                    description: Validation error details
                additionalProperties: false
                required:
                  - error

````