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

# Register or replace an artist PIX bank account

> This is the route used by the current client scripts and Lambda handler. LABEL customers are rejected.



## OpenAPI

````yaml /contracts/svrn-integration-api.json post /onboarding/{customer_id}/create-bank-account
openapi: 3.0.3
info:
  title: SVRN Sequential Client API
  version: '2026-04-27'
  description: >-
    OpenAPI spec generated from scripts/dux_requests and the current Lambda
    handlers. This reflects the real sequential client flow used by DUX and
    corrects the main mismatches in the published docs: POST /auth authenticates
    with X-Client-Id and X-Client-Secret headers, POST
    /onboarding/{customer_id}/create-bank-account is the active bank-account
    route, POST /due-diligence/init returns a due_diligence_id plus
    contracts_preview while upload URLs are requested separately via POST
    /due-diligence/{due_diligence_id}/uploads, and due diligence signature
    confirmation is not a client API step because it is performed by the signer
    through an emailed link outside the integrator flow.
servers:
  - url: https://api.sandbox.svrn.digital
    description: Sandbox
  - url: https://api.svrn.digital
    description: Production
security:
  - bearerAuth: []
tags:
  - name: 01 Authentication
    description: Bearer token issuance for client integrations.
  - name: 02 Onboarding
    description: >-
      Customer onboarding, listing, verification resumption, and artist PIX
      registration.
  - name: 03 Due Diligence
    description: >-
      Case creation, file upload URL issuance, offer publication, and status
      polling. Signature confirmation happens out-of-band through emailed links.
  - name: 04 Reconciliation
    description: >-
      Contract reconciliation initialization, file upload URL issuance, and
      settlement tracking.
paths:
  /onboarding/{customer_id}/create-bank-account:
    post:
      tags:
        - 02 Onboarding
      summary: Register or replace an artist PIX bank account
      description: >-
        This is the route used by the current client scripts and Lambda handler.
        LABEL customers are rejected.
      operationId: createOrReplaceArtistBankAccount
      parameters:
        - name: customer_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBankAccountRequest'
      responses:
        '201':
          description: PIX bank account registered.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '502':
          $ref: '#/components/responses/BadGateway'
components:
  schemas:
    CreateBankAccountRequest:
      type: object
      required:
        - pix_key_type
        - pix_key
      properties:
        pix_key_type:
          type: string
          enum:
            - EMAIL
            - CPF
            - PHONE
            - RANDOM
            - RANDOM_KEY
            - CNPJ
        pix_key:
          type: string
      example:
        pix_key_type: EMAIL
        pix_key: artist@example.com
    BankAccountResponse:
      type: object
      properties:
        customer_id:
          type: string
          format: uuid
        lumx_bank_account_id:
          type: string
        pix_key_type:
          type: string
        pix_key:
          type: string
        bank_account_verification_status:
          type: string
        bank_account_verification_level:
          type: string
        bank_account_data:
          type: object
          additionalProperties: true
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
        message:
          type: string
      example:
        error: MISSING_FIELD
        message: artist.customer_id is required
  responses:
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: The authenticated client cannot access this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Conflict:
      description: The request conflicts with the current workflow state.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadGateway:
      description: Upstream provider error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.