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

# Create or update a bank account by external ID



## OpenAPI

````yaml /openapi/bank-accounts.json put /bank-accounts/external/{externalId}
openapi: 3.1.1
info:
  title: ARTU Compliance API
  version: 1.0.0
  description: 'API for compliance management. Documentation: https://docs.artu.ai'
servers:
  - url: https://api.artu.ai
security:
  - bearerAuth: []
    environmentHeader: []
paths:
  /bank-accounts/external/{externalId}:
    put:
      tags:
        - Bank Accounts
      summary: Create or update a bank account by external ID
      operationId: bankAccounts.upsertByExternalId
      parameters:
        - name: externalId
          in: path
          required: true
          schema:
            allOf:
              - type: string
                description: External ID
              - type: string
                minLength: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                clientId:
                  type: string
                  format: uuid
                accountNumber:
                  type: string
                  minLength: 1
                  description: Account Number
                bankName:
                  type: string
                  minLength: 1
                  description: Bank Name
                bankCode:
                  type: string
                  description: Bank Code
                country:
                  anyOf:
                    - const: MX
                      description: Country
                    - type: string
                      description: Country
                currency:
                  type: string
                  description: Currency
                type:
                  enum:
                    - checking
                    - savings
                    - investment
                    - other
                  type: string
                  description: Type
                  default: checking
                isPrimary:
                  type: boolean
                  description: Is Primary
                isActive:
                  type: boolean
                  description: Is Active
                label:
                  type: string
                  description: Label
                metadata:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                  description: Metadata
                clabe:
                  type: string
                  minLength: 18
                  description: CLABE
                codigoBanco:
                  type: string
                  minLength: 3
                  maxLength: 3
                  description: Bank Code
                codigoPlaza:
                  type: string
                  minLength: 3
                  maxLength: 3
                  description: Plaza Code
              required:
                - clientId
                - accountNumber
                - bankName
                - country
                - currency
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          clientId:
                            type: string
                            format: uuid
                          accountNumber:
                            type: string
                            minLength: 1
                            description: Account Number
                          bankName:
                            type: string
                            minLength: 1
                            description: Bank Name
                          bankCode:
                            type: string
                            description: Bank Code
                          country:
                            const: MX
                          currency:
                            type: string
                            description: Currency
                          type:
                            enum:
                              - checking
                              - savings
                              - investment
                              - other
                            type: string
                            description: Type
                            default: checking
                          isPrimary:
                            type: boolean
                            description: Is Primary
                          isActive:
                            type: boolean
                            description: Is Active
                          label:
                            type: string
                            description: Label
                          externalId:
                            type: string
                            description: External ID
                          metadata:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                            description: Metadata
                          clabe:
                            description: CLABE
                          codigoBanco:
                            type: string
                            minLength: 3
                            maxLength: 3
                            description: Bank Code
                          codigoPlaza:
                            type: string
                            minLength: 3
                            maxLength: 3
                            description: Plaza Code
                          createdAt:
                            type: string
                            format: date-time
                          updatedAt:
                            type: string
                            format: date-time
                        required:
                          - id
                          - clientId
                          - accountNumber
                          - bankName
                          - country
                          - currency
                          - createdAt
                          - updatedAt
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          clientId:
                            type: string
                            format: uuid
                          accountNumber:
                            type: string
                            minLength: 1
                            description: Account Number
                          bankName:
                            type: string
                            minLength: 1
                            description: Bank Name
                          bankCode:
                            type: string
                            description: Bank Code
                          country: {}
                          currency:
                            type: string
                            description: Currency
                          type:
                            enum:
                              - checking
                              - savings
                              - investment
                              - other
                            type: string
                            description: Type
                            default: checking
                          isPrimary:
                            type: boolean
                            description: Is Primary
                          isActive:
                            type: boolean
                            description: Is Active
                          label:
                            type: string
                            description: Label
                          externalId:
                            type: string
                            description: External ID
                          metadata:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties: {}
                            description: Metadata
                          createdAt:
                            type: string
                            format: date-time
                          updatedAt:
                            type: string
                            format: date-time
                        required:
                          - id
                          - clientId
                          - accountNumber
                          - bankName
                          - currency
                          - createdAt
                          - updatedAt
                  action:
                    enum:
                      - created
                      - updated
                      - skipped
                    type: string
                required:
                  - data
                  - action
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key authentication. Obtain your API key from the dashboard.
    environmentHeader:
      type: apiKey
      in: header
      name: X-Environment
      description: Target environment for the request. Must be "test" or "live".

````