openapi: 3.1.0
info:
  version: 1.0.0
  title: Lumx API
  description: A cross-border banking API with instant settlements and unmatched liquidity, powered by stablecoins.
servers:
  - url: https://api-sandbox.lumx.io
paths:
  /customers:
    get:
      tags:
        - Customers
      summary: Read all customers
      description: This endpoint reads all customers.
      parameters:
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
          description: Number of customers to return per page.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Cursor for pagination. Use the nextCursor or previousCursor from the previous response to get the next or previous page.
      responses:
        "200":
          description: Resources successfully retrieved.
          content:
            application/json:
              examples:
                Business:
                  $ref: "#/components/examples/CustomerBusinessArrayExample"
              schema:
                type: object
                properties:
                  data:
                    description: An array containing all customers.
                    type: array
                    items:
                      $ref: "#/components/schemas/CustomerArrayResponse"
                  pagination:
                    type: object
                    description: Pagination metadata for the response.
                    properties:
                      size:
                        type: integer
                        description: Number of items per page.
                        example: 25
                      total:
                        type: integer
                        description: Total number of items available.
                        example: 1
                      hasNextPage:
                        type: boolean
                        description: Whether more items are available after this page.
                        example: false
                      hasPreviousPage:
                        type: boolean
                        description: Whether items are available before this page.
                        example: false
                      nextCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the next page. `null` when `hasNextPage` is false.
                        example: null
                      previousCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the previous page. `null` when `hasPreviousPage` is false.
                        example: null
      security:
        - apiKey: []
    post:
      tags:
        - Customers
      summary: Create a customer
      description: This endpoint creates a customer.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              Business:
                $ref: "#/components/examples/CustomerRequestBusinessExample"
              Individual:
                $ref: "#/components/examples/CustomerRequestIndividualExample"
            schema:
              $ref: "#/components/schemas/CustomerRequest"
      responses:
        "201":
          description: Resource successfully created.
          content:
            application/json:
              examples:
                Business:
                  $ref: "#/components/examples/CustomerCreateBusinessExample"
                Individual:
                  $ref: "#/components/examples/CustomerCreateIndividualExample"
              schema:
                $ref: "#/components/schemas/CustomerCreateResponse"
      security:
        - apiKey: []
  "/customers/{id}":
    get:
      tags:
        - Customers
      summary: Read a customer
      description: This endpoint reads a customer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - name: includeBalances
          in: query
          required: false
          schema:
            type: boolean
          description: Whether to include balances in the response body.
        - name: includeTransactionLimits
          in: query
          required: false
          schema:
            type: boolean
          description: Whether to include transaction limits in the response body. Limits are returned per transaction type (`onramp`, `offramp` and `transfer`).
      responses:
        "200":
          description: Resource successfully retrieved.
          content:
            application/json:
              examples:
                Business:
                  $ref: "#/components/examples/CustomerBusinessExample"
                Individual:
                  $ref: "#/components/examples/CustomerIndividualExample"
              schema:
                $ref: "#/components/schemas/CustomerResponse"
      security:
        - apiKey: []
  "/customers/{id}/tos":
    post:
      tags:
        - Customers
      summary: Create TOS acceptance link
      description: This endpoint generates a terms of service acceptance URL for a customer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                redirectUrl:
                  type: string
                  format: uri
                  description: URL to redirect the customer to after they accept the terms of service.
            example:
              redirectUrl: "https://yourapp.com/onboarding/next-step"
      responses:
        "200":
          description: Terms of service URL successfully generated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    format: uri
                    description: The acceptance link for the customer to accept the terms of service.
                  expiresAt:
                    type: string
                    format: date-time
                    description: Expiration date and time of the acceptance link. The link expires after 24 hours.
              example:
                url: "https://dashboard.lumx.io/tos/eyJhbGciOiJSUzI1..."
                expiresAt: "2026-04-09T16:00:00Z"
      security:
        - apiKey: []
  "/customers/{id}/additional-information":
    patch:
      tags:
        - Customers
      summary: Send additional information
      description: >-
        This endpoint updates a customer with additional information required for KYC/KYB verification.
        Customers created on or after October 28, 2026 answer the current questionnaire. Customers created
        before October 28, 2026 keep answering the previous questionnaire, whose body is unchanged.
        Sending the body that does not match the customer's questionnaire returns `400` with code `VALIDATION_ERROR`.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              Business:
                $ref: "#/components/examples/CustomerUpdateBusinessExample"
              Individual:
                $ref: "#/components/examples/CustomerUpdateIndividualExample"
              BusinessPrevious:
                $ref: "#/components/examples/CustomerUpdateBusinessPreviousExample"
              IndividualPrevious:
                $ref: "#/components/examples/CustomerUpdateIndividualPreviousExample"
            schema:
              $ref: "#/components/schemas/CustomerUpdateRequest"
      responses:
        "200":
          description: Resource successfully updated.
          content:
            application/json:
              examples:
                Business:
                  $ref: "#/components/examples/CustomerBusinessExample"
                Individual:
                  $ref: "#/components/examples/CustomerIndividualExample"
              schema:
                $ref: "#/components/schemas/CustomerResponse"
      security:
        - apiKey: []
  "/customers/{id}/verifications/{verificationId}":
    get:
      tags:
        - Customers
      summary: Read a verification
      description: This endpoint reads a customer's verification process.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - name: verificationId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Verification's unique identifier.
      responses:
        "200":
          description: Resource successfully retrieved.
          content:
            application/json:
              examples:
                Business:
                  $ref: "#/components/examples/CustomerVerificationBusinessResponse"
              schema:
                $ref: "#/components/schemas/CustomerVerificationResponse"
      security:
        - apiKey: []
  "/customers/{id}/verifications":
    post:
      tags:
        - Customers
      summary: Start a verification
      description: This endpoint starts a customer's verification process. For BUSINESS customers, ensure all documents and associated parties are uploaded before starting verification. For INDIVIDUAL customers, verification starts automatically after liveness check.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                associatedPartyIds:
                  type: array
                  description: Optional list of associated party IDs to retry verification for, in isolation. When provided, only these associated parties are sent for verification again; the customer's overall verification is not restarted. Applies only to BUSINESS customers.
                  items:
                    type: string
                    format: uuid
                    example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      responses:
        "201":
          description: Verification successfully started.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Verification's unique identifier.
      security:
        - apiKey: []
  "/customers/{id}/documents":
    post:
      tags:
        - Customers
      summary: Upload a document
      description: This endpoint uploads a document for a customer's verification, or a supporting document for a limit-increase request. For the latter, use the returned documentId as supportingDocumentId when creating the limit request.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/CustomerDocumentUploadRequest"
      responses:
        "200":
          description: Document successfully uploaded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CustomerDocumentUploadResponse"
      security:
        - apiKey: []
  "/customers/{id}/limit-requests":
    get:
      tags:
        - Customers
      summary: Read all limit requests
      description: This endpoint reads all limit-increase requests for a customer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - name: cursor
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
          description: Page number to fetch. Use the nextCursor from the previous response.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 20
          description: Number of limit requests to return per page.
      responses:
        "200":
          description: Resources successfully retrieved.
          content:
            application/json:
              examples:
                InReview:
                  $ref: "#/components/examples/LimitRequestArrayExample"
                Approved:
                  $ref: "#/components/examples/LimitRequestArrayApprovedExample"
                PartiallyApproved:
                  $ref: "#/components/examples/LimitRequestArrayPartiallyApprovedExample"
                Rejected:
                  $ref: "#/components/examples/LimitRequestArrayRejectedExample"
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array containing the customer's limit requests.
                    items:
                      $ref: "#/components/schemas/LimitRequestResponse"
                  pagination:
                    type: object
                    description: Pagination metadata for the response.
                    properties:
                      size:
                        type: integer
                        description: Number of items per page.
                        example: 20
                      total:
                        type: integer
                        description: Total number of items available.
                        example: 1
                      hasNextPage:
                        type: boolean
                        description: Whether more items are available after this page.
                        example: false
                      nextCursor:
                        type: integer
                        nullable: true
                        description: Page to fetch next. Absent when `hasNextPage` is false.
                        example: null
      security:
        - apiKey: []
    post:
      tags:
        - Customers
      summary: Request a limit increase
      description: >-
        This endpoint creates a limit-increase request for a customer. Upload the supporting document first with
        POST /customers/{id}/documents and pass the returned documentId as supportingDocumentId.
        Each request raises the limits of one transaction type (`type`), and approval changes only that type's limits.
        A customer can have one pending request per type; creating a second pending request for the same type
        returns `409` with code `LIMIT_REQUEST_ALREADY_PENDING`.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              Default:
                $ref: "#/components/examples/LimitRequestCreateExample"
            schema:
              $ref: "#/components/schemas/LimitRequestCreateRequest"
      responses:
        "201":
          description: Resource successfully created.
          content:
            application/json:
              examples:
                Default:
                  $ref: "#/components/examples/LimitRequestResponseExample"
              schema:
                $ref: "#/components/schemas/LimitRequestResponse"
      security:
        - apiKey: []
  "/customers/{id}/limit-requests/{limitRequestId}":
    get:
      tags:
        - Customers
      summary: Read a limit request
      description: This endpoint reads a single limit-increase request for a customer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - name: limitRequestId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Limit request's unique identifier.
      responses:
        "200":
          description: Resource successfully retrieved.
          content:
            application/json:
              examples:
                InReview:
                  $ref: "#/components/examples/LimitRequestResponseExample"
                Approved:
                  $ref: "#/components/examples/LimitRequestApprovedExample"
                PartiallyApproved:
                  $ref: "#/components/examples/LimitRequestPartiallyApprovedExample"
                Rejected:
                  $ref: "#/components/examples/LimitRequestRejectedExample"
              schema:
                $ref: "#/components/schemas/LimitRequestResponse"
      security:
        - apiKey: []
  "/customers/{id}/associated-parties":
    get:
      tags:
        - Customers
      summary: Read all associated parties
      description: This endpoint reads all associated parties of a business customer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
      responses:
        "200":
          description: Associated parties successfully retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/AssociatedPartyResponse"
      security:
        - apiKey: []
    post:
      tags:
        - Customers
      summary: Create an associated party
      description: >-
        This endpoint creates an associated party (UBO, shareholder, or representative) for a business customer.
        Individual associated parties of customers created on or after October 28, 2026 require `monthlyIncomeInUSD`.
        Business associated parties, and associated parties of customers created before October 28, 2026, keep the
        previous body, where `monthlyIncomeInUSD` is not accepted and returns `400`.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              UBO:
                $ref: "#/components/examples/AssociatedPartyUBOExample"
              ShareholderIndividual:
                $ref: "#/components/examples/AssociatedPartyShareholderIndividualExample"
              ShareholderBusiness:
                $ref: "#/components/examples/AssociatedPartyShareholderBusinessExample"
              Representative:
                $ref: "#/components/examples/AssociatedPartyRepresentativeExample"
            schema:
              $ref: "#/components/schemas/AssociatedPartyRequest"
      responses:
        "201":
          description: Associated party successfully created.
          content:
            application/json:
              examples:
                UBO:
                  $ref: "#/components/examples/AssociatedPartyUBOResponseExample"
              schema:
                $ref: "#/components/schemas/AssociatedPartyResponse"
      security:
        - apiKey: []
  "/customers/{id}/associated-parties/{associatedPartyId}":
    get:
      tags:
        - Customers
      summary: Read an associated party
      description: This endpoint reads an associated party of a business customer.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Customer's unique identifier.
        - name: associatedPartyId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Associated party's unique identifier.
      responses:
        "200":
          description: Associated party successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssociatedPartyResponse"
      security:
        - apiKey: []
  /accounts:
    get:
      tags:
        - Accounts
      summary: Read all accounts
      description: This endpoint reads all accounts.
      parameters:
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
          description: Number of accounts to return per page.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Cursor for pagination. Use the nextCursor or previousCursor from the previous response to get the next or previous page.
        - name: customerId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Filter accounts by customer's unique identifier.
          example: "768d6aac-627e-44e8-aabd-d51d10f59c02"
      responses:
        "200":
          description: Accounts successfully retrieved.
          content:
            application/json:
              examples:
                Accounts:
                  $ref: "#/components/examples/AccountArrayExample"
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array containing all accounts.
                    items:
                      $ref: "#/components/schemas/AccountArrayResponse"
                  pagination:
                    type: object
                    description: Pagination metadata for the response.
                    properties:
                      size:
                        type: integer
                        description: Number of items per page.
                        example: 25
                      total:
                        type: integer
                        description: Total number of items available.
                        example: 3
                      hasNextPage:
                        type: boolean
                        description: Whether more items are available after this page.
                        example: false
                      hasPreviousPage:
                        type: boolean
                        description: Whether items are available before this page.
                        example: false
                      nextCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the next page. `null` when `hasNextPage` is false.
                        example: null
                      previousCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the previous page. `null` when `hasPreviousPage` is false.
                        example: null
      security:
        - apiKey: []
  /destinations:
    get:
      tags:
        - Destinations
      summary: Read all destinations
      description: This endpoint reads all destinations.
      parameters:
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
          description: Number of destinations to return per page.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Cursor for pagination. Use the nextCursor or previousCursor from the previous response to get the next or previous page.
        - name: customerId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Filter destinations by customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      responses:
        "200":
          description: Destinations successfully retrieved.
          content:
            application/json:
              examples:
                Destination:
                  value:
                    data:
                      - id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
                        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                        name: "Lumx Brazil Operations Account"
                        type: "EXTERNAL"
                        rail: "PIX"
                        currency: "BRL"
                        identifier:
                          keyType: "CNPJ"
                          keyValue: "42.887.120/0001-00"
                        holder:
                          type: "BUSINESS"
                          relationship: "SELF"
                          legalName: "Lumx S.A"
                          taxId: "42.887.120/0001-00"
                          incorporationDate: "2020-01-01"
                          email: "hello@lumx.io"
                          address:
                            line1: "Rua Voluntarios da Patria 89"
                            city: "Rio de Janeiro"
                            state: "RJ"
                            postalCode: "22270-000"
                            country: "BRA"
                          verification:
                            status: "APPROVED"
                            level: "BASIC"
                        createdAt: "2025-10-16T12:30:00.000Z"
                        updatedAt: "2025-10-16T12:30:00.000Z"
                    pagination:
                      size: 25
                      total: 1
                      hasNextPage: false
                      hasPreviousPage: false
                      nextCursor: null
                      previousCursor: null
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array containing all destinations.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Destination's unique identifier.
                          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
                        customerId:
                          type: string
                          format: uuid
                          description: Customer's unique identifier.
                          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                        name:
                          type: string
                          description: Destination's display name.
                        type:
                          type: string
                          description: Destination's type.
                          enum: ["EXTERNAL"]
                        rail:
                          type: string
                          description: Destination's payment rail.
                          enum:
                            ["PIX", "SWIFT", "SEPA", "ACH", "FEDWIRE", "SPEI", "FPS"]
                        currency:
                          type: string
                          description: Destination's currency.
                        identifier:
                          type: object
                          description: Destination's identifier.
                        bank:
                          type: object
                          description: Bank information.
                        holder:
                          type: object
                          description: Destination's holder.
                          properties:
                            type:
                              type: string
                              enum: [BUSINESS, INDIVIDUAL]
                              description: Holder's type.
                            relationship:
                              type: string
                              enum:
                                [
                                  "SELF",
                                  "HOLDING_COMPANY",
                                  "SUBSIDIARY_COMPANY",
                                  "BRANCH_OFFICE",
                                  "BUSINESS_PARTNER",
                                  "SUPPLIER",
                                  "CUSTOMER",
                                  "CREDITOR",
                                  "DEBTOR",
                                  "FRANCHISEE",
                                  "FRIEND",
                                  "RELATIVE",
                                  "EMPLOYEE",
                                ]
                              description: Holder's relationship to customer.
                            legalName:
                              type: string
                              description: Holder's legal name. Required for business holders.
                            name:
                              type: string
                              description: Holder's full name. Required for individual holders.
                            taxId:
                              type: string
                              description: Holder's tax ID.
                            incorporationDate:
                              type: string
                              format: date
                              description: Holder's incorporation date.
                            birthDate:
                              type: string
                              format: date
                              description: Holder's birth date.
                            email:
                              type: string
                              format: email
                              description: Holder's email address.
                            address:
                              $ref: "#/components/schemas/DestinationAddress"
                            verification:
                              type: object
                              description: Holder verification information.
                              properties:
                                status:
                                  type: string
                                  description: Verification status.
                                level:
                                  type: string
                                  description: Verification level.
                        intermediary:
                          type: object
                          description: Intermediary bank information.
                        createdAt:
                          type: string
                          format: date-time
                          description: Creation date and time (UTC).
                        updatedAt:
                          type: string
                          format: date-time
                          description: Last update date and time (UTC).
                  pagination:
                    type: object
                    description: Pagination metadata for the response.
                    properties:
                      size:
                        type: integer
                        description: Number of items per page.
                        example: 25
                      total:
                        type: integer
                        description: Total number of items available.
                        example: 1
                      hasNextPage:
                        type: boolean
                        description: Whether more items are available after this page.
                        example: false
                      hasPreviousPage:
                        type: boolean
                        description: Whether items are available before this page.
                        example: false
                      nextCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the next page. `null` when `hasNextPage` is false.
                        example: null
                      previousCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the previous page. `null` when `hasPreviousPage` is false.
                        example: null
      security:
        - apiKey: []
    post:
      tags:
        - Destinations
      summary: Create a destination
      description: This endpoint creates a destination.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              PIX:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx Brazil Operations Account"
                  rail: "PIX"
                  currency: "BRL"
                  identifier:
                    keyType: "CNPJ"
                    keyValue: "42.887.120/0001-00"
                  holder:
                    type: "BUSINESS"
                    relationship: "SELF"
                    legalName: "Lumx S.A"
                    taxId: "42.887.120/0001-00"
                    incorporationDate: "2020-01-01"
                    email: "hello@lumx.io"
                    address:
                      line1: "Rua Voluntarios da Patria 89"
                      city: "Rio de Janeiro"
                      state: "RJ"
                      postalCode: "22270-000"
                      country: "BRA"
              SWIFT:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx Cayman Holdings Account"
                  rail: "SWIFT"
                  currency: "USD"
                  identifier:
                    iban: "KY12BUTT00001234567890123456"
                    bic: "BUTTKYKY"
                  bank:
                    name: "Butterfield Bank (Cayman) Limited"
                    address:
                      line1: "65 Market Street"
                      city: "George Town"
                      state: "Grand Cayman"
                      postalCode: "KY1-1107"
                      country: "CYM"
                  holder:
                    type: "BUSINESS"
                    relationship: "HOLDING_COMPANY"
                    legalName: "Lumx Cayman Ltd."
                    taxId: "123456-7"
                    incorporationDate: "2019-01-15"
                    email: "holding@lumx.ky"
                    address:
                      line1: "Grand Pavilion, Hibiscus Way"
                      city: "George Town"
                      state: "Grand Cayman"
                      postalCode: "KY1-1205"
                      country: "CYM"
                  intermediary:
                    name: "JP Morgan Chase Bank N.A."
                    currency: "USD"
                    bic: "CHASUS33"
              SEPA:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx France Subsidiary Account"
                  rail: "SEPA"
                  currency: "EUR"
                  identifier:
                    iban: "FR1420041010050500013M02606"
                    bic: "BNPAFRPP"
                  bank:
                    name: "BNP Paribas"
                    address:
                      country: "FRA"
                  holder:
                    type: "BUSINESS"
                    relationship: "SUBSIDIARY_COMPANY"
                    legalName: "Lumx SAS"
                    taxId: "98765432100015"
                    incorporationDate: "2021-06-10"
                    email: "france@lumx.eu"
                    address:
                      country: "FRA"
              ACH:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx US Operations Account"
                  rail: "ACH"
                  currency: "USD"
                  identifier:
                    type: "CHECKING"
                    accountNumber: "123456789012"
                    routingNumber: "021000021"
                  bank:
                    name: "JPMorgan Chase Bank"
                    address:
                      line1: "383 Madison Avenue"
                      city: "New York"
                      state: "NY"
                      postalCode: "10179"
                      country: "USA"
                  holder:
                    type: "BUSINESS"
                    relationship: "SUBSIDIARY_COMPANY"
                    legalName: "Lumx US Inc."
                    taxId: "12-3456789"
                    incorporationDate: "2020-03-15"
                    email: "us@lumx.io"
                    address:
                      line1: "100 Wall Street"
                      city: "New York"
                      state: "NY"
                      postalCode: "10005"
                      country: "USA"
              FEDWIRE:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx US Wire Account"
                  rail: "FEDWIRE"
                  currency: "USD"
                  identifier:
                    type: "CHECKING"
                    accountNumber: "123456789012"
                    routingNumber: "021000021"
                  bank:
                    name: "JPMorgan Chase Bank"
                    address:
                      line1: "383 Madison Avenue"
                      city: "New York"
                      state: "NY"
                      postalCode: "10179"
                      country: "USA"
                  holder:
                    type: "BUSINESS"
                    relationship: "SUBSIDIARY_COMPANY"
                    legalName: "Lumx US Inc."
                    taxId: "12-3456789"
                    incorporationDate: "2020-03-15"
                    email: "us@lumx.io"
                    address:
                      line1: "100 Wall Street"
                      city: "New York"
                      state: "NY"
                      postalCode: "10005"
                      country: "USA"
              SPEI:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx Mexico Operations Account"
                  rail: "SPEI"
                  currency: "MXN"
                  identifier:
                    keyType: "CLABE"
                    keyValue: "012180001234567897"
                  holder:
                    type: "BUSINESS"
                    relationship: "SELF"
                    legalName: "Lumx S.A"
                    taxId: "42.887.120/0001-00"
                    incorporationDate: "2020-01-01"
                    email: "hello@lumx.io"
                    address:
                      line1: "Calzada de Tlalpan 3465, Colonia Santa Úrsula Coapa"
                      city: "Mexico City"
                      state: "CDMX"
                      postalCode: "04650"
                      country: "MEX"
              FPS:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  name: "Lumx UK Operations Account"
                  rail: "FPS"
                  currency: "GBP"
                  identifier:
                    sortCode: "040509"
                    accountNumber: "00125977"
                  bank:
                    name: "Mock Bank"
                    address:
                      country: "GBR"
                  holder:
                    type: "BUSINESS"
                    relationship: "SELF"
                    legalName: "Lumx UK Ltd"
                    taxId: "12345678"
                    incorporationDate: "2020-01-01"
                    email: "hello@lumx.io"
                    address:
                      country: "GBR"
            schema:
              oneOf:
                - type: object
                  title: PIX
                  allOf:
                    - $ref: "#/components/schemas/DestinationPixRequest"
                - type: object
                  title: SWIFT
                  allOf:
                    - $ref: "#/components/schemas/DestinationSwiftRequest"
                - type: object
                  title: SEPA
                  allOf:
                    - $ref: "#/components/schemas/DestinationSepaRequest"
                - type: object
                  title: ACH
                  allOf:
                    - $ref: "#/components/schemas/DestinationAchRequest"
                - type: object
                  title: FEDWIRE
                  allOf:
                    - $ref: "#/components/schemas/DestinationFedwireRequest"
                - type: object
                  title: SPEI
                  allOf:
                    - $ref: "#/components/schemas/DestinationSpeiRequest"
                - type: object
                  title: FPS
                  allOf:
                    - $ref: "#/components/schemas/DestinationFpsRequest"
      responses:
        "201":
          description: Destination successfully created.
          content:
            application/json:
              examples:
                PIX:
                  value:
                    id: "a72f5359-ffef-6913-d1da-8g58d491g406"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx Brazil Operations Account"
                    type: "EXTERNAL"
                    rail: "PIX"
                    currency: "BRL"
                    identifier:
                      keyType: "CNPJ"
                      keyValue: "42.887.120/0001-00"
                    holder:
                      type: "BUSINESS"
                      relationship: "SELF"
                      legalName: "Lumx S.A"
                      taxId: "42.887.120/0001-00"
                      incorporationDate: "2020-01-01"
                      email: "hello@lumx.io"
                      address:
                        line1: "Rua Voluntarios da Patria 89"
                        city: "Rio de Janeiro"
                        state: "RJ"
                        postalCode: "22270-000"
                        country: "BRA"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    createdAt: "2025-10-16T15:30:22.456Z"
                    updatedAt: "2025-10-16T15:30:22.456Z"
                SWIFT:
                  value:
                    id: "e80d3137-eddd-4791-b9b8-6e36b289f284"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx Cayman Holdings Account"
                    type: "EXTERNAL"
                    rail: "SWIFT"
                    currency: "USD"
                    identifier:
                      iban: "KY12BUTT00001234567890123456"
                      bic: "BUTTKYKY"
                    bank:
                      name: "Butterfield Bank (Cayman) Limited"
                      address:
                        line1: "65 Market Street"
                        city: "George Town"
                        state: "Grand Cayman"
                        postalCode: "KY1-1107"
                        country: "CYM"
                    holder:
                      type: "BUSINESS"
                      relationship: "HOLDING_COMPANY"
                      legalName: "Lumx Cayman Ltd."
                      taxId: "123456-7"
                      incorporationDate: "2019-01-15"
                      email: "holding@lumx.ky"
                      address:
                        line1: "Grand Pavilion, Hibiscus Way"
                        city: "George Town"
                        state: "Grand Cayman"
                        postalCode: "KY1-1205"
                        country: "CYM"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    intermediary:
                      name: "JP Morgan Chase Bank N.A."
                      currency: "USD"
                      bic: "CHASUS33"
                    createdAt: "2025-10-16T13:45:10.243Z"
                    updatedAt: "2025-10-16T13:45:10.243Z"
                SEPA:
                  value:
                    id: "f91e4248-feed-5802-c0c9-7f47c390f395"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx France Subsidiary Account"
                    type: "EXTERNAL"
                    rail: "SEPA"
                    currency: "EUR"
                    identifier:
                      iban: "FR1420041010050500013M02606"
                      bic: "BNPAFRPP"
                    bank:
                      name: "BNP Paribas"
                      address:
                        line1: "16 Boulevard des Italiens"
                        city: "Paris"
                        state: "IDF"
                        postalCode: "75009"
                        country: "FRA"
                    holder:
                      type: "BUSINESS"
                      relationship: "SUBSIDIARY_COMPANY"
                      legalName: "Lumx SAS"
                      taxId: "98765432100015"
                      incorporationDate: "2021-06-10"
                      email: "france@lumx.eu"
                      address:
                        line1: "45 Avenue Montaigne"
                        city: "Paris"
                        state: "IDF"
                        postalCode: "75008"
                        country: "FRA"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    createdAt: "2025-10-16T14:20:35.187Z"
                    updatedAt: "2025-10-16T14:20:35.187Z"
                ACH:
                  value:
                    id: "b82e4359-feed-6913-d1da-9h69e502h517"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx US Operations Account"
                    type: "EXTERNAL"
                    rail: "ACH"
                    currency: "USD"
                    identifier:
                      type: "CHECKING"
                      accountNumber: "123456789012"
                      routingNumber: "021000021"
                    bank:
                      name: "JPMorgan Chase Bank"
                      address:
                        line1: "383 Madison Avenue"
                        city: "New York"
                        state: "NY"
                        postalCode: "10179"
                        country: "USA"
                    holder:
                      type: "BUSINESS"
                      relationship: "SUBSIDIARY_COMPANY"
                      legalName: "Lumx US Inc."
                      taxId: "12-3456789"
                      incorporationDate: "2020-03-15"
                      email: "us@lumx.io"
                      address:
                        line1: "100 Wall Street"
                        city: "New York"
                        state: "NY"
                        postalCode: "10005"
                        country: "USA"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    createdAt: "2025-10-16T16:30:45.123Z"
                    updatedAt: "2025-10-16T16:30:45.123Z"
                FEDWIRE:
                  value:
                    id: "c93f5460-gffe-7024-e2eb-0i70f613i628"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx US Wire Account"
                    type: "EXTERNAL"
                    rail: "FEDWIRE"
                    currency: "USD"
                    identifier:
                      type: "CHECKING"
                      accountNumber: "123456789012"
                      routingNumber: "021000021"
                    bank:
                      name: "JPMorgan Chase Bank"
                      address:
                        line1: "383 Madison Avenue"
                        city: "New York"
                        state: "NY"
                        postalCode: "10179"
                        country: "USA"
                    holder:
                      type: "BUSINESS"
                      relationship: "SUBSIDIARY_COMPANY"
                      legalName: "Lumx US Inc."
                      taxId: "12-3456789"
                      incorporationDate: "2020-03-15"
                      email: "us@lumx.io"
                      address:
                        line1: "100 Wall Street"
                        city: "New York"
                        state: "NY"
                        postalCode: "10005"
                        country: "USA"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    createdAt: "2025-10-16T17:45:00.789Z"
                    updatedAt: "2025-10-16T17:45:00.789Z"
                SPEI:
                  value:
                    id: "a72f5359-ffef-6913-d1da-8g58d491g406"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx Mexico Operations Account"
                    type: "EXTERNAL"
                    rail: "SPEI"
                    currency: "MXN"
                    identifier:
                      clabe: "012180001234567897"
                    holder:
                      type: "BUSINESS"
                      relationship: "SELF"
                      legalName: "Lumx S.A"
                      taxId: "LMX123456789"
                      incorporationDate: "2020-01-01"
                      email: "hello@lumx.io"
                      address:
                        line1: "Calzada de Tlalpan 3465"
                        city: "Ciudad de México"
                        state: "CDMX"
                        postalCode: "04650"
                        country: "MEX"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    createdAt: "2025-10-16T15:30:22.456Z"
                    updatedAt: "2025-10-16T15:30:22.456Z"
                FPS:
                  value:
                    id: "b83g6460-ggfg-7024-e2eb-9h69e502h517"
                    customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                    name: "Lumx UK Operations Account"
                    type: "EXTERNAL"
                    rail: "FPS"
                    currency: "GBP"
                    identifier:
                      sortCode: "040509"
                      accountNumber: "00125977"
                    bank:
                      name: "Mock Bank"
                      address:
                        line1: "1 Bank Street"
                        city: "London"
                        state: "LND"
                        postalCode: "EC1A 1BB"
                        country: "GBR"
                    holder:
                      type: "BUSINESS"
                      relationship: "SELF"
                      legalName: "Lumx UK Ltd"
                      taxId: "12345678"
                      incorporationDate: "2020-01-01"
                      email: "hello@lumx.io"
                      address:
                        line1: "Street A"
                        city: "London"
                        state: "LND"
                        postalCode: "SW1A 1AA"
                        country: "GBR"
                      verification:
                        status: "UNDER_VERIFICATION"
                        level: "BASIC"
                    createdAt: "2025-10-16T15:30:22.456Z"
                    updatedAt: "2025-10-16T15:30:22.456Z"
              schema:
                oneOf:
                  - type: object
                    title: PIX
                    description: Destination's rail is PIX.
                    allOf:
                      - $ref: "#/components/schemas/DestinationPixResponse"
                  - type: object
                    title: SWIFT
                    description: Destination's rail is SWIFT.
                    allOf:
                      - $ref: "#/components/schemas/DestinationSwiftResponse"
                  - type: object
                    title: SEPA
                    description: Destination's rail is SEPA.
                    allOf:
                      - $ref: "#/components/schemas/DestinationSepaResponse"
                  - type: object
                    title: ACH
                    description: Destination's rail is ACH.
                    allOf:
                      - $ref: "#/components/schemas/DestinationAchResponse"
                  - type: object
                    title: FEDWIRE
                    description: Destination's rail is FEDWIRE.
                    allOf:
                      - $ref: "#/components/schemas/DestinationFedwireResponse"
                  - type: object
                    title: SPEI
                    description: Destination's rail is SPEI.
                    allOf:
                      - $ref: "#/components/schemas/DestinationSpeiResponse"
                  - type: object
                    title: FPS
                    description: Destination's rail is FPS.
                    allOf:
                      - $ref: "#/components/schemas/DestinationFpsResponse"
      security:
        - apiKey: []
  "/destinations/{id}":
    get:
      tags:
        - Destinations
      summary: Read a destination
      description: This endpoint reads a destination.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Destination's unique identifier.
      responses:
        "200":
          description: Destination successfully retrieved.
          content:
            application/json:
              examples:
                PIX:
                  $ref: "#/components/examples/DestinationPixExample"
                SWIFT:
                  $ref: "#/components/examples/DestinationSwiftExample"
                SEPA:
                  $ref: "#/components/examples/DestinationSepaExample"
                ACH:
                  $ref: "#/components/examples/DestinationAchExample"
                FEDWIRE:
                  $ref: "#/components/examples/DestinationFedwireExample"
                SPEI:
                  $ref: "#/components/examples/DestinationSpeiExample"
                FPS:
                  $ref: "#/components/examples/DestinationFpsExample"
              schema:
                oneOf:
                  - type: object
                    title: PIX
                    description: Destination's rail is PIX.
                    allOf:
                      - $ref: "#/components/schemas/DestinationPixResponse"
                  - type: object
                    title: SWIFT
                    description: Destination's rail is SWIFT.
                    allOf:
                      - $ref: "#/components/schemas/DestinationSwiftResponse"
                  - type: object
                    title: SEPA
                    description: Destination's rail is SEPA.
                    allOf:
                      - $ref: "#/components/schemas/DestinationSepaResponse"
                  - type: object
                    title: ACH
                    description: Destination's rail is ACH.
                    allOf:
                      - $ref: "#/components/schemas/DestinationAchResponse"
                  - type: object
                    title: FEDWIRE
                    description: Destination's rail is FEDWIRE.
                    allOf:
                      - $ref: "#/components/schemas/DestinationFedwireResponse"
                  - type: object
                    title: SPEI
                    description: Destination's rail is SPEI.
                    allOf:
                      - $ref: "#/components/schemas/DestinationSpeiResponse"
                  - type: object
                    title: FPS
                    description: Destination's rail is FPS.
                    allOf:
                      - $ref: "#/components/schemas/DestinationFpsResponse"
      security:
        - apiKey: []
  /exchange-rates:
    post:
      tags:
        - Exchange Rates
      summary: Get an exchange rate
      description: This endpoint returns an exchange rate quote between two currencies.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExchangeRateRequest"
      responses:
        "200":
          description: Resource successfully retrieved.
          content:
            application/json:
              examples:
                Floating:
                  $ref: "#/components/examples/ExchangeRateFloatingExample"
                Locked:
                  $ref: "#/components/examples/ExchangeRateLockedExample"
              schema:
                $ref: "#/components/schemas/ExchangeRateResponse"
      security:
        - apiKey: []
  /transactions:
    get:
      tags:
        - Transactions
      summary: Read all transactions
      description: This endpoint reads all transactions.
      parameters:
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
          description: Number of transactions to return per page.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Cursor for pagination. Use the nextCursor or previousCursor from the previous response to get the next or previous page.
        - name: customerId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Filter transactions by customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      responses:
        "200":
          description: Resources successfully retrieved.
          content:
            application/json:
              examples:
                PIX:
                  value:
                    data:
                      - id: "123e4567-e89b-12d3-a456-426614174000"
                        type: "ON_RAMP"
                        request:
                          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                          rail: "PIX"
                          sourceCurrency: "BRL"
                          sourceAmount: "10000.00"
                          targetCurrency: "USDC"
                          purpose: "PERSONAL_ACCOUNT"
                        state:
                          status: "AWAITING_FUNDS"
                          payment:
                            rail: "PIX"
                            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
                        metadata: {}
                        createdAt: "2024-03-20T15:30:00Z"
                        updatedAt: "2024-03-20T15:30:05Z"
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array containing all transactions.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Transaction's unique identifier.
                          example: "123e4567-e89b-12d3-a456-426614174000"
                        type:
                          type: string
                          description: Transaction's type.
                          enum: ["ON_RAMP", "OFF_RAMP", "TRANSFER"]
                        request:
                          type: object
                          description: Transaction's request.
                        state:
                          type: object
                          description: Transaction's current state.
                        createdAt:
                          type: string
                          format: date-time
                          description: Creation date and time (UTC).
                        updatedAt:
                          type: string
                          format: date-time
                          description: Last update date and time (UTC).
      security:
        - apiKey: []
  "/transactions/{id}":
    get:
      tags:
        - Transactions
      summary: Read a transaction
      description: This endpoint reads a transaction.
      parameters:
        - name: id
          in: path
          description: Transaction's unique identifier.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Transaction successfully retrieved.
          content:
            application/json:
              examples:
                "On-ramp - Awaiting funds":
                  $ref: "#/components/examples/TransactionOnRampAwaitingFundsExample"
                "On-ramp - Success":
                  $ref: "#/components/examples/TransactionOnRampSuccessExample"
                "Off-ramp - Transferring stablecoin":
                  $ref: "#/components/examples/TransactionOffRampTransferringStablecoinExample"
                "Off-ramp - Success":
                  $ref: "#/components/examples/TransactionOffRampSuccessExample"
                "Transfer - Transferring stablecoin":
                  $ref: "#/components/examples/TransactionTransferProcessingExample"
                "Transfer - Success":
                  $ref: "#/components/examples/TransactionTransferSuccessExample"
              schema:
                oneOf:
                  - type: object
                    title: On-ramp
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Transaction's unique identifier.
                        example: "123e4567-e89b-12d3-a456-426614174000"
                      customerId:
                        type: string
                        format: uuid
                        description: Customer's unique identifier.
                        example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                      type:
                        type: string
                        description: Transaction's type.
                        enum: ["ON_RAMP"]
                      request:
                        type: object
                        description: Transaction's request.
                      state:
                        type: object
                        description: Transaction's current state.
                        properties:
                          status:
                            type: string
                            description: State status.
                            enum:
                              [
                                "AWAITING_FUNDS",
                                "TRANSFERRING_FIAT",
                                "TRADING",
                                "TRANSFERRING_STABLECOIN",
                                "SUCCESS",
                                "FAILED",
                              ]
                          payment:
                            type: object
                            description: State payment information.
                          receipt:
                            type: object
                            description: State receipt information.
                          error:
                            type: object
                            description: State error information.
                      createdAt:
                        type: string
                        format: date-time
                        description: Creation date and time (UTC).
                      updatedAt:
                        type: string
                        format: date-time
                        description: Last update date and time (UTC).
                  - type: object
                    title: Off-ramp
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Transaction's unique identifier.
                        example: "123e4567-e89b-12d3-a456-426614174000"
                      customerId:
                        type: string
                        format: uuid
                        description: Customer's unique identifier.
                        example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                      type:
                        type: string
                        description: Transaction's type.
                        enum: ["OFF_RAMP"]
                      request:
                        type: object
                        description: Transaction's request.
                      state:
                        type: object
                        description: Transaction's current state.
                        properties:
                          status:
                            type: string
                            description: State status.
                            enum:
                              [
                                "TRANSFERRING_STABLECOIN",
                                "TRADING",
                                "TRANSFERRING_FIAT",
                                "SUCCESS",
                                "FAILED",
                              ]
                          receipt:
                            type: object
                            description: State receipt information.
                          error:
                            type: object
                            description: State error information.
                      createdAt:
                        type: string
                        format: date-time
                        description: Creation date and time (UTC).
                      updatedAt:
                        type: string
                        format: date-time
                        description: Last update date and time (UTC).
                  - type: object
                    title: Transfer
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Transaction's unique identifier.
                        example: "123e4567-e89b-12d3-a456-426614174000"
                      customerId:
                        type: string
                        format: uuid
                        description: Customer's unique identifier.
                        example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                      type:
                        type: string
                        description: Transaction's type.
                        enum: ["TRANSFER"]
                      request:
                        type: object
                        description: Transaction's request.
                      state:
                        type: object
                        description: Transaction's current state.
                        properties:
                          status:
                            type: string
                            description: State status.
                            enum:
                              ["TRANSFERRING_STABLECOIN", "SUCCESS", "FAILED"]
                          receipt:
                            type: object
                            description: State receipt information.
                          error:
                            type: object
                            description: State error information.
                      createdAt:
                        type: string
                        format: date-time
                        description: Creation date and time (UTC).
                      updatedAt:
                        type: string
                        format: date-time
                        description: Last update date and time (UTC).
      security:
        - apiKey: []
  /transactions/on-ramp:
    post:
      tags:
        - Transactions
      summary: On-ramp
      description: This endpoint converts fiat to stablecoin.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              Floating - PIX:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "PIX"
                  sourceCurrency: "BRL"
                  sourceAmount: "10000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Floating - SWIFT:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "SWIFT"
                  sourceCurrency: "USD"
                  sourceAmount: "10000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Floating - SEPA:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "SEPA"
                  sourceCurrency: "EUR"
                  sourceAmount: "10000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Floating - ACH:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "ACH"
                  sourceCurrency: "USD"
                  sourceAmount: "10000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Floating - FEDWIRE:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "FEDWIRE"
                  sourceCurrency: "USD"
                  sourceAmount: "10000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Floating - SPEI:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "SPEI"
                  sourceCurrency: "MXN"
                  sourceAmount: "10000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Floating - FPS:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  rail: "FPS"
                  sourceCurrency: "GBP"
                  sourceAmount: "1000.00"
                  targetCurrency: "USDC"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - PIX:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174000"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - SWIFT:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174001"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - SEPA:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174002"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - ACH:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174003"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - FEDWIRE:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174004"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - SPEI:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174004"
                  purpose: "PERSONAL_ACCOUNT"
              Locked - FPS:
                value:
                  customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174005"
                  purpose: "PERSONAL_ACCOUNT"
            schema:
              $ref: "#/components/schemas/TransactionOnRampRequest"
      responses:
        "202":
          description: On-ramp transaction started successfully.
          content:
            application/json:
              examples:
                Floating - PIX:
                  $ref: "#/components/examples/TransactionOnRampFloatingPixExample"
                Floating - SWIFT:
                  $ref: "#/components/examples/TransactionOnRampFloatingSwiftExample"
                Floating - SEPA:
                  $ref: "#/components/examples/TransactionOnRampFloatingSepaExample"
                Floating - ACH:
                  $ref: "#/components/examples/TransactionOnRampFloatingAchExample"
                Floating - FEDWIRE:
                  $ref: "#/components/examples/TransactionOnRampFloatingFedwireExample"
                Floating - SPEI:
                  $ref: "#/components/examples/TransactionOnRampFloatingSpeiExample"
                Floating - FPS:
                  $ref: "#/components/examples/TransactionOnRampFloatingFpsExample"
                Locked - PIX:
                  $ref: "#/components/examples/TransactionOnRampLockedPixExample"
                Locked - SWIFT:
                  $ref: "#/components/examples/TransactionOnRampLockedSwiftExample"
                Locked - SEPA:
                  $ref: "#/components/examples/TransactionOnRampLockedSepaExample"
                Locked - ACH:
                  $ref: "#/components/examples/TransactionOnRampLockedAchExample"
                Locked - FEDWIRE:
                  $ref: "#/components/examples/TransactionOnRampLockedFedwireExample"
                Locked - SPEI:
                  $ref: "#/components/examples/TransactionOnRampLockedSpeiExample"
                Locked - FPS:
                  $ref: "#/components/examples/TransactionOnRampLockedFpsExample"
              schema:
                $ref: "#/components/schemas/TransactionOnRampResponse"
      security:
        - apiKey: []
  /transactions/off-ramp:
    post:
      tags:
        - Transactions
      summary: Off-ramp
      description: This endpoint converts stablecoins to fiat.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            examples:
              Floating:
                value:
                  destinationId: "e80d3137-eddd-4791-b9b8-6e36b289f284"
                  sourceCurrency: "USDC"
                  sourceAmount: "1000.00"
                  purpose: "PERSONAL_ACCOUNT"
              Locked:
                value:
                  destinationId: "e80d3137-eddd-4791-b9b8-6e36b289f284"
                  exchangeRateId: "123e4567-e89b-12d3-a456-426614174000"
                  purpose: "PERSONAL_ACCOUNT"
            schema:
              $ref: "#/components/schemas/TransactionOffRampRequest"
      responses:
        "202":
          description: Off-ramp transaction started successfully.
          content:
            application/json:
              examples:
                Floating:
                  $ref: "#/components/examples/TransactionOffRampFloatingExample"
                Locked:
                  $ref: "#/components/examples/TransactionOffRampLockedExample"
              schema:
                $ref: "#/components/schemas/TransactionOffRampResponse"
      security:
        - apiKey: []
  /transactions/transfer:
    post:
      tags:
        - Transactions
      summary: Transfer
      description: This endpoint starts a transfer of funds between customers or external wallets.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TransactionTransferRequest"
      responses:
        "202":
          description: Transfer transaction started successfully.
          content:
            application/json:
              example:
                id: "123e4567-e89b-12d3-a456-426614174004"
                customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                type: "TRANSFER"
                request:
                  currency: "USDC"
                  from: "123e4567-e89b-12d3-a456-426614174001"
                  to: "123e4567-e89b-12d3-a456-426614174002"
                  amount: "1000.000000"
                state:
                  status: "PENDING"
                metadata: {}
              schema:
                allOf:
                  - $ref: "#/components/schemas/TransactionTransferResponse"
                  - $ref: "#/components/schemas/TransactionTimestamps"
      security:
        - apiKey: []
  /partner-fees:
    get:
      tags:
        - Partner Fees
      summary: Read all partner fees
      description: This endpoint reads all partner fees.
      responses:
        "200":
          description: Partner fees successfully retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array containing all partner fees.
                    items:
                      $ref: "#/components/schemas/PartnerFeeResponse"
      security:
        - apiKey: []
    post:
      tags:
        - Partner Fees
      summary: Create a partner fee
      description: This endpoint creates a partner fee.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PartnerFeeRequest"
      responses:
        "201":
          description: Partner fee successfully created.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PartnerFeeResponse"
      security:
        - apiKey: []
  /partner-fees/{id}:
    get:
      tags:
        - Partner Fees
      summary: Read a partner fee
      description: This endpoint reads a partner fee.
      parameters:
        - name: id
          in: path
          description: Partner fee's unique identifier.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Partner fee successfully retrieved.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PartnerFeeResponse"
      security:
        - apiKey: []
  /autoconversion-rules:
    get:
      tags:
        - Autoconversion Rules
      summary: Read all autoconversion rules
      description: This endpoint reads all autoconversion rules, newest first.
      parameters:
        - name: customerId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Filter rules by customer.
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 25
          description: Number of rules to return per page.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Cursor for pagination. Use the nextCursor from the previous response to get the next page.
      responses:
        "200":
          description: Resources successfully retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    description: An array containing all autoconversion rules.
                    type: array
                    items:
                      $ref: "#/components/schemas/AutoconversionRuleListItem"
                  pagination:
                    type: object
                    description: Pagination metadata for the response.
                    properties:
                      size:
                        type: integer
                        description: Number of items per page.
                        example: 25
                      total:
                        type: integer
                        description: Total number of items available.
                        example: 1
                      hasNextPage:
                        type: boolean
                        description: Whether more items are available after this page.
                        example: false
                      nextCursor:
                        type: string
                        format: uuid
                        nullable: true
                        description: Cursor to fetch the next page. `null` when `hasNextPage` is false.
                        example: null
      security:
        - apiKey: []
    post:
      tags:
        - Autoconversion Rules
      summary: Create an autoconversion rule
      description: This endpoint creates an autoconversion rule. Every fiat deposit matched by the rule is automatically converted to the target asset and delivered on-chain.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AutoconversionRuleRequest"
      responses:
        "201":
          description: Resource successfully created.
          content:
            application/json:
              examples:
                BRL:
                  value:
                    id: "c7f64332-5d53-4685-8aa9-48a5348c18c2"
                    accountId: "44dd9734-176a-4ced-924f-103f8d50ea5e"
                    partnerFeeId: "123e4567-e89b-12d3-a456-426614174004"
                    status: "ACTIVE"
                    provider: "STARKBANK"
                    sourceCurrency: "BRL"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "PIX"
                        brCode: "00020126...5204"
                        depositIdentifier: "IIDCDYjYUTbKouEUOyvxZ3xnU"
                    createdAt: "2026-07-08T23:18:58.574Z"
                MXN:
                  value:
                    id: "9b2f11a6-7c3e-4f28-b1d4-2e6a90c5d7f1"
                    accountId: "16cb802f-8521-41ad-ab6e-dc40f43c0ad3"
                    partnerFeeId: "123e4567-e89b-12d3-a456-426614174004"
                    status: "ACTIVE"
                    provider: "ONE_MONEY"
                    sourceCurrency: "MXN"
                    targetCurrency: "USDT"
                    blockchain: "TRON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "SPEI"
                        clabe: "646180157000000004"
                        reference: "IIDCDYjYUTbKouEUOyvxZ3xnU"
                    createdAt: "2026-07-08T23:18:58.574Z"
                USD:
                  value:
                    id: "5d1a3c9e-8b42-47f0-9c6d-3f2e8a1b7c44"
                    accountId: "a3f8d21c-6e94-4b7a-8c15-9d0e2f4b6a83"
                    partnerFeeId: null
                    status: "ACTIVE"
                    provider: "ONE_MONEY"
                    sourceCurrency: "USD"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "ACH"
                        accountNumber: "8312946570"
                        routingNumber: "026009593"
                        bankName: "Column N.A."
                      - rail: "FEDWIRE"
                        accountNumber: "8312946570"
                        routingNumber: "026009593"
                        bankName: "Column N.A."
                      - rail: "SWIFT"
                        accountNumber: "8312946570"
                        bic: "CLNOUS66"
                        bankName: "Column N.A."
                    createdAt: "2026-07-08T23:18:58.574Z"
                EUR:
                  value:
                    id: "1b5d4f60-7a2c-4e88-9d31-0c4f5a6b7c8d"
                    accountId: "9f1c2b7e-3d4a-4c5e-8f10-2a6b7c8d9e01"
                    partnerFeeId: null
                    status: "ACTIVE"
                    provider: "OPENPAYD"
                    sourceCurrency: "EUR"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "SEPA"
                        iban: "GB29NWBK60161331926819"
                        bic: "OPCVGB2LXXX"
                    createdAt: "2026-09-29T14:03:11.482Z"
                GBP:
                  value:
                    id: "2c6e5a71-8b3d-4f99-ae42-1d5f6b7c8d9e"
                    accountId: "4e8a1d20-9c7b-4f33-b512-7d0e9f1a2b3c"
                    partnerFeeId: null
                    status: "ACTIVE"
                    provider: "OPENPAYD"
                    sourceCurrency: "GBP"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "FPS"
                        sortCode: "040075"
                        accountNumber: "82624944"
                    createdAt: "2026-09-29T14:07:52.104Z"
              schema:
                $ref: "#/components/schemas/AutoconversionRuleDetailResponse"
      security:
        - apiKey: []
  /autoconversion-rules/{id}:
    get:
      tags:
        - Autoconversion Rules
      summary: Read an autoconversion rule
      description: This endpoint reads an autoconversion rule, including its deposit details.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Autoconversion rule's unique identifier.
      responses:
        "200":
          description: Resource successfully retrieved.
          content:
            application/json:
              examples:
                BRL:
                  value:
                    id: "c7f64332-5d53-4685-8aa9-48a5348c18c2"
                    accountId: "44dd9734-176a-4ced-924f-103f8d50ea5e"
                    partnerFeeId: "123e4567-e89b-12d3-a456-426614174004"
                    status: "ACTIVE"
                    provider: "STARKBANK"
                    sourceCurrency: "BRL"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "PIX"
                        brCode: "00020126...5204"
                        depositIdentifier: "IIDCDYjYUTbKouEUOyvxZ3xnU"
                    createdAt: "2026-07-08T23:18:58.574Z"
                MXN:
                  value:
                    id: "9b2f11a6-7c3e-4f28-b1d4-2e6a90c5d7f1"
                    accountId: "16cb802f-8521-41ad-ab6e-dc40f43c0ad3"
                    partnerFeeId: "123e4567-e89b-12d3-a456-426614174004"
                    status: "ACTIVE"
                    provider: "ONE_MONEY"
                    sourceCurrency: "MXN"
                    targetCurrency: "USDT"
                    blockchain: "TRON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "SPEI"
                        clabe: "646180157000000004"
                        reference: "IIDCDYjYUTbKouEUOyvxZ3xnU"
                    createdAt: "2026-07-08T23:18:58.574Z"
                USD:
                  value:
                    id: "5d1a3c9e-8b42-47f0-9c6d-3f2e8a1b7c44"
                    accountId: "a3f8d21c-6e94-4b7a-8c15-9d0e2f4b6a83"
                    partnerFeeId: null
                    status: "ACTIVE"
                    provider: "ONE_MONEY"
                    sourceCurrency: "USD"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "ACH"
                        accountNumber: "8312946570"
                        routingNumber: "026009593"
                        bankName: "Column N.A."
                      - rail: "FEDWIRE"
                        accountNumber: "8312946570"
                        routingNumber: "026009593"
                        bankName: "Column N.A."
                      - rail: "SWIFT"
                        accountNumber: "8312946570"
                        bic: "CLNOUS66"
                        bankName: "Column N.A."
                    createdAt: "2026-07-08T23:18:58.574Z"
                EUR:
                  value:
                    id: "1b5d4f60-7a2c-4e88-9d31-0c4f5a6b7c8d"
                    accountId: "9f1c2b7e-3d4a-4c5e-8f10-2a6b7c8d9e01"
                    partnerFeeId: null
                    status: "ACTIVE"
                    provider: "OPENPAYD"
                    sourceCurrency: "EUR"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "SEPA"
                        iban: "GB29NWBK60161331926819"
                        bic: "OPCVGB2LXXX"
                    createdAt: "2026-09-29T14:03:11.482Z"
                GBP:
                  value:
                    id: "2c6e5a71-8b3d-4f99-ae42-1d5f6b7c8d9e"
                    accountId: "4e8a1d20-9c7b-4f33-b512-7d0e9f1a2b3c"
                    partnerFeeId: null
                    status: "ACTIVE"
                    provider: "OPENPAYD"
                    sourceCurrency: "GBP"
                    targetCurrency: "USDC"
                    blockchain: "POLYGON"
                    purpose: "INVESTMENT"
                    sourceDepositInfo:
                      - rail: "FPS"
                        sortCode: "040075"
                        accountNumber: "82624944"
                    createdAt: "2026-09-29T14:07:52.104Z"
              schema:
                $ref: "#/components/schemas/AutoconversionRuleDetailResponse"
      security:
        - apiKey: []
  /autoconversion-rules/simulate-deposit:
    post:
      tags:
        - Autoconversion Rules
      summary: Simulate a deposit
      description: This endpoint simulates a deposit to test autoconversion rules end-to-end. Sandbox only — returns 404 in production.
      parameters:
        - $ref: "#/components/parameters/IdempotencyKey"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AutoconversionRuleSimulateDepositRequest"
      responses:
        "201":
          description: Deposit successfully simulated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  matchedRule:
                    type: boolean
                    description: Whether the simulated deposit matched an active rule.
                    example: true
      security:
        - apiKey: []
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: "Optional UUID v4 idempotency key. If you resend the same key with a different request body, the API returns a 409 error. Cached responses include the header `X-Idempotency-Cached: true`. Keys expire after 24 hours."
  examples:
    CustomerRequestBusinessExample:
      value:
        type: "BUSINESS"
        legalName: "Lumx S.A"
        taxId: "42.887.120/0001-00"
        incorporationDate: "2020-01-01"
        country: "BRA"
        email: "hello@lumx.io"
        accounts: ["BRL", "USD", "EUR", "MXN", "GBP"]
    CustomerRequestIndividualExample:
      value:
        type: "INDIVIDUAL"
        name: "William Default"
        taxId: "123.456.789-00"
        birthDate: "1990-01-01"
        country: "BRA"
        email: "william.default@example.com"
        accounts: ["BRL"]
    CustomerIndividualArrayExample:
      value:
        data:
          - id: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type: "INDIVIDUAL"
            name: "William Default"
            taxId: "123.456.789-00"
            birthDate: "1990-01-01"
            country: "BRA"
            email: "william.default@example.com"
            verification:
              status: "NOT_STARTED"
              level: "STANDARD"
            metadata: {}
            createdAt: "2021-01-01T00:00:00Z"
            updatedAt: "2021-01-01T00:00:00Z"
    CustomerBusinessArrayExample:
      value:
        data:
          - id: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type: "BUSINESS"
            legalName: "Lumx S.A"
            taxId: "42.887.120/0001-00"
            incorporationDate: "2020-01-01"
            country: "BRA"
            email: "hello@lumx.io"
            verification:
              status: "NOT_STARTED"
              level: "STANDARD"
            metadata: {}
            createdAt: "2021-01-01T00:00:00Z"
            updatedAt: "2021-01-01T00:00:00Z"
        pagination:
          size: 25
          total: 1
          hasNextPage: false
          hasPreviousPage: false
          nextCursor: null
          previousCursor: null
    CustomerIndividualExample:
      value:
        id: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "INDIVIDUAL"
        name: "William Default"
        taxId: "123.456.789-00"
        birthDate: "1990-01-01"
        country: "BRA"
        email: "william.default@example.com"
        verification:
          status: "NOT_STARTED"
          level: "STANDARD"
          link: "https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44"
        additionalInformation:
          type: "INDIVIDUAL"
          professionalSituation: "EMPLOYEE"
          professionalOccupation: "Software Engineer"
          monthlyIncomeInUSD: "8000"
          monthlyVolumeInUSD: "5000"
          transactionVolumeInUSD: "1000"
          sourceOfFunds: "SALARY_EMPLOYMENT_INCOME"
          transactionCounterparties: ["SELF", "FAMILY"]
        transactionLimits:
          onramp:
            single:
              max: "1000.00"
            daily:
              max: "5000.00"
              used: "1200.00"
              remaining: "3800.00"
            monthly:
              max: "20000.00"
              used: "1200.00"
              remaining: "18800.00"
          offramp:
            single:
              max: "1000.00"
            daily:
              max: "5000.00"
              used: "0.00"
              remaining: "5000.00"
            monthly:
              max: "20000.00"
              used: "0.00"
              remaining: "20000.00"
          transfer:
            single:
              max: "1000.00"
            daily:
              max: "5000.00"
              used: "0.00"
              remaining: "5000.00"
            monthly:
              max: "20000.00"
              used: "0.00"
              remaining: "20000.00"
        metadata: {}
        createdAt: "2021-01-01T00:00:00Z"
        updatedAt: "2021-01-01T00:00:00Z"
    CustomerBusinessExample:
      value:
        id: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "BUSINESS"
        legalName: "Lumx S.A"
        taxId: "42.887.120/0001-00"
        incorporationDate: "2020-01-01"
        country: "BRA"
        email: "hello@lumx.io"
        verification:
          status: "NOT_STARTED"
          level: "STANDARD"
          link: "https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44"
        additionalInformation:
          type: "BUSINESS"
          businessActivity: "PAYMENT_INSTITUTION"
          servicesProvided: "We provide blockchain-based payment infrastructure for B2B cross-border transactions."
          monthlyRevenueInUSD: "250000"
          monthlyTransactionVolumeInUSD: "1M_TO_5M"
          sourceOfFunds: "OPERATING_SERVICE_REVENUE"
          transactionCounterparties: ["CUSTOMERS", "SUPPLIERS_VENDORS"]
          isRegulatedActivity: true
          regulatedActivityDetails: "Licensed payment institution"
        accounts:
          - id: "d06d342c-629a-4d99-a26f-34e8ea528403"
            currency: "EUR"
          - id: "af04e979-360a-428a-84e6-cbd8ffc4942b"
            currency: "USD"
          - id: "8412f484-32fe-418f-80d1-99eb1b3ba7f3"
            currency: "BRL"
        transactionLimits:
          onramp:
            single:
              max: "1000.00"
            daily:
              max: "5000.00"
              used: "1200.00"
              remaining: "3800.00"
            monthly:
              max: "20000.00"
              used: "1200.00"
              remaining: "18800.00"
          offramp:
            single:
              max: "1000.00"
            daily:
              max: "5000.00"
              used: "0.00"
              remaining: "5000.00"
            monthly:
              max: "20000.00"
              used: "0.00"
              remaining: "20000.00"
          transfer:
            single:
              max: "1000.00"
            daily:
              max: "5000.00"
              used: "0.00"
              remaining: "5000.00"
            monthly:
              max: "20000.00"
              used: "0.00"
              remaining: "20000.00"
        metadata: {}
        createdAt: "2021-01-01T00:00:00Z"
        updatedAt: "2021-01-01T00:00:00Z"
    CustomerCreateIndividualExample:
      value:
        id: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "INDIVIDUAL"
        name: "William Default"
        taxId: "123.456.789-00"
        birthDate: "1990-01-01"
        country: "BRA"
        email: "william.default@example.com"
        verification:
          status: "NOT_STARTED"
          level: "STANDARD"
        requirements:
          - name: "ID_CARD"
            status: "NOT_SENT"
          - name: "PASSPORT"
            status: "NOT_SENT"
          - name: "DRIVERS_LICENSE"
            status: "NOT_SENT"
          - name: "BANK_STATEMENT"
            status: "NOT_SENT"
          - name: "INCOME_TAX_RETURN"
            status: "NOT_SENT"
          - name: "DELIVERY_RECEIPT"
            status: "NOT_SENT"
          - name: "SELFIE"
            status: "NOT_SENT"
          - name: "ADDITIONAL_INFORMATION"
            status: "NOT_SENT"
          - name: "TERMS_OF_SERVICE"
            status: "NOT_SENT"
        accounts:
          - id: "8412f484-32fe-418f-80d1-99eb1b3ba7f3"
            currency: "BRL"
        metadata: {}
        createdAt: "2021-01-01T00:00:00Z"
        updatedAt: "2021-01-01T00:00:00Z"
    CustomerCreateBusinessExample:
      value:
        id: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "BUSINESS"
        legalName: "Lumx S.A"
        taxId: "42.887.120/0001-00"
        incorporationDate: "2020-01-01"
        country: "BRA"
        email: "hello@lumx.io"
        verification:
          status: "NOT_STARTED"
          level: "STANDARD"
        requirements:
          - name: "INCORPORATION_ARTICLES"
            status: "NOT_SENT"
          - name: "POWER_OF_ATTORNEY"
            status: "NOT_SENT"
          - name: "DIRECTORS_REGISTRY"
            status: "NOT_SENT"
          - name: "SHAREHOLDER_REGISTRY"
            status: "NOT_SENT"
          - name: "REGULATED_ACTIVITY_DOCUMENT"
            status: "NOT_SENT"
          - name: "SIGNED_BALANCE_SHEET"
            status: "NOT_SENT"
          - name: "SIGNED_CORPORATE_STRUCTURE_CHART"
            status: "NOT_SENT"
          - name: "SIGNED_INCOME_STATEMENT"
            status: "NOT_SENT"
          - name: "ADDITIONAL_INFORMATION"
            status: "NOT_SENT"
          - name: "TERMS_OF_SERVICE"
            status: "NOT_SENT"
        accounts:
          - id: "8412f484-32fe-418f-80d1-99eb1b3ba7f3"
            currency: "BRL"
          - id: "af04e979-360a-428a-84e6-cbd8ffc4942b"
            currency: "USD"
          - id: "d06d342c-629a-4d99-a26f-34e8ea528403"
            currency: "EUR"
          - id: "16cb802f-8521-41ad-ab6e-dc40f43c0ad3"
            currency: "MXN"
        metadata: {}
        createdAt: "2021-01-01T00:00:00Z"
        updatedAt: "2021-01-01T00:00:00Z"
    CustomerVerificationIndividualResponse:
      value:
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        status: "NOT_STARTED"
        level: "STANDARD"
        statusReason:
          rejectLabels:
            - screenshot
            - unsatisfactory_photos
          documents:
            - type: "PASSPORT"
              status: "TEMPORARY_REJECTION"
              comment: "Screenshots aren't accepted. Please upload a live photo of the document."
              rejectLabels:
                - screenshot
                - unsatisfactory_photos
            - type: "UTILITY_BILL"
              status: "TEMPORARY_REJECTION"
    CustomerVerificationBusinessResponse:
      value:
        customerId: "c85cb5ef-0574-4450-806d-195944f1e309"
        status: "NOT_STARTED"
        level: "STANDARD"
        statusReason:
          rejectLabels:
            - screenshot
            - unsatisfactory_photos
          rejectSubLabels:
            - proofOfAddress_listOfDocs
            - badPhoto
          documents:
            - type: "PASSPORT"
              status: "TEMPORARY_REJECTION"
              comment: "Screenshots aren't accepted. Please upload a live photo of the document."
              rejectLabels:
                - screenshot
                - unsatisfactory_photos
    CustomerUpdateIndividualExample:
      summary: Individual (current questionnaire)
      value:
        type: "INDIVIDUAL"
        phone: "+5511999999999"
        firstName: "Maria"
        middleName: "Silva"
        lastName: "Souza"
        address:
          country: "BRA"
          line1: "Rua A, 100"
          city: "São Paulo"
          state: "SP"
          postalCode: "01000-000"
        professionalSituation: "BUSINESS_OWNER"
        professionalOccupation: "Engineer"
        monthlyIncomeInUSD: "8000"
        monthlyVolumeInUSD: "5000"
        transactionVolumeInUSD: "1000"
        sourceOfFunds: "SALARY_EMPLOYMENT_INCOME"
        transactionCounterparties: ["SELF", "FAMILY"]
    CustomerUpdateBusinessExample:
      summary: Business (current questionnaire)
      value:
        type: "BUSINESS"
        phone: "+5511999999999"
        address:
          country: "BRA"
          line1: "Av. B, 200"
          city: "São Paulo"
          state: "SP"
          postalCode: "01000-000"
        website: "https://acme.com"
        businessActivity: "PAYMENT_INSTITUTION"
        servicesProvided: "Cross-border payments for small businesses"
        monthlyRevenueInUSD: "250000"
        monthlyTransactionVolumeInUSD: "1M_TO_5M"
        sourceOfFunds: "OPERATING_SERVICE_REVENUE"
        transactionCounterparties: ["CUSTOMERS", "SUPPLIERS_VENDORS"]
        isRegulatedActivity: true
        regulatedActivityDetails: "Licensed payment institution"
    CustomerUpdateIndividualPreviousExample:
      summary: Individual (previous questionnaire, customers created before October 28, 2026)
      value:
        type: "INDIVIDUAL"
        phone: "+5511999999999"
        firstName: "William"
        middleName: ""
        lastName: "Default"
        address:
          country: "BRA"
          line1: "Rua das Flores, 123"
          city: "São Paulo"
          state: "SP"
          postalCode: "01234-567"
        monthlyVolumeInUSD: "5000"
        transactionVolumeInUSD: "1000"
        jurisdictions: ["BRA", "USA"]
        involvedActivities: ["NONE"]
        transactionCounterparties: ["SELF", "MERCHANTS_SUPPLIERS"]
        professionalSituation: "EMPLOYEE"
        professionalOccupation: "Software Engineer"
        sourceOfFunds: "EMPLOYMENT"
    CustomerUpdateBusinessPreviousExample:
      summary: Business (previous questionnaire, customers created before October 28, 2026)
      value:
        type: "BUSINESS"
        phone: "+5511999999999"
        address:
          country: "BRA"
          line1: "Av. Paulista, 1000, Sala 101"
          city: "São Paulo"
          state: "SP"
          postalCode: "01310-100"
        monthlyVolumeInUSD: "50000.00"
        transactionVolumeInUSD: "10000.00"
        jurisdictions: ["BRA", "USA", "EU"]
        involvedActivities: ["NONE"]
        transactionCounterparties: ["SELF"]
        companyType: "BLOCKCHAIN_SOFTWARE_COMPANY"
        annualRevenue: "1000000.00"
        monthlyTransactionVolume: "100000.00"
        complianceAndAML: "We have a dedicated compliance team and use third-party AML screening tools."
        isRegulatedActivity: false
        regulatedActivityDetails: ""
        website: "https://example.com"
        sourceOfFunds: "COMPANY"
        servicesProvided: "We provide blockchain-based payment infrastructure for B2B cross-border transactions."
    AssociatedPartyUBOExample:
      value:
        type: "INDIVIDUAL"
        roles: ["UBO"]
        name: "Maria Santos"
        birthDate: "1985-07-10"
        email: "maria.santos@example.com"
        taxId: "987.654.321-00"
        address:
          country: "BRA"
          line1: "Rua das Acácias, 456"
          city: "Rio de Janeiro"
          state: "RJ"
          postalCode: "20000-000"
        ownershipPercentage: 40
        monthlyIncomeInUSD: "12000"
    AssociatedPartyShareholderIndividualExample:
      value:
        type: "INDIVIDUAL"
        roles: ["SHAREHOLDER"]
        name: "Pedro Oliveira"
        birthDate: "1978-12-05"
        email: "pedro.oliveira@example.com"
        taxId: "111.222.333-44"
        address:
          country: "BRA"
          line1: "Av. Brasil, 789"
          city: "São Paulo"
          state: "SP"
          postalCode: "01000-000"
        ownershipPercentage: 35
        monthlyIncomeInUSD: "9000"
    AssociatedPartyShareholderBusinessExample:
      value:
        type: "BUSINESS"
        roles: ["SHAREHOLDER"]
        legalName: "Investment Fund ABC"
        incorporationDate: "2010-05-20"
        email: "contact@fundabc.com"
        taxId: "99.988.877/0001-66"
        address:
          country: "USA"
          line1: "123 Wall Street"
          city: "New York"
          state: "NY"
          postalCode: "10005"
        ownershipPercentage: 25
    AssociatedPartyRepresentativeExample:
      value:
        type: "INDIVIDUAL"
        roles: ["REPRESENTATIVE"]
        name: "Carlos Mendes"
        birthDate: "1990-03-15"
        email: "carlos.mendes@example.com"
        taxId: "555.666.777-88"
        address:
          country: "BRA"
          line1: "Rua Principal, 100"
          city: "Belo Horizonte"
          state: "MG"
          postalCode: "30000-000"
        monthlyIncomeInUSD: "7000"
    AssociatedPartyUBOResponseExample:
      value:
        id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        type: "INDIVIDUAL"
        roles: ["UBO"]
        name: "Maria Santos"
        taxId: "987.654.321-00"
        birthDate: "1985-07-10"
        email: "maria.santos@example.com"
        address:
          country: "BRA"
          line1: "Rua das Acácias, 456"
          city: "Rio de Janeiro"
          state: "RJ"
          postalCode: "20000-000"
        ownershipPercentage: 40
        monthlyIncomeInUSD: "12000"
        verification:
          status: "NOT_STARTED"
          level: "STANDARD"
          link: "https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44"
        createdAt: "2024-01-15T11:00:00Z"
        updatedAt: "2024-01-15T11:00:00Z"
    ExchangeRateFloatingExample:
      value:
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "FLOATING"
        rail: "PIX"
        sourceCurrency: "BRL"
        sourceAmount: "59255.50"
        targetCurrency: "USDC"
        baseTargetAmount: "10000.000000"
        baseExchangeRate: "5.9255"
        fees:
          lumx:
            rate: "10"
            flatAmount: "1"
            totalAmount: "11"
            currency: "USDC"
          partner:
            rate: "10"
            flatAmount: "1"
            totalAmount: "11"
            currency: "USDC"
        finalTargetAmount: "9978.000000"
        finalExchangeRate: "5.9386"
    ExchangeRateLockedExample:
      value:
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        id: "123e4567-e89b-12d3-a456-426614174001"
        type: "LOCKED"
        rail: "PIX"
        sourceCurrency: "BRL"
        sourceAmount: "59255.50"
        targetCurrency: "USDC"
        baseTargetAmount: "10000.000000"
        baseExchangeRate: "5.9255"
        fees:
          lumx:
            rate: "10"
            flatAmount: "1"
            totalAmount: "11"
            currency: "USDC"
          partner:
            rate: "10"
            flatAmount: "1"
            totalAmount: "11"
            currency: "USDC"
        finalTargetAmount: "9978.000000"
        finalExchangeRate: "5.9386"
        expiresAt: "2026-05-05T00:00:00Z"
    TransactionOnRampFloatingPixExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174000"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFloatingSwiftExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174001"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "SWIFT"
          sourceCurrency: "USD"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "SWIFT"
            identifier:
              iban: "KY12BUTT00001234567890123456"
              bic: "BUTTKYKY"
            holder:
              type: "BUSINESS"
              name: "Lumx Cayman Ltd."
              address:
                line1: "Grand Pavilion, Hibiscus Way"
                city: "George Town"
                state: "Grand Cayman"
                country: "CYM"
                postalCode: "KY1-1205"
            bank:
              name: "Butterfield Bank (Cayman) Limited"
              address:
                line1: "65 Market Street"
                city: "George Town"
                state: "Grand Cayman"
                country: "CYM"
                postalCode: "KY1-1107"
            memo: "INV-2024-10-1547"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFloatingSepaExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174002"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "SEPA"
          sourceCurrency: "EUR"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "SEPA"
            identifier:
              iban: "FR1420041010050500013M02606"
              bic: "BNPAFRPP"
            holder:
              name: "Lumx SAS"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedPixExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174000"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedSwiftExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174004"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174001"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "SWIFT"
            identifier:
              iban: "KY12BUTT00001234567890123456"
              bic: "BUTTKYKY"
            holder:
              type: "BUSINESS"
              name: "Lumx Cayman Ltd."
              address:
                line1: "Grand Pavilion, Hibiscus Way"
                city: "George Town"
                state: "Grand Cayman"
                country: "CYM"
                postalCode: "KY1-1205"
            bank:
              name: "Butterfield Bank (Cayman) Limited"
              address:
                line1: "65 Market Street"
                city: "George Town"
                state: "Grand Cayman"
                country: "CYM"
                postalCode: "KY1-1107"
            memo: "INV-2024-10-1547"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedSepaExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174005"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174002"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "SEPA"
            identifier:
              iban: "FR1420041010050500013M02606"
              bic: "BNPAFRPP"
            holder:
              name: "Lumx SAS"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFloatingAchExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174006"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "ACH"
          sourceCurrency: "USD"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "ACH"
            identifier:
              type: "CHECKING"
              accountNumber: "123456789012"
              routingNumber: "021000021"
            holder:
              type: "BUSINESS"
              name: "Lumx US Inc."
              address:
                line1: "100 Wall Street"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10005"
            bank:
              name: "JPMorgan Chase Bank"
              address:
                line1: "383 Madison Avenue"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10179"
            memo: "INV-2024-10-1548"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFloatingFedwireExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174007"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "FEDWIRE"
          sourceCurrency: "USD"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "FEDWIRE"
            identifier:
              type: "CHECKING"
              accountNumber: "123456789012"
              routingNumber: "021000021"
            holder:
              type: "BUSINESS"
              name: "Lumx US Inc."
              address:
                line1: "100 Wall Street"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10005"
            bank:
              name: "JPMorgan Chase Bank"
              address:
                line1: "383 Madison Avenue"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10179"
            memo: "INV-2024-10-1549"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedAchExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174008"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174003"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "ACH"
            identifier:
              type: "CHECKING"
              accountNumber: "123456789012"
              routingNumber: "021000021"
            holder:
              type: "BUSINESS"
              name: "Lumx US Inc."
              address:
                line1: "100 Wall Street"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10005"
            bank:
              name: "JPMorgan Chase Bank"
              address:
                line1: "383 Madison Avenue"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10179"
            memo: "INV-2024-10-1550"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedFedwireExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174009"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174004"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "FEDWIRE"
            identifier:
              type: "CHECKING"
              accountNumber: "123456789012"
              routingNumber: "021000021"
            holder:
              type: "BUSINESS"
              name: "Lumx US Inc."
              address:
                line1: "100 Wall Street"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10005"
            bank:
              name: "JPMorgan Chase Bank"
              address:
                line1: "383 Madison Avenue"
                city: "New York"
                state: "NY"
                country: "USA"
                postalCode: "10179"
            memo: "INV-2024-10-1551"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFloatingSpeiExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174010"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "SPEI"
          sourceCurrency: "MXN"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "SPEI"
            identifier:
              clabe: "012180001234567897"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedSpeiExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174011"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174005"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "SPEI"
            identifier:
              clabe: "012180001234567897"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFloatingFpsExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174012"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "FPS"
          sourceCurrency: "GBP"
          sourceAmount: "1000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "FPS"
            identifier:
              sortCode: "040509"
              accountNumber: "00126007"
            holder:
              name: "Lumx UK Ltd"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampLockedFpsExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174013"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174005"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "FPS"
            identifier:
              sortCode: "040509"
              accountNumber: "00126007"
            holder:
              name: "Lumx UK Ltd"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampAwaitingFundsExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174000"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "AWAITING_FUNDS"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampTransferringFiatExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174000"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
        state:
          status: "TRANSFERRING_FIAT"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampTradingExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174000"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
        state:
          status: "TRADING"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampTransferringStablecoinExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174000"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
        state:
          status: "TRANSFERRING_STABLECOIN"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampSuccessExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174002"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "SUCCESS"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
          receipt:
            rate: "6.0066"
            sourceAmount: "1000.000000"
            targetAmount: "5925.55"
            sourceCurrency: "USDC"
            targetCurrency: "BRL"
            fees:
              currency: "USDC"
              lumx:
                rate: "10.000000"
                flatAmount: "1"
                totalAmount: "0.003255"
                currency: "USDC"
              partner:
                id: "123e4567-e89b-12d3-a456-426614174003"
                rate: "0.000000"
                flatAmount: "0"
                totalAmount: "0.003255"
                currency: "USDC"
              transactionHash: "0x1234567890123456789012345678901234567890"
              blockExplorerUrl: "https://amoy.polygonscan.com/tx/0x1234567890123456789012345678901234567890"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOnRampFailedExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174002"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "ON_RAMP"
        request:
          customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          rail: "PIX"
          sourceCurrency: "BRL"
          sourceAmount: "10000.00"
          targetCurrency: "USDC"
        state:
          status: "FAILED"
          payment:
            rail: "PIX"
            brCode: "00020126580014br.gov.bcb.PIX0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5915Test Merchant6009Sao Paulo62070503***63041234"
          error: {}
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampFloatingExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          destinationId: "e80d3137-eddd-4791-b9b8-6e36b289f284"
          sourceCurrency: "USDC"
          sourceAmount: "1000.00"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "TRANSFERRING_STABLECOIN"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampLockedExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174004"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          destinationId: "e80d3137-eddd-4791-b9b8-6e36b289f284"
          exchangeRateId: "123e4567-e89b-12d3-a456-426614174000"
          purpose: "PERSONAL_ACCOUNT"
        state:
          status: "TRANSFERRING_STABLECOIN"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampTransferringStablecoinExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          $ref: "#/components/examples/TransactionOffRampRequestExample/value"
        state:
          status: "TRANSFERRING_STABLECOIN"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampTradingExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          $ref: "#/components/examples/TransactionOffRampRequestExample/value"
        state:
          status: "TRADING"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampTransferringFiatExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          $ref: "#/components/examples/TransactionOffRampRequestExample/value"
        state:
          status: "TRANSFERRING_FIAT"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampSuccessExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          $ref: "#/components/examples/TransactionOffRampRequestExample/value"
        state:
          status: "SUCCESS"
          receipt:
            rate: "6.0066"
            sourceAmount: "1000.00"
            targetAmount: "5925.55"
            sourceCurrency: "USDC"
            targetCurrency: "BRL"
            fees:
              currency: "USDC"
              lumx:
                rate: "10.000000"
                flatAmount: "1"
                totalAmount: "0.003255"
                currency: "USDC"
              partner:
                id: "123e4567-e89b-12d3-a456-426614174003"
                rate: "0.000000"
                flatAmount: "1"
                totalAmount: "1.000000"
                currency: "USDC"
              transactionHash: "0x1234567890123456789012345678901234567890"
              blockExplorerUrl: "https://amoy.polygonscan.com/tx/0x1234567890123456789012345678901234567890"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionOffRampFailedExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174003"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFF_RAMP"
        request:
          $ref: "#/components/examples/TransactionOffRampRequestExample/value"
        state:
          status: "FAILED"
          error: {}
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionTransferProcessingExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174004"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "TRANSFER"
        request:
          currency: "USDC"
          from: "123e4567-e89b-12d3-a456-426614174001"
          to: "123e4567-e89b-12d3-a456-426614174002"
          amount: "1000.000000"
        state:
          status: "TRANSFERRING_STABLECOIN"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionTransferSuccessExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174004"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "TRANSFER"
        request:
          currency: "USDC"
          from: "123e4567-e89b-12d3-a456-426614174001"
          to: "123e4567-e89b-12d3-a456-426614174002"
          amount: "1000.000000"
        state:
          status: "SUCCESS"
          receipt:
            transactionHash: "0x1234567890123456789012345678901234567890"
            blockExplorerUrl: "https://amoy.polygonscan.com/tx/0x1234567890123456789012345678901234567890"
        metadata: {}
        createdAt: "2024-03-20T15:30:00Z"
        updatedAt: "2024-03-20T15:30:05Z"
    TransactionTransferFailedExample:
      value:
        id: "123e4567-e89b-12d3-a456-426614174004"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "TRANSFER"
        request:
          currency: "USDC"
          from: "123e4567-e89b-12d3-a456-426614174001"
          to: "123e4567-e89b-12d3-a456-426614174002"
          amount: "1000.000000"
        state:
          status: "FAILED"
          error: {}
        metadata: {}
    TransactionOnRampRequestExample:
      value:
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        rail: "PIX"
        sourceCurrency: "BRL"
        sourceAmount: "10000.00"
        targetCurrency: "USDC"
    TransactionOffRampRequestExample:
      value:
        destinationId: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        sourceCurrency: "USDC"
        sourceAmount: "1000.00"
        purpose: "PERSONAL_ACCOUNT"
    DestinationSwiftExample:
      value:
        id: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx Cayman Holdings Account"
        type: "EXTERNAL"
        rail: "SWIFT"
        currency: "USD"
        identifier:
          iban: "KY12BUTT00001234567890123456"
          bic: "BUTTKYKY"
        bank:
          name: "Butterfield Bank (Cayman) Limited"
          address:
            line1: "65 Market Street"
            city: "George Town"
            state: "Grand Cayman"
            postalCode: "KY1-1107"
            country: "CYM"
        holder:
          type: "BUSINESS"
          relationship: "HOLDING_COMPANY"
          legalName: "Lumx Cayman Ltd."
          taxId: "123456-7"
          incorporationDate: "2019-01-15"
          email: "holding@lumx.ky"
          address:
            line1: "Grand Pavilion, Hibiscus Way"
            city: "George Town"
            state: "Grand Cayman"
            postalCode: "KY1-1205"
            country: "CYM"
          verification:
            status: "APPROVED"
            level: "BASIC"
        intermediary:
          name: "JP Morgan Chase Bank N.A."
          currency: "USD"
          bic: "CHASUS33"
        createdAt: "2025-10-16T13:45:10.243Z"
        updatedAt: "2025-10-16T13:45:10.243Z"
    DestinationSepaExample:
      value:
        id: "f91e4248-feed-5802-c0c9-7f47c390f395"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx France Subsidiary Account"
        type: "EXTERNAL"
        rail: "SEPA"
        currency: "EUR"
        identifier:
          iban: "FR1420041010050500013M02606"
          bic: "BNPAFRPP"
        bank:
          name: "BNP Paribas"
          address:
            line1: "16 Boulevard des Italiens"
            city: "Paris"
            state: "IDF"
            postalCode: "75009"
            country: "FRA"
        holder:
          type: "BUSINESS"
          relationship: "SUBSIDIARY_COMPANY"
          legalName: "Lumx SAS"
          taxId: "98765432100015"
          incorporationDate: "2021-06-10"
          email: "france@lumx.eu"
          address:
            line1: "45 Avenue Montaigne"
            city: "Paris"
            state: "IDF"
            postalCode: "75008"
            country: "FRA"
          verification:
            status: "APPROVED"
            level: "BASIC"
        createdAt: "2025-10-16T14:20:35.187Z"
        updatedAt: "2025-10-16T14:20:35.187Z"
    DestinationPixExample:
      value:
        id: "a72f5359-ffef-6913-d1da-8g58d491g406"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx Brazil Operations Account"
        type: "EXTERNAL"
        rail: "PIX"
        currency: "BRL"
        identifier:
          keyType: "CNPJ"
          keyValue: "42.887.120/0001-00"
        holder:
          type: "BUSINESS"
          relationship: "SELF"
          legalName: "Lumx S.A"
          taxId: "42.887.120/0001-00"
          incorporationDate: "2020-01-01"
          email: "hello@lumx.io"
          address:
            line1: "Rua Voluntarios da Patria 89"
            city: "Rio de Janeiro"
            state: "RJ"
            postalCode: "22270-000"
            country: "BRA"
          verification:
            status: "APPROVED"
            level: "BASIC"
        createdAt: "2025-10-16T15:30:22.456Z"
        updatedAt: "2025-10-16T15:30:22.456Z"
    DestinationAchExample:
      value:
        id: "b82e4359-feed-6913-d1da-9h69e502h517"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx US Operations Account"
        type: "EXTERNAL"
        rail: "ACH"
        currency: "USD"
        identifier:
          type: "CHECKING"
          accountNumber: "123456789012"
          routingNumber: "021000021"
        bank:
          name: "JPMorgan Chase Bank"
          address:
            line1: "383 Madison Avenue"
            city: "New York"
            state: "NY"
            postalCode: "10179"
            country: "USA"
        holder:
          type: "BUSINESS"
          relationship: "SUBSIDIARY_COMPANY"
          legalName: "Lumx US Inc."
          taxId: "12-3456789"
          incorporationDate: "2020-03-15"
          email: "us@lumx.io"
          address:
            line1: "100 Wall Street"
            city: "New York"
            state: "NY"
            postalCode: "10005"
            country: "USA"
          verification:
            status: "APPROVED"
            level: "BASIC"
        createdAt: "2025-10-16T16:30:45.123Z"
        updatedAt: "2025-10-16T16:30:45.123Z"
    DestinationFedwireExample:
      value:
        id: "c93f5460-gffe-7024-e2eb-0i70f613i628"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx US Wire Account"
        type: "EXTERNAL"
        rail: "FEDWIRE"
        currency: "USD"
        identifier:
          type: "CHECKING"
          accountNumber: "123456789012"
          routingNumber: "021000021"
        bank:
          name: "JPMorgan Chase Bank"
          address:
            line1: "383 Madison Avenue"
            city: "New York"
            state: "NY"
            postalCode: "10179"
            country: "USA"
        holder:
          type: "BUSINESS"
          relationship: "SUBSIDIARY_COMPANY"
          legalName: "Lumx US Inc."
          taxId: "12-3456789"
          incorporationDate: "2020-03-15"
          email: "us@lumx.io"
          address:
            line1: "100 Wall Street"
            city: "New York"
            state: "NY"
            postalCode: "10005"
            country: "USA"
          verification:
            status: "APPROVED"
            level: "BASIC"
        createdAt: "2025-10-16T17:45:00.789Z"
        updatedAt: "2025-10-16T17:45:00.789Z"
    DestinationSpeiExample:
      value:
        id: "d04g6571-hggf-8135-f3fc-1j81g724j739"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx Mexico Operations Account"
        type: "EXTERNAL"
        rail: "SPEI"
        currency: "MXN"
        identifier:
          clabe: "012180001234567897"
        bank:
          name: "BBVA Bancomer"
          address:
            line1: "Paseo de la Reforma 510"
            city: "Mexico City"
            state: "CDMX"
            postalCode: "06600"
            country: "MEX"
        holder:
          type: "BUSINESS"
          relationship: "SUBSIDIARY_COMPANY"
          legalName: "Lumx Mexico S.A. de C.V."
          taxId: "LMX123456789"
          incorporationDate: "2021-06-20"
          email: "mx@lumx.io"
          address:
            line1: "Avenida Insurgentes Sur 1458"
            city: "Mexico City"
            state: "CDMX"
            postalCode: "03900"
            country: "MEX"
          verification:
            status: "APPROVED"
            level: "BASIC"
        createdAt: "2025-10-16T18:20:30.456Z"
        updatedAt: "2025-10-16T18:20:30.456Z"
    DestinationFpsExample:
      value:
        id: "b83g6460-ggfg-7024-e2eb-9h69e502h517"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name: "Lumx UK Operations Account"
        type: "EXTERNAL"
        rail: "FPS"
        currency: "GBP"
        identifier:
          sortCode: "040509"
          accountNumber: "00125977"
        bank:
          name: "Mock Bank"
          address:
            line1: "1 Bank Street"
            city: "London"
            state: "LND"
            postalCode: "EC1A 1BB"
            country: "GBR"
        holder:
          type: "BUSINESS"
          relationship: "SUBSIDIARY_COMPANY"
          legalName: "Lumx UK Ltd"
          taxId: "12345678"
          incorporationDate: "2021-06-20"
          email: "uk@lumx.io"
          address:
            line1: "Street A"
            city: "London"
            state: "LND"
            postalCode: "SW1A 1AA"
            country: "GBR"
          verification:
            status: "APPROVED"
            level: "BASIC"
        createdAt: "2025-10-16T18:20:30.456Z"
        updatedAt: "2025-10-16T18:20:30.456Z"
    AccountArrayExample:
      value:
        data:
          - id: "d06d342c-629a-4d99-a26f-34e8ea528403"
            customerId: "768d6aac-627e-44e8-aabd-d51d10f59c02"
            status: "ACTIVE"
            currency: "EUR"
            createdAt: "2026-05-13T20:49:13.236Z"
            updatedAt: "2026-05-14T13:55:15.418Z"
          - id: "af04e979-360a-428a-84e6-cbd8ffc4942b"
            customerId: "768d6aac-627e-44e8-aabd-d51d10f59c02"
            status: "ACTIVE"
            currency: "USD"
            createdAt: "2026-05-13T20:49:13.236Z"
            updatedAt: "2026-05-14T13:55:15.567Z"
          - id: "8412f484-32fe-418f-80d1-99eb1b3ba7f3"
            customerId: "768d6aac-627e-44e8-aabd-d51d10f59c02"
            status: "ACTIVE"
            currency: "BRL"
            createdAt: "2026-05-13T20:49:13.236Z"
            updatedAt: "2026-05-14T13:55:15.418Z"
        pagination:
          size: 25
          total: 3
          hasNextPage: false
          hasPreviousPage: false
          nextCursor: null
          previousCursor: null
    LimitRequestCreateExample:
      value:
        type: "OFFRAMP"
        requested:
          single: "15000.00"
          daily: "60000.00"
          monthly: "120000.00"
        supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
    LimitRequestResponseExample:
      value:
        id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFFRAMP"
        requested:
          single: "15000.00"
          daily: "60000.00"
          monthly: "120000.00"
        approved:
          single: null
          daily: null
          monthly: null
        supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
        supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
        status: "IN_REVIEW"
        reviewComment: null
        createdAt: "2024-01-15T10:00:00Z"
        updatedAt: "2024-01-15T10:00:00Z"
    LimitRequestArrayExample:
      value:
        data:
          - id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
            customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type: "OFFRAMP"
            requested:
              single: "15000.00"
              daily: "60000.00"
              monthly: "120000.00"
            approved:
              single: null
              daily: null
              monthly: null
            supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
            supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
            status: "IN_REVIEW"
            reviewComment: null
            createdAt: "2024-01-15T10:00:00Z"
            updatedAt: "2024-01-15T10:00:00Z"
        pagination:
          size: 20
          total: 1
          hasNextPage: false
    LimitRequestApprovedExample:
      value:
        id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFFRAMP"
        requested:
          single: "15000.00"
          daily: "60000.00"
          monthly: "120000.00"
        approved:
          single: "15000.00"
          daily: "60000.00"
          monthly: "120000.00"
        supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
        supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
        status: "APPROVED"
        reviewComment: null
        createdAt: "2024-01-15T10:00:00Z"
        updatedAt: "2024-01-15T10:05:00Z"
    LimitRequestPartiallyApprovedExample:
      value:
        id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFFRAMP"
        requested:
          single: "15000.00"
          daily: "60000.00"
          monthly: "120000.00"
        approved:
          single: "7500.00"
          daily: "30000.00"
          monthly: "60000.00"
        supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
        supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
        status: "PARTIALLY_APPROVED"
        reviewComment: "Limits approved at 50% of the requested amounts based on the supporting document."
        createdAt: "2024-01-15T10:00:00Z"
        updatedAt: "2024-01-15T10:05:00Z"
    LimitRequestRejectedExample:
      value:
        id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
        customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type: "OFFRAMP"
        requested:
          single: "15000.00"
          daily: "60000.00"
          monthly: "120000.00"
        approved:
          single: null
          daily: null
          monthly: null
        supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
        supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
        status: "REJECTED"
        reviewComment: "The supporting document does not justify the requested limits."
        createdAt: "2024-01-15T10:00:00Z"
        updatedAt: "2024-01-15T10:05:00Z"
    LimitRequestArrayApprovedExample:
      value:
        data:
          - id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
            customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type: "OFFRAMP"
            requested:
              single: "15000.00"
              daily: "60000.00"
              monthly: "120000.00"
            approved:
              single: "15000.00"
              daily: "60000.00"
              monthly: "120000.00"
            supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
            supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
            status: "APPROVED"
            reviewComment: null
            createdAt: "2024-01-15T10:00:00Z"
            updatedAt: "2024-01-15T10:05:00Z"
        pagination:
          size: 20
          total: 1
          hasNextPage: false
    LimitRequestArrayPartiallyApprovedExample:
      value:
        data:
          - id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
            customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type: "OFFRAMP"
            requested:
              single: "15000.00"
              daily: "60000.00"
              monthly: "120000.00"
            approved:
              single: "7500.00"
              daily: "30000.00"
              monthly: "60000.00"
            supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
            supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
            status: "PARTIALLY_APPROVED"
            reviewComment: "Limits approved at 50% of the requested amounts based on the supporting document."
            createdAt: "2024-01-15T10:00:00Z"
            updatedAt: "2024-01-15T10:05:00Z"
        pagination:
          size: 20
          total: 1
          hasNextPage: false
    LimitRequestArrayRejectedExample:
      value:
        data:
          - id: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
            customerId: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type: "OFFRAMP"
            requested:
              single: "15000.00"
              daily: "60000.00"
              monthly: "120000.00"
            approved:
              single: null
              daily: null
              monthly: null
            supportingDocumentType: "LIMIT_REQUEST_BANK_STATEMENT"
            supportingDocumentId: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
            status: "REJECTED"
            reviewComment: "The supporting document does not justify the requested limits."
            createdAt: "2024-01-15T10:00:00Z"
            updatedAt: "2024-01-15T10:05:00Z"
        pagination:
          size: 20
          total: 1
          hasNextPage: false
  schemas:
    CustomerRequest:
      oneOf:
        - allOf:
            - $ref: "#/components/schemas/CustomerBusiness"
            - type: object
              required:
                - type
                - legalName
                - taxId
                - email
                - country
                - incorporationDate
                - accounts
              properties:
                accounts:
                  $ref: "#/components/schemas/CustomerRequestAccounts"
        - allOf:
            - $ref: "#/components/schemas/CustomerIndividual"
            - type: object
              required:
                - type
                - name
                - taxId
                - email
                - country
                - birthDate
                - accounts
              properties:
                accounts:
                  $ref: "#/components/schemas/CustomerRequestAccounts"
                shareToken:
                  type: string
                  description: Optional Sumsub share token to reuse an existing verification from your own Sumsub account. Requires a data-sharing agreement between you and Lumx. Only available for INDIVIDUAL customers.
                  example: "_act-sbx-jwt-token-from-sumsub"
    CustomerRequestAccounts:
      type: array
      minItems: 1
      description: Currencies of the virtual fiat accounts to provision alongside the customer. At least one is required. Each account is created in `AWAITING_ONBOARDING`; provisioning is requested once the customer is approved and the account becomes `ACTIVE` after verification.
      items:
        type: string
        enum: ["BRL", "USD", "EUR", "MXN", "GBP"]
      example: ["BRL", "USD", "EUR", "MXN", "GBP"]
    CustomerResponse:
      oneOf:
        - title: Business
          allOf:
            - type: object
              properties:
                id:
                  type: string
                  description: Customer's unique identifier.
                  format: uuid
                  readOnly: true
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            - $ref: "#/components/schemas/CustomerBusiness"
            - $ref: "#/components/schemas/CustomerResponseFields"
        - title: Individual
          allOf:
            - type: object
              properties:
                id:
                  type: string
                  description: Customer's unique identifier.
                  format: uuid
                  readOnly: true
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            - $ref: "#/components/schemas/CustomerIndividual"
            - $ref: "#/components/schemas/CustomerResponseFields"
    CustomerResponseFields:
      type: object
      properties:
        taxId:
          description: Customer's tax ID.
        wallets:
          type: array
          description: Customer's wallets by blockchain. Only returned when the customer's `verification.status` is `APPROVED`.
          items:
            type: object
            properties:
              blockchain:
                type: string
                enum: [ETHEREUM, BASE, TRON, POLYGON]
                description: Blockchain network.
                example: "POLYGON"
              address:
                type: string
                description: Wallet address on this blockchain.
                example: "0x1234567890123456789012345678901234567890"
              blockExplorerUrl:
                type: string
                description: Block explorer URL for this wallet.
                example: "https://polygonscan.com/address/0x1234567890123456789012345678901234567890"
              isDefault:
                type: boolean
                description: Whether this is the default wallet.
                example: true
              balances:
                type: array
                description: Stablecoin balances on this wallet.
                items:
                  $ref: "#/components/schemas/CustomerBalance"
        verification:
          $ref: "#/components/schemas/CustomerVerification"
        requirements:
          type: array
          description: List of document requirements for KYC/KYB verification.
          items:
            type: object
            properties:
              name:
                type: string
                description: Document requirement name.
                enum:
                  - ID_CARD
                  - PASSPORT
                  - DRIVERS_LICENSE
                  - BANK_STATEMENT
                  - INCOME_TAX_RETURN
                  - DELIVERY_RECEIPT
                  - SELFIE
                  - ADDITIONAL_INFORMATION
                  - INCORPORATION_ARTICLES
                  - POWER_OF_ATTORNEY
                  - DIRECTORS_REGISTRY
                  - SHAREHOLDER_REGISTRY
                  - REGULATED_ACTIVITY_DOCUMENT
                  - SIGNED_BALANCE_SHEET
                  - SIGNED_CORPORATE_STRUCTURE_CHART
                  - SIGNED_INCOME_STATEMENT
                  - TERMS_OF_SERVICE
                example: "ID_CARD"
              status:
                type: string
                description: Document requirement status.
                enum:
                  - NOT_SENT
                  - PENDING
                  - APPROVED
                  - TEMPORARY_REJECTION
                  - FINAL_REJECTION
                example: "NOT_SENT"
          example:
            - name: "ID_CARD"
              status: "NOT_SENT"
            - name: "PASSPORT"
              status: "NOT_SENT"
            - name: "BANK_STATEMENT"
              status: "NOT_SENT"
        additionalInformation:
          description: >-
            Additional information submitted for KYC/KYB verification. Only present after sending additional information.
            Returns what the customer answered, except `phone`, the names, `address` and `website`: the current
            questionnaire, or the previous questionnaire for customers created before October 28, 2026.
          oneOf:
            - $ref: "#/components/schemas/CustomerAdditionalInformationIndividual"
            - $ref: "#/components/schemas/CustomerAdditionalInformationBusiness"
            - $ref: "#/components/schemas/CustomerAdditionalInformationIndividualPrevious"
            - $ref: "#/components/schemas/CustomerAdditionalInformationBusinessPrevious"
        accounts:
          type: array
          description: Virtual fiat accounts linked to the customer for receiving payments. Optional—only present when the customer has at least one account. Each entry exposes the account's `id` and `currency`.
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: Account's unique identifier.
                example: "d06d342c-629a-4d99-a26f-34e8ea528403"
              currency:
                type: string
                description: Account's currency.
                enum: ["BRL", "USD", "EUR", "MXN", "GBP"]
                example: "EUR"
        transactionLimits:
          type: object
          description: >-
            Customer's transaction limits per transaction type. Only returned when `includeTransactionLimits` is true.
            Each transaction type consumes only its own limit: on-ramps count against `onramp`, off-ramps against
            `offramp` and transfers against `transfer`. A transaction over its type's limit returns `422` with code
            `TRANSACTION_LIMIT_EXCEEDED`, and the error message names the transaction type and the limit it would pass.
          properties:
            onramp:
              $ref: "#/components/schemas/TransactionLimitBucket"
            offramp:
              $ref: "#/components/schemas/TransactionLimitBucket"
            transfer:
              $ref: "#/components/schemas/TransactionLimitBucket"
        metadata:
          type: object
          description: Custom metadata associated with the customer. Returns an empty object if no metadata was provided.
          additionalProperties: true
          example: { "externalId": "usr_123", "tier": "premium" }
        createdAt:
          type: string
          description: Creation date and time (UTC).
          format: date-time
          example: "2021-01-01T00:00:00Z"
        updatedAt:
          type: string
          description: Last update date and time (UTC).
          format: date-time
          example: "2021-01-01T00:00:00Z"
    TransactionLimitBucket:
      type: object
      description: Limits of one transaction type. Amounts are strings with two decimals.
      properties:
        single:
          type: object
          description: Single transaction limit.
          properties:
            max:
              type: string
              description: Maximum amount allowed for a single transaction.
              example: "1000.00"
        daily:
          type: object
          description: Daily limit.
          properties:
            max:
              type: string
              description: Maximum daily amount.
              example: "5000.00"
            used:
              type: string
              description: Amount used today.
              example: "1200.00"
            remaining:
              type: string
              description: Remaining daily amount.
              example: "3800.00"
        monthly:
          type: object
          description: Monthly limit.
          properties:
            max:
              type: string
              description: Maximum monthly amount.
              example: "20000.00"
            used:
              type: string
              description: Amount used this month.
              example: "1200.00"
            remaining:
              type: string
              description: Remaining monthly amount.
              example: "18800.00"
    CustomerArrayResponse:
      allOf:
        - type: object
          properties:
            id:
              type: string
              description: Customer's unique identifier.
              format: uuid
              example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        - $ref: "#/components/schemas/CustomerBusiness"
        - $ref: "#/components/schemas/CustomerArrayResponseFields"
    CustomerArrayResponseFields:
      type: object
      properties:
        taxId:
          description: Customer's tax ID.
        verification:
          $ref: "#/components/schemas/CustomerVerification"
        metadata:
          type: object
          description: Custom metadata associated with the customer. Returns an empty object if no metadata was provided.
          additionalProperties: true
          example: { "externalId": "usr_123", "tier": "premium" }
        createdAt:
          type: string
          description: Creation date and time (UTC).
          format: date-time
          example: "2021-01-01T00:00:00Z"
        updatedAt:
          type: string
          description: Last update date and time (UTC).
          format: date-time
          example: "2021-01-01T00:00:00Z"
    AccountArrayResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Account's unique identifier.
          example: "d06d342c-629a-4d99-a26f-34e8ea528403"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "768d6aac-627e-44e8-aabd-d51d10f59c02"
        status:
          type: string
          description: Account's verification status.
          enum: ["AWAITING_ONBOARDING", "REQUESTED", "PROVISIONING", "RFI", "ACTIVE", "REJECTED", "INACTIVE", "CLOSED"]
          example: "ACTIVE"
        currency:
          type: string
          description: Account's currency.
          enum: ["BRL", "USD", "EUR", "MXN", "GBP"]
          example: "EUR"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2026-05-13T20:49:13.236Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2026-05-14T13:55:15.418Z"
    CustomerIndividual:
      title: Individual
      type: object
      properties:
        type:
          type: string
          description: Customer's type.
          enum: ["INDIVIDUAL"]
          example: "INDIVIDUAL"
        name:
          type: string
          description: Customer's full name.
          example: "William Default"
        taxId:
          type: string
          description: Customer's tax ID. It must be a valid tax ID in the country where the customer lives.
          example: "123.456.789-00"
        birthDate:
          type: string
          description: Customer's birth date.
          format: date
          example: "1990-01-01"
        country:
          type: string
          description: Customer's country (ISO 3166-1 alpha-3).
          enum: ["BRA"]
          example: "BRA"
        email:
          type: string
          description: Customer's email.
          example: "william.default@example.com"
        metadata:
          type: object
          description: Optional metadata object to attach to the customer. Accepts any valid JSON object.
          additionalProperties: true
          example: { "externalId": "usr_123", "tier": "premium" }
    CustomerBusiness:
      title: Business
      type: object
      properties:
        type:
          type: string
          description: Customer's type.
          enum: ["BUSINESS"]
        legalName:
          type: string
          description: Customer's legal name.
          example: "Lumx S.A"
        taxId:
          type: string
          description: Customer's tax ID. It must be a valid tax ID in the country where the company is incorporated.
          example: "42.887.120/0001-00"
        incorporationDate:
          type: string
          description: Customer's incorporation date.
          format: date
          example: "2020-01-01"
        country:
          type: string
          description: Customer's country (ISO 3166-1 alpha-3).
          example: "BRA"
        email:
          type: string
          description: Customer's email.
          example: "hello@lumx.io"
        metadata:
          type: object
          description: Optional metadata object to attach to the customer. Accepts any valid JSON object.
          additionalProperties: true
          example: { "externalId": "biz_456", "tier": "enterprise" }
    CustomerVerification:
      type: object
      description: Customer's verification.
      properties:
        status:
          type: string
          description: Verification status.
          enum:
            [
              "NOT_STARTED",
              "UNDER_VERIFICATION",
              "APPROVED",
              "TEMPORARY_REJECTION",
              "FINAL_REJECTION",
            ]
          example: "NOT_STARTED"
        level:
          type: string
          description: Verification level.
          enum: ["STANDARD"]
          example: "STANDARD"
        link:
          type: string
          description: >-
            Verification link. Omitted until the customer's `TERMS_OF_SERVICE` requirement is `APPROVED`, and also
            omitted when there is no link. Associated parties' links follow the customer's acceptance. Read the
            customer again after the terms of service are accepted to get the link.
          example: "https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44"
    CustomerBalance:
      type: object
      description: Customer's balance.
      properties:
        currency:
          type: string
          description: Balance currency.
          enum: [USDC, USDT]
        amount:
          type: string
          description: Balance amount.
          example: "1000.00"
        updatedAt:
          type: string
          description: Last update date and time (UTC).
          example: "2021-01-01T00:00:00Z"
    CustomerCreateResponse:
      oneOf:
        - title: Business
          allOf:
            - type: object
              properties:
                id:
                  type: string
                  description: Customer's unique identifier.
                  format: uuid
                  readOnly: true
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            - $ref: "#/components/schemas/CustomerBusiness"
            - $ref: "#/components/schemas/CustomerCreateResponseFields"
        - title: Individual
          allOf:
            - type: object
              properties:
                id:
                  type: string
                  description: Customer's unique identifier.
                  format: uuid
                  readOnly: true
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            - $ref: "#/components/schemas/CustomerIndividual"
            - $ref: "#/components/schemas/CustomerCreateResponseFields"
    CustomerCreateResponseFields:
      type: object
      description: Customer fields returned at creation time. The `wallets` array is omitted because it's only available after the customer's `verification.status` is `APPROVED`.
      properties:
        taxId:
          description: Customer's tax ID.
        verification:
          $ref: "#/components/schemas/CustomerVerification"
        requirements:
          type: array
          description: List of document requirements for KYC/KYB verification.
          items:
            type: object
            properties:
              name:
                type: string
                description: Document requirement name.
                enum:
                  - ID_CARD
                  - PASSPORT
                  - DRIVERS_LICENSE
                  - BANK_STATEMENT
                  - INCOME_TAX_RETURN
                  - DELIVERY_RECEIPT
                  - SELFIE
                  - ADDITIONAL_INFORMATION
                  - INCORPORATION_ARTICLES
                  - POWER_OF_ATTORNEY
                  - DIRECTORS_REGISTRY
                  - SHAREHOLDER_REGISTRY
                  - REGULATED_ACTIVITY_DOCUMENT
                  - SIGNED_BALANCE_SHEET
                  - SIGNED_CORPORATE_STRUCTURE_CHART
                  - SIGNED_INCOME_STATEMENT
                  - TERMS_OF_SERVICE
                example: "ID_CARD"
              status:
                type: string
                description: Document requirement status.
                enum:
                  - NOT_SENT
                  - PENDING
                  - APPROVED
                  - TEMPORARY_REJECTION
                  - FINAL_REJECTION
                example: "NOT_SENT"
          example:
            - name: "ID_CARD"
              status: "NOT_SENT"
            - name: "PASSPORT"
              status: "NOT_SENT"
            - name: "BANK_STATEMENT"
              status: "NOT_SENT"
        metadata:
          type: object
          description: Custom metadata associated with the customer. Returns an empty object if no metadata was provided.
          additionalProperties: true
          example: { "externalId": "usr_123", "tier": "premium" }
        createdAt:
          type: string
          description: Creation date and time (UTC).
          format: date-time
          example: "2021-01-01T00:00:00Z"
        updatedAt:
          type: string
          description: Last update date and time (UTC).
          format: date-time
          example: "2021-01-01T00:00:00Z"
    CustomerUploadDocumentRequest:
      type: object
      properties:
        file:
          type: string
          description: Document's file to be uploaded. The maximum size is 5MB.
          format: binary
          # contentEncoding: binary
        metadata:
          type: object
          description: Document's metadata of the file.
          properties:
            type:
              type: string
              description: Document type.
              enum:
                [
                  id_card,
                  passport,
                  drivers_license,
                  utility_bill,
                  incorporation_articles,
                  proof_of_address,
                ]
              example: "id_card"
            country:
              type: string
              description: Document country using ISO 3166-1 alpha-3 code.
              example: "BRA"
            side:
              type: string
              description: Document side. Only required for documents with both sides.
              nullable: true
              enum: [front_side, back_side]
              example: "front_side"
            beneficiaryId:
              type: string
              description: Beneficiary's unique identifier. Only required for documents of beneficiaries.
              nullable: true
              format: uuid
              example: "123e4567-e89b-12d3-a456-426614174000"
          required:
            - type
            - country
      required:
        - file
        - metadata
    CustomerVerificationResponse:
      type: object
      properties:
        customerId:
          type: string
          description: Customer's unique identifier.
          format: uuid
        status:
          type: string
          description: Customer verification's status.
          enum:
            [
              "NOT_STARTED",
              "UNDER_VERIFICATION",
              "APPROVED",
              "TEMPORARY_REJECTION",
              "FINAL_REJECTION",
            ]
          example: "NOT_STARTED"
        level:
          type: string
          description: Customer verification's level.
          example: "STANDARD"
          enum: ["STANDARD"]
        statusReason:
          type: object
          description: Customer verification's status reason.
          properties:
            rejectLabels:
              type: array
              description: Status reason reject labels.
              example:
                - screenshot
                - unsatisfactory_photos
            rejectSubLabels:
              type: array
              description: Status reason reject sub labels.
              example:
                - proofOfAddress_listOfDocs
                - badPhoto
                - proofOfAddress
                - differentDocs
                - badPhoto_screenshot
            documents:
              type: array
              description: Status reason documents that were rejected.
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: Document type.
                    enum:
                      [
                        ID_CARD,
                        PASSPORT,
                        DRIVERS_LICENSE,
                        UTILITY_BILL,
                        INCORPORATION_ARTICLES,
                        PROOF_OF_ADDRESS,
                      ]
                    example: "PASSPORT"
                  status:
                    type: string
                    description: Document status.
                    enum:
                      [PENDING, APPROVED, TEMPORARY_REJECTION, FINAL_REJECTION]
                    example: "TEMPORARY_REJECTION"
                  comment:
                    type: string
                    description: Document comment.
                    example: "Screenshots aren't accepted. Please upload a live photo of the document."
                  rejectLabels:
                    type: array
                    description: Document reject labels.
                    example:
                      - screenshot
                      - unsatisfactory_photos
              example:
                - type: "PASSPORT"
                  status: "TEMPORARY_REJECTION"
                  comment: "Screenshots aren't accepted. Please upload a live photo of the document."
                  rejectLabels:
                    - screenshot
                    - unsatisfactory_photos
    CustomerDocumentUploadRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
          description: Document file to be uploaded. Maximum size is 50MB. Accepts images (JPG, PNG) and PDF.
        type:
          type: string
          description: Document type. Use the LIMIT_REQUEST_* types for the supporting document of a limit-increase request.
          enum:
            - ID_CARD
            - PASSPORT
            - DRIVERS_LICENSE
            - BANK_STATEMENT
            - INCOME_TAX_RETURN
            - DELIVERY_RECEIPT
            - SELFIE
            - INCORPORATION_ARTICLES
            - SHAREHOLDER_REGISTRY
            - DIRECTORS_REGISTRY
            - POWER_OF_ATTORNEY
            - REGULATED_ACTIVITY_DOCUMENT
            - SIGNED_BALANCE_SHEET
            - SIGNED_CORPORATE_STRUCTURE_CHART
            - SIGNED_INCOME_STATEMENT
            - PROOF_OF_ADDRESS
            - LIMIT_REQUEST_BANK_STATEMENT
            - LIMIT_REQUEST_TAX_RETURN
            - LIMIT_REQUEST_FINANCIAL_STATEMENTS
            - OTHER
          example: "ID_CARD"
        side:
          type: string
          description: Document side. Required only for ID_CARD, PASSPORT, and DRIVERS_LICENSE.
          enum:
            - FRONT_SIDE
            - BACK_SIDE
          example: "FRONT_SIDE"
        country:
          type: string
          description: Document country using ISO 3166-1 alpha-3 code.
          example: "BRA"
        associatedPartyId:
          type: string
          format: uuid
          description: Associated party's unique identifier. Required when uploading documents for associated parties.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      required:
        - file
        - type
        - country
    CustomerDocumentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Document's unique identifier.
          example: "d1e2f3a4-b5c6-7890-abcd-ef1234567890"
        type:
          type: string
          description: Document type.
          example: "ID_CARD"
        side:
          type: string
          description: Document side.
          example: "FRONT_SIDE"
        country:
          type: string
          description: Document country.
          example: "BRA"
        status:
          type: string
          description: Document status.
          enum:
            - NOT_SENT
            - PENDING
            - APPROVED
            - TEMPORARY_REJECTION
            - FINAL_REJECTION
          example: "PENDING"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2024-01-15T10:00:00Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2024-01-15T10:00:00Z"
    CustomerDocumentUploadResponse:
      type: object
      properties:
        documentId:
          type: string
          format: uuid
          description: Uploaded document's unique identifier. Reference it as supportingDocumentId when creating a limit request.
          example: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
    LimitRequestCreateRequest:
      type: object
      required:
        - type
        - requested
        - supportingDocumentId
      properties:
        type:
          type: string
          description: >-
            Transaction type whose limits the request raises. Approval changes only this type's limits. Each type
            can have one pending request at a time.
          enum:
            - ONRAMP
            - OFFRAMP
            - TRANSFER
          example: "OFFRAMP"
        requested:
          type: object
          required:
            - single
            - daily
            - monthly
          properties:
            single:
              type: string
              description: >-
                Requested per-transaction limit as a numeric string. Must not
                exceed the daily limit. In sandbox, the cents of this value
                can trigger an instant simulated review outcome — see Sandbox
                magic numbers in the Transaction Limits guide.
              example: "15000.00"
            daily:
              type: string
              description: Requested daily limit as a numeric string. Must not exceed the monthly limit.
              example: "60000.00"
            monthly:
              type: string
              description: Requested monthly limit as a numeric string.
              example: "120000.00"
        supportingDocumentId:
          type: string
          format: uuid
          description: documentId returned by POST /customers/{id}/documents for the uploaded supporting document.
          example: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
    LimitRequestResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Limit request's unique identifier.
          example: "b2e1a2d4-1234-4a3b-9c4d-5e6f7a8b9c0d"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type:
          type: ["string", "null"]
          description: Transaction type whose limits the request raises. Null for requests created before limits were split by transaction type.
          enum:
            - ONRAMP
            - OFFRAMP
            - TRANSFER
            - null
          example: "OFFRAMP"
        requested:
          type: object
          description: Limits requested by the customer.
          properties:
            single:
              type: string
              nullable: true
              example: "15000.00"
            daily:
              type: string
              nullable: true
              example: "60000.00"
            monthly:
              type: string
              nullable: true
              example: "120000.00"
        approved:
          type: object
          description: Limits approved by compliance. Each value is null until reviewed.
          properties:
            single:
              type: string
              nullable: true
              example: null
            daily:
              type: string
              nullable: true
              example: null
            monthly:
              type: string
              nullable: true
              example: null
        supportingDocumentType:
          type: string
          nullable: true
          example: "LIMIT_REQUEST_BANK_STATEMENT"
        supportingDocumentId:
          type: string
          nullable: true
          example: "9d1e2f3a-4b5c-6d7e-8f90-1a2b3c4d5e6f"
        status:
          type: string
          description: Current status of the limit request.
          enum:
            - IN_REVIEW
            - APPROVED
            - PARTIALLY_APPROVED
            - REJECTED
          example: "IN_REVIEW"
        reviewComment:
          type: string
          nullable: true
          description: Compliance's comment. Set when rejected or partially approved.
          example: null
        createdAt:
          type: string
          format: date-time
          example: "2024-01-15T10:00:00Z"
        updatedAt:
          type: string
          format: date-time
          description: Also the review timestamp once the request leaves IN_REVIEW.
          example: "2024-01-15T10:00:00Z"
    CustomerUpdateRequest:
      oneOf:
        - $ref: "#/components/schemas/CustomerUpdateIndividual"
        - $ref: "#/components/schemas/CustomerUpdateBusiness"
        - $ref: "#/components/schemas/CustomerUpdateIndividualPrevious"
        - $ref: "#/components/schemas/CustomerUpdateBusinessPrevious"
    CustomerUpdateIndividual:
      title: Individual (current questionnaire)
      description: Body for individual customers created on or after October 28, 2026.
      type: object
      properties:
        type:
          type: string
          enum: ["INDIVIDUAL"]
          description: Customer type.
        phone:
          type: string
          description: Phone number in international format.
          example: "+5511999999999"
        address:
          $ref: "#/components/schemas/Address"
        firstName:
          type: string
          description: Customer's first name.
          example: "Maria"
        middleName:
          type: string
          description: Customer's middle name.
          example: "Silva"
        lastName:
          type: string
          description: Customer's last name.
          example: "Souza"
        monthlyIncomeInUSD:
          type: string
          pattern: ^\d{1,18}(\.\d{1,2})?$
          description: Monthly income in USD, as a non-negative amount with at most 18 integer digits and two decimals.
          example: "8000"
        monthlyVolumeInUSD:
          type: string
          description: Expected monthly volume in USD.
          example: "5000"
        transactionVolumeInUSD:
          type: string
          description: Expected volume per transaction in USD.
          example: "1000"
        professionalSituation:
          type: string
          description: Professional situation.
          enum:
            - EMPLOYEE
            - SELF_EMPLOYED
            - BUSINESS_OWNER
            - GOVERNMENT_OFFICIAL
            - INVESTOR
            - STUDENT
            - RETIRED
            - HOMEMAKER
            - UNEMPLOYED
            - OTHER
          example: "BUSINESS_OWNER"
        professionalOccupation:
          type: string
          description: Professional occupation description.
          example: "Engineer"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - SALARY_EMPLOYMENT_INCOME
            - BUSINESS_INCOME_DIVIDENDS
            - SAVINGS_INVESTMENT_RETURNS
            - PENSION_RETIREMENT
            - SALE_OF_ASSETS_REAL_ESTATE
            - INHERITANCE_GIFT
            - LOAN
            - GOVERNMENT_BENEFITS
            - GAMBLING_LOTTERY_PROCEEDS
            - ROYALTIES_INTELLECTUAL_PROPERTY
            - THIRD_PARTY_FUNDS
            - OTHER
          example: "SALARY_EMPLOYMENT_INCOME"
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          minItems: 1
          items:
            type: string
            enum:
              - SELF
              - FAMILY
              - FRIENDS
              - EMPLOYER
              - MERCHANTS_BUSINESSES
              - GOVERNMENT
              - OTHER
          example: ["SELF", "FAMILY"]
      required:
        - type
        - phone
        - address
        - firstName
        - lastName
        - monthlyIncomeInUSD
        - monthlyVolumeInUSD
        - transactionVolumeInUSD
        - professionalSituation
        - professionalOccupation
        - sourceOfFunds
        - transactionCounterparties
    CustomerUpdateBusiness:
      title: Business (current questionnaire)
      description: Body for business customers created on or after October 28, 2026.
      type: object
      properties:
        type:
          type: string
          enum: ["BUSINESS"]
          description: Customer type.
        phone:
          type: string
          description: Phone number in international format.
          example: "+5511999999999"
        address:
          $ref: "#/components/schemas/Address"
        website:
          type: string
          description: Company website URL.
          example: "https://acme.com"
        businessActivity:
          type: string
          description: Main business activity. Replaces `companyType`.
          enum:
            - SOFTWARE_DEVELOPMENT
            - VASP
            - PAYMENT_INSTITUTION
            - PAYMENT_PROCESSOR_GATEWAY
            - LIQUIDITY_PROVIDER_OTC_DESK
            - CRYPTO_MSB
            - STABLECOIN_ISSUER
            - NON_CUSTODIAL_WALLET_PROVIDER
            - CUSTODIAN
            - CRYPTO_CARDS
            - DEFI_DAO_FOUNDATION
            - NFT_MARKETPLACE_TOKEN_PROJECT
            - P2P_MERCHANTS
            - ATM_KIOSK_OPERATOR
            - CRYPTO_MINER
            - GAMING_METAVERSE_P2E
            - FOREIGN_EXCHANGE_FX
            - NON_CRYPTO_MSB
            - BANKING_CORRESPONDENT
            - BANK_FINANCIAL_INSTITUTION
            - ECOMMERCE_MARKETPLACE
            - IMPORTER_EXPORTER_TRADE
            - TRAVEL_AGENCY_TOURISM
            - INVESTMENT_FUND
            - INVESTMENT_ADVISOR_MANAGER
            - VENTURE_CAPITAL_PRIVATE_EQUITY
            - SOVEREIGN_WEALTH_FUND
            - HOLDING_SPV_FAMILY_OFFICE
            - TRUST
            - COMPANY_FORMATION_CSP
            - LOAN_OR_FINANCE_COMPANY
            - INSURANCE_COMPANY
            - COMMODITIES_OIL_AND_GAS
            - PRECIOUS_METALS_AND_STONES
            - REAL_ESTATE_LEASING
            - LOGISTICS_CUSTOMS_TRANSPORT
            - WHOLESALER
            - GENERAL_MANUFACTURING
            - RETAILER
            - JEWELRY_RETAIL
            - PROFESSIONAL_MARKETING_SERVICES
            - PAYROLL_PEO_HR_SERVICES
            - PHARMACEUTICAL_DRUG_DISTRIBUTION
            - CHARITY_NGO_NON_PROFIT
            - GAMBLING_CASINO_BETTING
            - ART_ANTIQUITIES_COLLECTIBLES
            - PAWN_SHOPS
            - MINING_AND_EXTRACTION
            - CONSTRUCTION_SKILLED_TRADE
            - MEDIA_ARTS_ENTERTAINMENT
            - TOBACCO_ALCOHOL
            - MARIJUANA_CANNABIS
            - ADULT_ENTERTAINMENT
            - ARMS_INDUSTRY
            - AGRICULTURE_FISHING_HUNTING
            - HEALTHCARE_SOCIAL_ASSISTANCE
            - EDUCATIONAL_SERVICES
            - ACCOMMODATION_FOOD_SERVICE
            - UTILITIES_PUBLIC_ADMIN
            - OTHER
          example: "PAYMENT_INSTITUTION"
        servicesProvided:
          type: string
          description: Description of services provided by the business.
          example: "Cross-border payments for small businesses"
        monthlyRevenueInUSD:
          type: string
          pattern: ^\d{1,18}(\.\d{1,2})?$
          description: Monthly revenue in USD, as a non-negative amount with at most 18 integer digits and two decimals. Replaces `annualRevenue`.
          example: "250000"
        monthlyTransactionVolumeInUSD:
          type: string
          description: Expected monthly transaction volume range in USD. Replaces `monthlyTransactionVolume`.
          enum:
            - UP_TO_100K
            - 100K_TO_1M
            - 1M_TO_5M
            - 5M_TO_10M
            - 10M_TO_20M
            - 20M_TO_30M
            - OVER_30M
          example: "1M_TO_5M"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - OPERATING_SERVICE_REVENUE
            - INVESTMENT_RETURNS_CAPITAL_GAINS
            - ASSET_BUSINESS_SALE
            - SHAREHOLDER_EQUITY_RAISE
            - LOAN
            - INTERCOMPANY_TRANSFER
            - GRANT
            - CRYPTOCURRENCY_DIGITAL_ASSETS
            - ROYALTIES_AFFILIATE_INCOME
            - LEGAL_SETTLEMENT_SUCCESSION
            - GAMBLING_REVENUE
            - CHARITABLE_CONTRIBUTIONS
            - OTHER
          example: "OPERATING_SERVICE_REVENUE"
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          minItems: 1
          items:
            type: string
            enum:
              - OWN_ACCOUNTS_INTERCOMPANY
              - SHAREHOLDERS_PARTNERS
              - CUSTOMERS
              - MERCHANTS
              - SUPPLIERS_VENDORS
              - EMPLOYEES
              - CONTRACTORS
              - FINANCIAL_INSTITUTIONS_VASP
              - INVESTMENT_COUNTERPARTIES
              - GOVERNMENT_TAX_AUTHORITIES
              - AFFILIATED_COMPANIES
              - OTHER
          example: ["CUSTOMERS", "SUPPLIERS_VENDORS"]
        isRegulatedActivity:
          type: boolean
          description: Whether the business is involved in regulated activities.
          example: true
        regulatedActivityDetails:
          type: string
          description: Details of the regulated activity. Required when `isRegulatedActivity` is true.
          example: "Licensed payment institution"
      required:
        - type
        - phone
        - address
        - website
        - businessActivity
        - servicesProvided
        - monthlyRevenueInUSD
        - monthlyTransactionVolumeInUSD
        - sourceOfFunds
        - transactionCounterparties
        - isRegulatedActivity
    CustomerUpdateIndividualPrevious:
      title: Individual (previous questionnaire, customers created before October 28, 2026)
      description: Body for individual customers created before October 28, 2026. Customers created on or after that date get `400` with code `VALIDATION_ERROR` for this body.
      type: object
      properties:
        type:
          type: string
          enum: ["INDIVIDUAL"]
          description: Customer type.
        phone:
          type: string
          description: Phone number in international format.
          example: "+5511999999999"
        firstName:
          type: string
          description: Customer's first name.
          example: "William"
        middleName:
          type: string
          description: Customer's middle name.
          example: ""
        lastName:
          type: string
          description: Customer's last name.
          example: "Default"
        address:
          $ref: "#/components/schemas/Address"
        monthlyVolumeInUSD:
          type: string
          description: Expected monthly volume in USD.
          example: "5000"
        transactionVolumeInUSD:
          type: string
          description: Expected volume per transaction in USD.
          example: "1000"
        jurisdictions:
          type: array
          description: Regions where transactions will occur.
          items:
            type: string
            enum:
              - BRA
              - USA
              - EU
              - CANADA
              - CHINA
              - MEXICO
              - OTHERS
          example: ["BRA", "USA"]
        involvedActivities:
          type: array
          description: Activities involved.
          items:
            type: string
            enum:
              - NONE
              - ADULT_ENTERTAINMENT
              - DRUGS
              - FIREARMS
              - GAMBLING
              - MARIJUANA
              - TUMBLING
          example: ["NONE"]
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          items:
            type: string
            enum:
              - SELF
              - MERCHANTS_SUPPLIERS
              - CUSTOMERS
              - EMPLOYEES
              - CONTRACTORS
              - FRIENDS
              - FAMILY
          example: ["SELF", "MERCHANTS_SUPPLIERS"]
        professionalSituation:
          type: string
          description: Professional situation.
          enum:
            - EMPLOYEE
            - SELF_EMPLOYED
            - UNEMPLOYED
            - RETIRED
            - OTHER
          example: "EMPLOYEE"
        professionalOccupation:
          type: string
          description: Professional occupation description.
          example: "Software Engineer"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - EMPLOYMENT
            - SAVINGS
            - WINNINGS
            - MARITAL
            - REAL_ESTATE
            - TRUST
            - INVESTMENT
            - OTHER
            - COMPANY
            - COMPANY_CAPITAL
            - LOAN
            - PRIVATE_CAPITAL
            - GRANT
          example: "EMPLOYMENT"
      required:
        - type
        - phone
        - firstName
        - lastName
        - address
        - monthlyVolumeInUSD
        - transactionVolumeInUSD
        - jurisdictions
        - involvedActivities
        - transactionCounterparties
        - professionalSituation
        - professionalOccupation
        - sourceOfFunds
    CustomerUpdateBusinessPrevious:
      title: Business (previous questionnaire, customers created before October 28, 2026)
      description: Body for business customers created before October 28, 2026. Customers created on or after that date get `400` with code `VALIDATION_ERROR` for this body.
      type: object
      properties:
        type:
          type: string
          enum: ["BUSINESS"]
          description: Customer type.
        phone:
          type: string
          description: Phone number in international format.
          example: "+5511999999999"
        address:
          $ref: "#/components/schemas/Address"
        monthlyVolumeInUSD:
          type: string
          description: Expected monthly volume in USD.
          example: "50000.00"
        transactionVolumeInUSD:
          type: string
          description: Expected volume per transaction in USD.
          example: "10000.00"
        jurisdictions:
          type: array
          description: Regions where transactions will occur.
          items:
            type: string
            enum:
              - BRA
              - USA
              - EU
              - CANADA
              - CHINA
              - MEXICO
              - OTHERS
          example: ["BRA", "USA", "EU"]
        involvedActivities:
          type: array
          description: Activities involved.
          items:
            type: string
            enum:
              - NONE
              - ADULT_ENTERTAINMENT
              - DRUGS
              - FIREARMS
              - GAMBLING
              - MARIJUANA
              - TUMBLING
          example: ["NONE"]
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          items:
            type: string
            enum:
              - SELF
              - MERCHANTS_SUPPLIERS
              - CUSTOMERS
              - EMPLOYEES
              - CONTRACTORS
              - FRIENDS
              - FAMILY
          example: ["SELF"]
        companyType:
          type: string
          description: Type of company.
          enum:
            - BLOCKCHAIN_SOFTWARE_COMPANY
            - BANK_US
            - BANK_FOREIGN
            - NFT_MARKETPLACE
            - THIRD_PARTY_PAYMENT_PROCESSOR
            - ATM_KIOSK_OPERATOR
            - BROKER_DEALER_OTC_DESK
            - CHARITY_NGO_NON_PROFIT
            - COMMODITIES_FIRMS
            - DEFI_EXCHANGE
            - GOVERNMENT_AGENCY_FOREIGN
            - GOVERNMENT_AGENCY_US
            - FOREIGN_EXCHANGE_MARKET_FX
            - PAYMENT_GATEWAY
            - BANKING_CORRESPONDENT
            - HIGH_NET_WORTH_INDIVIDUALS
            - INSURANCE_COMPANIES
            - INVESTMENT_ADVISOR_ASSET_MANAGER
            - LOAN_OR_FINANCE_COMPANY
            - MINER
            - NON_BANK_CUSTODIANS
            - PENSION_FUNDS
            - WEALTH_HOLDING_VEHICLE
            - POOLED_INVESTMENT_VEHICLE_FUND
            - SPECIAL_PURPOSE_VEHICLE
            - SUPRANATIONAL_BODIES
            - TOKEN_PROJECT
            - TRUST_PERSONAL
            - TRUST_CORPORATE
            - U_S_CRYPTO_MSB
            - FOREIGN_CRYPTO_MSB
            - U_S_NON_CRYPTO_MSB
            - FOREIGN_NON_CRYPTO_MSB
            - WHOLESALE_OF_DURABLE_GOODS
            - WHOLESALE_OF_NON_DURABLE_GOODS
            - RETAILER_OF_DURABLE_GOODS
            - RETAILER_OF_NON_DURABLE_GOODS
            - CONSTRUCTION_OR_SKILLED_TRADE_BUSINESSES
            - PROFESSIONAL_SERVICES
            - OTHER
          example: "BLOCKCHAIN_SOFTWARE_COMPANY"
        annualRevenue:
          type: string
          description: Annual revenue.
          example: "1000000.00"
        monthlyTransactionVolume:
          type: string
          description: Monthly transaction volume.
          example: "100000.00"
        complianceAndAML:
          type: string
          description: Description of compliance and AML policies.
          example: "We have a dedicated compliance team and use third-party AML screening tools."
        isRegulatedActivity:
          type: boolean
          description: Whether the business is involved in regulated activities.
          example: false
        regulatedActivityDetails:
          type: string
          description: Details of regulated activity. Required if isRegulatedActivity is true.
          example: ""
        website:
          type: string
          description: Company website URL.
          example: "https://example.com"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - EMPLOYMENT
            - SAVINGS
            - WINNINGS
            - MARITAL
            - REAL_ESTATE
            - TRUST
            - INVESTMENT
            - OTHER
            - COMPANY
            - COMPANY_CAPITAL
            - LOAN
            - PRIVATE_CAPITAL
            - GRANT
          example: "COMPANY"
        servicesProvided:
          type: string
          description: Description of services provided by the business.
          example: "We provide blockchain-based payment infrastructure for B2B cross-border transactions."
      required:
        - type
        - phone
        - address
        - monthlyVolumeInUSD
        - transactionVolumeInUSD
        - jurisdictions
        - involvedActivities
        - transactionCounterparties
        - companyType
        - annualRevenue
        - monthlyTransactionVolume
        - complianceAndAML
        - isRegulatedActivity
        - website
        - sourceOfFunds
        - servicesProvided
    CustomerAdditionalInformationIndividual:
      title: Individual (current questionnaire)
      description: Additional information returned for individual customers created on or after October 28, 2026. The response does not include `phone`, `firstName`, `middleName`, `lastName` or `address`.
      type: object
      properties:
        type:
          type: string
          enum: ["INDIVIDUAL"]
          description: Customer type.
        monthlyIncomeInUSD:
          type: string
          pattern: ^\d{1,18}(\.\d{1,2})?$
          description: Monthly income in USD, as a non-negative amount with at most 18 integer digits and two decimals.
          example: "8000"
        monthlyVolumeInUSD:
          type: string
          description: Expected monthly volume in USD.
          example: "5000"
        transactionVolumeInUSD:
          type: string
          description: Expected volume per transaction in USD.
          example: "1000"
        professionalSituation:
          type: string
          description: Professional situation.
          enum:
            - EMPLOYEE
            - SELF_EMPLOYED
            - BUSINESS_OWNER
            - GOVERNMENT_OFFICIAL
            - INVESTOR
            - STUDENT
            - RETIRED
            - HOMEMAKER
            - UNEMPLOYED
            - OTHER
          example: "BUSINESS_OWNER"
        professionalOccupation:
          type: string
          description: Professional occupation description.
          example: "Engineer"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - SALARY_EMPLOYMENT_INCOME
            - BUSINESS_INCOME_DIVIDENDS
            - SAVINGS_INVESTMENT_RETURNS
            - PENSION_RETIREMENT
            - SALE_OF_ASSETS_REAL_ESTATE
            - INHERITANCE_GIFT
            - LOAN
            - GOVERNMENT_BENEFITS
            - GAMBLING_LOTTERY_PROCEEDS
            - ROYALTIES_INTELLECTUAL_PROPERTY
            - THIRD_PARTY_FUNDS
            - OTHER
          example: "SALARY_EMPLOYMENT_INCOME"
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          minItems: 1
          items:
            type: string
            enum:
              - SELF
              - FAMILY
              - FRIENDS
              - EMPLOYER
              - MERCHANTS_BUSINESSES
              - GOVERNMENT
              - OTHER
          example: ["SELF", "FAMILY"]
      required:
        - type
        - monthlyIncomeInUSD
        - monthlyVolumeInUSD
        - transactionVolumeInUSD
        - professionalSituation
        - professionalOccupation
        - sourceOfFunds
        - transactionCounterparties
    CustomerAdditionalInformationBusiness:
      title: Business (current questionnaire)
      description: Additional information returned for business customers created on or after October 28, 2026. The response does not include `phone`, `address` or `website`.
      type: object
      properties:
        type:
          type: string
          enum: ["BUSINESS"]
          description: Customer type.
        businessActivity:
          type: string
          description: Main business activity. Replaces `companyType`.
          enum:
            - SOFTWARE_DEVELOPMENT
            - VASP
            - PAYMENT_INSTITUTION
            - PAYMENT_PROCESSOR_GATEWAY
            - LIQUIDITY_PROVIDER_OTC_DESK
            - CRYPTO_MSB
            - STABLECOIN_ISSUER
            - NON_CUSTODIAL_WALLET_PROVIDER
            - CUSTODIAN
            - CRYPTO_CARDS
            - DEFI_DAO_FOUNDATION
            - NFT_MARKETPLACE_TOKEN_PROJECT
            - P2P_MERCHANTS
            - ATM_KIOSK_OPERATOR
            - CRYPTO_MINER
            - GAMING_METAVERSE_P2E
            - FOREIGN_EXCHANGE_FX
            - NON_CRYPTO_MSB
            - BANKING_CORRESPONDENT
            - BANK_FINANCIAL_INSTITUTION
            - ECOMMERCE_MARKETPLACE
            - IMPORTER_EXPORTER_TRADE
            - TRAVEL_AGENCY_TOURISM
            - INVESTMENT_FUND
            - INVESTMENT_ADVISOR_MANAGER
            - VENTURE_CAPITAL_PRIVATE_EQUITY
            - SOVEREIGN_WEALTH_FUND
            - HOLDING_SPV_FAMILY_OFFICE
            - TRUST
            - COMPANY_FORMATION_CSP
            - LOAN_OR_FINANCE_COMPANY
            - INSURANCE_COMPANY
            - COMMODITIES_OIL_AND_GAS
            - PRECIOUS_METALS_AND_STONES
            - REAL_ESTATE_LEASING
            - LOGISTICS_CUSTOMS_TRANSPORT
            - WHOLESALER
            - GENERAL_MANUFACTURING
            - RETAILER
            - JEWELRY_RETAIL
            - PROFESSIONAL_MARKETING_SERVICES
            - PAYROLL_PEO_HR_SERVICES
            - PHARMACEUTICAL_DRUG_DISTRIBUTION
            - CHARITY_NGO_NON_PROFIT
            - GAMBLING_CASINO_BETTING
            - ART_ANTIQUITIES_COLLECTIBLES
            - PAWN_SHOPS
            - MINING_AND_EXTRACTION
            - CONSTRUCTION_SKILLED_TRADE
            - MEDIA_ARTS_ENTERTAINMENT
            - TOBACCO_ALCOHOL
            - MARIJUANA_CANNABIS
            - ADULT_ENTERTAINMENT
            - ARMS_INDUSTRY
            - AGRICULTURE_FISHING_HUNTING
            - HEALTHCARE_SOCIAL_ASSISTANCE
            - EDUCATIONAL_SERVICES
            - ACCOMMODATION_FOOD_SERVICE
            - UTILITIES_PUBLIC_ADMIN
            - OTHER
          example: "PAYMENT_INSTITUTION"
        servicesProvided:
          type: string
          description: Description of services provided by the business.
          example: "Cross-border payments for small businesses"
        monthlyRevenueInUSD:
          type: string
          pattern: ^\d{1,18}(\.\d{1,2})?$
          description: Monthly revenue in USD, as a non-negative amount with at most 18 integer digits and two decimals. Replaces `annualRevenue`.
          example: "250000"
        monthlyTransactionVolumeInUSD:
          type: string
          description: Expected monthly transaction volume range in USD. Replaces `monthlyTransactionVolume`.
          enum:
            - UP_TO_100K
            - 100K_TO_1M
            - 1M_TO_5M
            - 5M_TO_10M
            - 10M_TO_20M
            - 20M_TO_30M
            - OVER_30M
          example: "1M_TO_5M"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - OPERATING_SERVICE_REVENUE
            - INVESTMENT_RETURNS_CAPITAL_GAINS
            - ASSET_BUSINESS_SALE
            - SHAREHOLDER_EQUITY_RAISE
            - LOAN
            - INTERCOMPANY_TRANSFER
            - GRANT
            - CRYPTOCURRENCY_DIGITAL_ASSETS
            - ROYALTIES_AFFILIATE_INCOME
            - LEGAL_SETTLEMENT_SUCCESSION
            - GAMBLING_REVENUE
            - CHARITABLE_CONTRIBUTIONS
            - OTHER
          example: "OPERATING_SERVICE_REVENUE"
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          minItems: 1
          items:
            type: string
            enum:
              - OWN_ACCOUNTS_INTERCOMPANY
              - SHAREHOLDERS_PARTNERS
              - CUSTOMERS
              - MERCHANTS
              - SUPPLIERS_VENDORS
              - EMPLOYEES
              - CONTRACTORS
              - FINANCIAL_INSTITUTIONS_VASP
              - INVESTMENT_COUNTERPARTIES
              - GOVERNMENT_TAX_AUTHORITIES
              - AFFILIATED_COMPANIES
              - OTHER
          example: ["CUSTOMERS", "SUPPLIERS_VENDORS"]
        isRegulatedActivity:
          type: boolean
          description: Whether the business is involved in regulated activities.
          example: true
        regulatedActivityDetails:
          type: string
          description: Details of the regulated activity. Required when `isRegulatedActivity` is true.
          example: "Licensed payment institution"
      required:
        - type
        - businessActivity
        - servicesProvided
        - monthlyRevenueInUSD
        - monthlyTransactionVolumeInUSD
        - sourceOfFunds
        - transactionCounterparties
        - isRegulatedActivity
    CustomerAdditionalInformationIndividualPrevious:
      title: Individual (previous questionnaire, customers created before October 28, 2026)
      description: Additional information returned for individual customers created before October 28, 2026. The response does not include `phone`, `firstName`, `middleName`, `lastName` or `address`.
      type: object
      properties:
        type:
          type: string
          enum: ["INDIVIDUAL"]
          description: Customer type.
        monthlyVolumeInUSD:
          type: string
          description: Expected monthly volume in USD.
          example: "5000"
        transactionVolumeInUSD:
          type: string
          description: Expected volume per transaction in USD.
          example: "1000"
        jurisdictions:
          type: array
          description: Regions where transactions will occur.
          items:
            type: string
            enum:
              - BRA
              - USA
              - EU
              - CANADA
              - CHINA
              - MEXICO
              - OTHERS
          example: ["BRA", "USA"]
        involvedActivities:
          type: array
          description: Activities involved.
          items:
            type: string
            enum:
              - NONE
              - ADULT_ENTERTAINMENT
              - DRUGS
              - FIREARMS
              - GAMBLING
              - MARIJUANA
              - TUMBLING
          example: ["NONE"]
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          items:
            type: string
            enum:
              - SELF
              - MERCHANTS_SUPPLIERS
              - CUSTOMERS
              - EMPLOYEES
              - CONTRACTORS
              - FRIENDS
              - FAMILY
          example: ["SELF", "MERCHANTS_SUPPLIERS"]
        professionalSituation:
          type: string
          description: Professional situation.
          enum:
            - EMPLOYEE
            - SELF_EMPLOYED
            - UNEMPLOYED
            - RETIRED
            - OTHER
          example: "EMPLOYEE"
        professionalOccupation:
          type: string
          description: Professional occupation description.
          example: "Software Engineer"
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - EMPLOYMENT
            - SAVINGS
            - WINNINGS
            - MARITAL
            - REAL_ESTATE
            - TRUST
            - INVESTMENT
            - OTHER
            - COMPANY
            - COMPANY_CAPITAL
            - LOAN
            - PRIVATE_CAPITAL
            - GRANT
          example: "EMPLOYMENT"
      required:
        - type
        - monthlyVolumeInUSD
        - transactionVolumeInUSD
        - jurisdictions
        - involvedActivities
        - transactionCounterparties
        - professionalSituation
        - professionalOccupation
        - sourceOfFunds
    CustomerAdditionalInformationBusinessPrevious:
      title: Business (previous questionnaire, customers created before October 28, 2026)
      description: Additional information returned for business customers created before October 28, 2026. The response does not include `phone`, `address` or `website`.
      type: object
      properties:
        type:
          type: string
          enum: ["BUSINESS"]
          description: Customer type.
        monthlyVolumeInUSD:
          type: string
          description: Expected monthly volume in USD.
          example: "50000.00"
        transactionVolumeInUSD:
          type: string
          description: Expected volume per transaction in USD.
          example: "10000.00"
        jurisdictions:
          type: array
          description: Regions where transactions will occur.
          items:
            type: string
            enum:
              - BRA
              - USA
              - EU
              - CANADA
              - CHINA
              - MEXICO
              - OTHERS
          example: ["BRA", "USA", "EU"]
        involvedActivities:
          type: array
          description: Activities involved.
          items:
            type: string
            enum:
              - NONE
              - ADULT_ENTERTAINMENT
              - DRUGS
              - FIREARMS
              - GAMBLING
              - MARIJUANA
              - TUMBLING
          example: ["NONE"]
        transactionCounterparties:
          type: array
          description: Transaction counterparties.
          items:
            type: string
            enum:
              - SELF
              - MERCHANTS_SUPPLIERS
              - CUSTOMERS
              - EMPLOYEES
              - CONTRACTORS
              - FRIENDS
              - FAMILY
          example: ["SELF"]
        companyType:
          type: string
          description: Type of company.
          enum:
            - BLOCKCHAIN_SOFTWARE_COMPANY
            - BANK_US
            - BANK_FOREIGN
            - NFT_MARKETPLACE
            - THIRD_PARTY_PAYMENT_PROCESSOR
            - ATM_KIOSK_OPERATOR
            - BROKER_DEALER_OTC_DESK
            - CHARITY_NGO_NON_PROFIT
            - COMMODITIES_FIRMS
            - DEFI_EXCHANGE
            - GOVERNMENT_AGENCY_FOREIGN
            - GOVERNMENT_AGENCY_US
            - FOREIGN_EXCHANGE_MARKET_FX
            - PAYMENT_GATEWAY
            - BANKING_CORRESPONDENT
            - HIGH_NET_WORTH_INDIVIDUALS
            - INSURANCE_COMPANIES
            - INVESTMENT_ADVISOR_ASSET_MANAGER
            - LOAN_OR_FINANCE_COMPANY
            - MINER
            - NON_BANK_CUSTODIANS
            - PENSION_FUNDS
            - WEALTH_HOLDING_VEHICLE
            - POOLED_INVESTMENT_VEHICLE_FUND
            - SPECIAL_PURPOSE_VEHICLE
            - SUPRANATIONAL_BODIES
            - TOKEN_PROJECT
            - TRUST_PERSONAL
            - TRUST_CORPORATE
            - U_S_CRYPTO_MSB
            - FOREIGN_CRYPTO_MSB
            - U_S_NON_CRYPTO_MSB
            - FOREIGN_NON_CRYPTO_MSB
            - WHOLESALE_OF_DURABLE_GOODS
            - WHOLESALE_OF_NON_DURABLE_GOODS
            - RETAILER_OF_DURABLE_GOODS
            - RETAILER_OF_NON_DURABLE_GOODS
            - CONSTRUCTION_OR_SKILLED_TRADE_BUSINESSES
            - PROFESSIONAL_SERVICES
            - OTHER
          example: "BLOCKCHAIN_SOFTWARE_COMPANY"
        annualRevenue:
          type: string
          description: Annual revenue.
          example: "1000000.00"
        monthlyTransactionVolume:
          type: string
          description: Monthly transaction volume.
          example: "100000.00"
        complianceAndAML:
          type: string
          description: Description of compliance and AML policies.
          example: "We have a dedicated compliance team and use third-party AML screening tools."
        isRegulatedActivity:
          type: boolean
          description: Whether the business is involved in regulated activities.
          example: false
        regulatedActivityDetails:
          type: string
          description: Details of regulated activity. Required if isRegulatedActivity is true.
          example: ""
        sourceOfFunds:
          type: string
          description: Source of funds.
          enum:
            - EMPLOYMENT
            - SAVINGS
            - WINNINGS
            - MARITAL
            - REAL_ESTATE
            - TRUST
            - INVESTMENT
            - OTHER
            - COMPANY
            - COMPANY_CAPITAL
            - LOAN
            - PRIVATE_CAPITAL
            - GRANT
          example: "COMPANY"
        servicesProvided:
          type: string
          description: Description of services provided by the business.
          example: "We provide blockchain-based payment infrastructure for B2B cross-border transactions."
      required:
        - type
        - monthlyVolumeInUSD
        - transactionVolumeInUSD
        - jurisdictions
        - involvedActivities
        - transactionCounterparties
        - companyType
        - annualRevenue
        - monthlyTransactionVolume
        - complianceAndAML
        - isRegulatedActivity
        - sourceOfFunds
        - servicesProvided
    Address:
      type: object
      description: Address information.
      properties:
        country:
          type: string
          description: Country code (ISO 3166-1 alpha-3).
          example: "BRA"
        line1:
          type: string
          description: Street address.
          example: "Rua das Flores, 123"
        city:
          type: string
          description: City name.
          example: "São Paulo"
        state:
          type: string
          description: State or province code.
          example: "SP"
        postalCode:
          type: string
          description: Postal or ZIP code.
          example: "01234-567"
      required:
        - country
        - line1
        - city
        - state
        - postalCode
    AssociatedPartyRequest:
      oneOf:
        - $ref: "#/components/schemas/AssociatedPartyIndividualRequest"
        - $ref: "#/components/schemas/AssociatedPartyBusinessRequest"
    AssociatedPartyIndividualRequest:
      title: Individual
      type: object
      properties:
        type:
          type: string
          enum: ["INDIVIDUAL"]
          description: Associated party type. Must be INDIVIDUAL for UBO and REPRESENTATIVE roles.
        roles:
          type: array
          items:
            type: string
            enum:
              - UBO
              - SHAREHOLDER
              - REPRESENTATIVE
          description: Associated party roles. Can have multiple roles (e.g., both UBO and REPRESENTATIVE). UBO and REPRESENTATIVE must be INDIVIDUAL type.
        name:
          type: string
          description: Full name.
          example: "Maria Santos"
        birthDate:
          type: string
          format: date
          description: Birth date (ISO 8601).
          example: "1985-07-10"
        email:
          type: string
          format: email
          description: Email address.
          example: "maria.santos@example.com"
        taxId:
          type: string
          description: Tax ID (CPF for Brazil).
          example: "987.654.321-00"
        address:
          $ref: "#/components/schemas/Address"
        ownershipPercentage:
          type: number
          minimum: 25
          maximum: 100
          description: Ownership percentage. Required for UBO and SHAREHOLDER roles (25-100%).
          example: 40
        monthlyIncomeInUSD:
          type: string
          pattern: ^\d{1,18}(\.\d{1,2})?$
          description: >-
            Monthly income in USD, as a non-negative amount with at most 18 integer digits and two decimals.
            Required for individual associated parties of customers created on or after October 28, 2026.
            Not accepted for associated parties of customers created before that date (returns `400`).
          example: "12000"
        parentId:
          type: string
          format: uuid
          description: Parent associated party ID. Used for multi-level corporate structures, allowing you to nest shareholders across 2, 3, or more levels of ownership hierarchy.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      required:
        - type
        - roles
        - name
        - birthDate
        - email
        - taxId
        - address
    AssociatedPartyBusinessRequest:
      title: Business
      type: object
      properties:
        type:
          type: string
          enum: ["BUSINESS"]
          description: Associated party type. Can only be BUSINESS for SHAREHOLDER role.
        roles:
          type: array
          items:
            type: string
            enum:
              - SHAREHOLDER
          description: Associated party roles. BUSINESS type can only have SHAREHOLDER role.
        legalName:
          type: string
          description: Legal name of the company.
          example: "Investment Fund ABC"
        incorporationDate:
          type: string
          format: date
          description: Incorporation date (ISO 8601).
          example: "2010-05-20"
        email:
          type: string
          format: email
          description: Email address.
          example: "contact@fundabc.com"
        taxId:
          type: string
          description: Tax ID (CNPJ for Brazil).
          example: "99.988.877/0001-66"
        address:
          $ref: "#/components/schemas/Address"
        ownershipPercentage:
          type: number
          minimum: 25
          maximum: 100
          description: Ownership percentage (25-100%).
          example: 25
        parentId:
          type: string
          format: uuid
          description: Parent associated party ID. Used for multi-level corporate structures, allowing you to nest shareholders across 2, 3, or more levels of ownership hierarchy.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      required:
        - type
        - roles
        - legalName
        - incorporationDate
        - email
        - taxId
        - address
        - ownershipPercentage
    AssociatedPartyResponse:
      oneOf:
        - $ref: "#/components/schemas/AssociatedPartyIndividualResponse"
        - $ref: "#/components/schemas/AssociatedPartyBusinessResponse"
    AssociatedPartyIndividualResponse:
      title: Individual
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Associated party's unique identifier.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        type:
          type: string
          enum: ["INDIVIDUAL"]
        roles:
          type: array
          items:
            type: string
            enum:
              - UBO
              - SHAREHOLDER
              - REPRESENTATIVE
        name:
          type: string
          example: "Maria Santos"
        taxId:
          type: string
          example: "987.654.321-00"
        birthDate:
          type: string
          format: date
          example: "1985-07-10"
        email:
          type: string
          format: email
          example: "maria.santos@example.com"
        address:
          $ref: "#/components/schemas/Address"
        ownershipPercentage:
          type: number
          example: 40
        monthlyIncomeInUSD:
          type: string
          description: Monthly income in USD. Only returned when it was sent at creation.
          example: "12000"
        parentId:
          type: string
          format: uuid
          description: Parent associated party ID. Used for multi-level corporate structures, allowing you to nest shareholders across 2, 3, or more levels of ownership hierarchy.
        verification:
          $ref: "#/components/schemas/CustomerVerification"
        createdAt:
          type: string
          format: date-time
          example: "2024-01-15T11:00:00Z"
        updatedAt:
          type: string
          format: date-time
          example: "2024-01-15T11:00:00Z"
    AssociatedPartyBusinessResponse:
      title: Business
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Associated party's unique identifier.
          example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        type:
          type: string
          enum: ["BUSINESS"]
        roles:
          type: array
          items:
            type: string
            enum:
              - SHAREHOLDER
        legalName:
          type: string
          example: "Investment Fund ABC"
        taxId:
          type: string
          example: "99.988.877/0001-66"
        incorporationDate:
          type: string
          format: date
          example: "2010-05-20"
        email:
          type: string
          format: email
          example: "contact@fundabc.com"
        address:
          $ref: "#/components/schemas/Address"
        ownershipPercentage:
          type: number
          example: 25
        parentId:
          type: string
          format: uuid
          description: Parent associated party ID. Used for multi-level corporate structures, allowing you to nest shareholders across 2, 3, or more levels of ownership hierarchy.
        verification:
          $ref: "#/components/schemas/CustomerVerification"
        createdAt:
          type: string
          format: date-time
          example: "2024-01-15T11:00:00Z"
        updatedAt:
          type: string
          format: date-time
          example: "2024-01-15T11:00:00Z"
    ExchangeRateRequest:
      allOf:
        - oneOf:
            - allOf:
                - type: object
                  description: Exchange rate's type is floating.
                  title: Floating
                - $ref: "#/components/schemas/ExchangeRateFloating"
            - allOf:
                - type: object
                  description: Exchange rate's type is locked.
                  title: Locked
                - $ref: "#/components/schemas/ExchangeRateLocked"
    ExchangeRateResponse:
      allOf:
        - oneOf:
            - allOf:
                - type: object
                  description: Exchange rate's type is floating.
                  title: Floating
                  properties:
                    type:
                      type: string
                      description: Exchange rate type.
                      enum: ["FLOATING"]
                      example: "FLOATING"
                    rail:
                      type: string
                      enum: [PIX, SWIFT, SEPA, ACH, FEDWIRE, SPEI, FPS]
                      description: Exchange rate payment rail.
                      example: "PIX"
                    sourceCurrency:
                      type: string
                      description: Exchange rate source currency.
                      example: "BRL"
                    sourceAmount:
                      type: string
                      description: Exchange rate source amount.
                      example: "60000.00"
                    targetCurrency:
                      type: string
                      description: Exchange rate target currency.
                      example: "USDC"
                    targetAmount:
                      type: string
                      description: Exchange rate target amount.
                      example: "10125.727780"
            - allOf:
                - type: object
                  description: Exchange rate's type is locked.
                  title: Locked
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Exchange rate unique identifier.
                      example: "123e4567-e89b-12d3-a456-426614174000"
                    type:
                      type: string
                      description: Exchange rate type.
                      enum: ["LOCKED"]
                      example: "LOCKED"
                    rail:
                      type: string
                      enum: [PIX, SWIFT, SEPA, ACH, FEDWIRE, SPEI, FPS]
                      description: Exchange rate payment rail.
                      example: "PIX"
                    expiresAt:
                      type: string
                      description: Expiration date and time (UTC).
                      example: "2026-05-05T00:00:00Z"
                    sourceCurrency:
                      type: string
                      description: Exchange rate source currency.
                      example: "BRL"
                    sourceAmount:
                      type: string
                      description: Exchange rate source amount.
                      example: "5925.55"
                    targetCurrency:
                      type: string
                      description: Exchange rate target currency.
                      example: "USDC"
                    baseTargetAmount:
                      type: string
                      description: Exchange rate target amount.
                      example: "10000.000000"
                    baseExchangeRate:
                      type: string
                      description: Exchange rate base exchange rate.
                      example: "5.9255"
                    fees:
                      type: object
                      description: Exchange rate fees.
                      properties:
                        lumx:
                          type: object
                          description: Lumx fee.
                          properties:
                            rate:
                              type: string
                              description: Lumx fee rate in basis points.
                              example: "10"
                            flatAmount:
                              type: string
                              description: Lumx fee flat amount.
                              example: "1"
                            totalAmount:
                              type: string
                              description: Lumx fee total amount.
                              example: "100"
                            currency:
                              type: string
                              description: Lumx fee currency.
                              example: "USDC"
                        partner:
                          type: object
                          description: Partner fee.
                          properties:
                            rate:
                              type: string
                              description: Partner fee rate in basis points.
                              example: "10"
                            flatAmount:
                              type: string
                              description: Partner fee flat amount.
                              example: "1"
                            totalAmount:
                              type: string
                              description: Partner fee total amount.
                              example: "100"
                            currency:
                              type: string
                              description: Partner fee currency.
                              example: "USDC"
                        total:
                          type: object
                          description: Total fee.
                          properties:
                            rate:
                              type: string
                              description: Total fee rate in basis points.
                              example: "10"
                            flatAmount:
                              type: string
                              description: Total fee flat amount.
                              example: "1"
                            totalAmount:
                              type: string
                              description: Total fee total amount.
                              example: "100"
                            currency:
                              type: string
                              description: Total fee currency.
                              example: "USDC"
                    finalTargetAmount:
                      type: string
                      description: Exchange rate final target amount.
                      example: "10000.000000"
                    finalExchangeRate:
                      type: string
                      description: Exchange rate final exchange rate.
                      example: "5.9255"
        - type: object
          properties:
            rate:
              type: string
              description: The exchange rate between the currencies.
              example: "5.9255"
    ExchangeRateFloating:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type:
          type: string
          description: Exchange rate type.
          enum: ["FLOATING"]
          example: "FLOATING"
        rail:
          type: string
          enum: [PIX, SWIFT, SEPA, ACH, FEDWIRE, SPEI, FPS]
          description: Exchange rate payment rail.
          example: "PIX"
        sourceCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP, USDC, USDT]
          description: Exchange rate source currency.
          example: "BRL"
        sourceAmount:
          type: string
          description: Exchange rate source amount.
          example: "60000.00"
        targetCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP, USDC, USDT]
          description: Exchange rate target currency.
          example: "USDC"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the exchange rate calculation. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        partnerFeeId:
          type: string
          description: Exchange rate partner fee ID.
          format: uuid
          example: "123e4567-e89b-12d3-a456-426614174004"
      required:
        - customerId
        - type
        - sourceCurrency
        - sourceAmount
        - targetCurrency
        - rail
    ExchangeRateLocked:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type:
          type: string
          description: Exchange rate type.
          enum: ["LOCKED"]
          example: "LOCKED"
        rail:
          type: string
          enum: [PIX, SWIFT, SEPA, ACH, FEDWIRE, SPEI, FPS]
          description: Exchange rate payment rail.
          example: "PIX"
        sourceCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP, USDC, USDT]
          description: Exchange rate source currency.
          example: "BRL"
        sourceAmount:
          type: string
          description: Exchange rate source amount.
          example: "5925.55"
        targetCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP, USDC, USDT]
          description: Exchange rate target currency.
          example: "USDC"
        targetAmount:
          type: string
          description: Exchange rate target amount.
          example: "10000.000000"
        timelock:
          type: string
          description: Exchange rate time lock. Default is 30s.
          enum: [30s, 1m, 5m]
          example: "30s"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the exchange rate calculation. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        partnerFeeId:
          type: string
          description: Exchange rate partner fee ID.
          format: uuid
          example: "123e4567-e89b-12d3-a456-426614174004"
      required:
        - customerId
        - type
        - sourceCurrency
        - targetCurrency
        - rail
    TransactionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Transaction's unique identifier.
          example: "123e4567-e89b-12d3-a456-426614174000"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type:
          type: string
          description: Transaction's type.
          enum: ["ON_RAMP", "OFF_RAMP", "TRANSFER"]
        request:
          type: object
          description: Transaction's request. See examples for more details.
        state:
          type: object
          description: Transaction's current state. See examples for more details.
        metadata:
          type: object
          description: Metadata object attached to the transaction.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2024-03-20T15:30:00Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2024-03-20T15:30:05Z"
    TransactionOnRampRequest:
      allOf:
        - oneOf:
            - allOf:
                - type: object
                  description: On-ramp using floating exchange rate.
                  title: Floating
                - $ref: "#/components/schemas/TransactionOnRampFloating"
            - allOf:
                - type: object
                  description: On-ramp using locked exchange rate.
                  title: Locked
                - $ref: "#/components/schemas/TransactionOnRampLocked"
    TransactionOnRampFloating:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        rail:
          type: string
          enum: [PIX, SWIFT, SEPA, ACH, FEDWIRE, SPEI, FPS]
          description: Exchange rate payment rail.
          example: "PIX"
        sourceCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP]
          description: Transaction's source currency.
          example: "BRL"
        sourceAmount:
          type: string
          description: Transaction's source amount.
          example: "10000.00"
        targetCurrency:
          type: string
          enum: [USDC, USDT]
          description: Transaction's target currency.
          example: "USDC"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: Transaction's purpose. Note that PERSONAL_ACCOUNT can only be used with SELF relationship destinations.
          example: "PERSONAL_ACCOUNT"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the transaction. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        partnerFeeId:
          type: string
          description: Transaction's partner fee ID. If not provided, partner fees will be zero.
          format: uuid
          example: "123e4567-e89b-12d3-a456-426614174004"
        metadata:
          type: object
          description: Optional metadata object to attach to the transaction. Accepts any valid JSON object.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
      required:
        - customerId
        - rail
        - sourceCurrency
        - sourceAmount
        - targetCurrency
        - purpose
    TransactionOnRampLocked:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        exchangeRateId:
          type: string
          format: uuid
          description: Exchange rate ID for this transaction.
          example: "123e4567-e89b-12d3-a456-426614174000"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: Transaction's purpose. Note that PERSONAL_ACCOUNT can only be used with SELF relationship destinations.
          example: "PERSONAL_ACCOUNT"
        metadata:
          type: object
          description: Optional metadata object to attach to the transaction. Accepts any valid JSON object.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
      required:
        - customerId
        - exchangeRateId
        - purpose
    TransactionOnRampResponse:
      oneOf:
        - type: object
          title: Floating
          properties:
            id:
              type: string
              format: uuid
              description: On-ramp operation's unique identifier.
              example: "123e4567-e89b-12d3-a456-426614174000"
            customerId:
              type: string
              format: uuid
              description: Customer's unique identifier.
              example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type:
              type: string
              description: On-ramp operation's type.
              enum: ["ON_RAMP"]
              example: "ON_RAMP"
            request:
              type: object
              properties:
                customerId:
                  type: string
                  format: uuid
                  description: Customer's unique identifier.
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                rail:
                  type: string
                  enum: [PIX, SWIFT, SEPA, ACH, FEDWIRE, SPEI, FPS]
                  description: Exchange rate payment rail.
                  example: "PIX"
                sourceCurrency:
                  type: string
                  description: Transaction's source currency.
                  example: "BRL"
                sourceAmount:
                  type: string
                  description: Transaction's source amount.
                  example: "10000.00"
                targetCurrency:
                  type: string
                  description: Transaction's target currency.
                  example: "USDC"
                purpose:
                  type: string
                  enum:
                    [
                      PAYMENTS_FOR_GOODS_OR_SERVICES,
                      INTER_COMPANY_TRANSFER,
                      INVESTMENTS,
                      PAYROLL,
                      TREASURY_MANAGEMENT,
                    ]
                  description: Transaction's purpose.
                  example: "PERSONAL_ACCOUNT"
            state:
              type: object
              description: On-ramp operation's current state. See examples for more details.
            metadata:
              type: object
              description: Metadata object attached to the transaction.
              additionalProperties: true
              example: { "orderId": "ord_789", "source": "checkout" }
            createdAt:
              type: string
              format: date-time
              description: Creation date and time (UTC).
              example: "2024-03-20T15:30:00Z"
            updatedAt:
              type: string
              format: date-time
              description: Last update date and time (UTC).
              example: "2024-03-20T15:30:05Z"
        - type: object
          title: Locked
          properties:
            id:
              type: string
              format: uuid
              description: On-ramp operation's unique identifier.
              example: "123e4567-e89b-12d3-a456-426614174001"
            customerId:
              type: string
              format: uuid
              description: Customer's unique identifier.
              example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type:
              type: string
              description: On-ramp operation's type.
              enum: ["ON_RAMP"]
              example: "ON_RAMP"
            request:
              type: object
              properties:
                customerId:
                  type: string
                  format: uuid
                  description: Customer's unique identifier.
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                exchangeRateId:
                  type: string
                  format: uuid
                  description: Exchange rate ID for this transaction.
                  example: "123e4567-e89b-12d3-a456-426614174000"
                purpose:
                  type: string
                  enum:
                    [
                      PAYMENTS_FOR_GOODS_OR_SERVICES,
                      INTER_COMPANY_TRANSFER,
                      INVESTMENTS,
                      PAYROLL,
                      TREASURY_MANAGEMENT,
                    ]
                  description: Transaction's purpose.
                  example: "PERSONAL_ACCOUNT"
            state:
              type: object
              description: On-ramp operation's current state. See examples for more details.
            metadata:
              type: object
              description: Metadata object attached to the transaction.
              additionalProperties: true
              example: { "orderId": "ord_789", "source": "checkout" }
            createdAt:
              type: string
              format: date-time
              description: Creation date and time (UTC).
              example: "2024-03-20T15:30:00Z"
            updatedAt:
              type: string
              format: date-time
              description: Last update date and time (UTC).
              example: "2024-03-20T15:30:05Z"
    TransactionOffRampRequest:
      allOf:
        - oneOf:
            - allOf:
                - type: object
                  description: Off-ramp using floating exchange rate.
                  title: Floating
                - $ref: "#/components/schemas/TransactionOffRampFloating"
            - allOf:
                - type: object
                  description: Off-ramp using locked exchange rate.
                  title: Locked
                - $ref: "#/components/schemas/TransactionOffRampLocked"
    TransactionOffRampFloating:
      type: object
      properties:
        destinationId:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        sourceCurrency:
          type: string
          enum: [USDC, USDT]
          description: Transaction's source currency.
          example: "USDC"
        sourceAmount:
          type: string
          description: Transaction's source amount.
          example: "10000.00"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: Transaction's purpose. Note that PERSONAL_ACCOUNT can only be used with SELF relationship destinations.
          example: "PERSONAL_ACCOUNT"
        memo:
          type: string
          description: Transaction's memo. Optional reference for the wire transfer.
          example: "INV-2024-10-1547"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the transaction. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        partnerFeeId:
          type: string
          description: Transaction's partner fee ID. If not provided, partner fees will be zero.
          format: uuid
          example: "123e4567-e89b-12d3-a456-426614174004"
        metadata:
          type: object
          description: Optional metadata object to attach to the transaction. Accepts any valid JSON object.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
      required:
        - destinationId
        - sourceCurrency
        - sourceAmount
        - purpose
    TransactionOffRampLocked:
      type: object
      properties:
        destinationId:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        exchangeRateId:
          type: string
          format: uuid
          description: Exchange Rate's unique identifier.
          example: "123e4567-e89b-12d3-a456-426614174000"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: Transaction's purpose. Note that PERSONAL_ACCOUNT can only be used with SELF relationship destinations.
          example: "PERSONAL_ACCOUNT"
        memo:
          type: string
          description: Transaction's memo. Optional reference for the wire transfer.
          example: "INV-2024-10-1547"
        metadata:
          type: object
          description: Optional metadata object to attach to the transaction. Accepts any valid JSON object.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
      required:
        - destinationId
        - exchangeRateId
        - purpose
    TransactionOffRampResponse:
      oneOf:
        - type: object
          title: Floating
          properties:
            id:
              type: string
              format: uuid
              description: Off-ramp operation's unique identifier.
              example: "123e4567-e89b-12d3-a456-426614174003"
            customerId:
              type: string
              format: uuid
              description: Customer's unique identifier.
              example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type:
              type: string
              description: Off-ramp operation's type.
              enum: ["OFF_RAMP"]
              example: "OFF_RAMP"
            request:
              type: object
              properties:
                customerId:
                  type: string
                  format: uuid
                  description: Customer's unique identifier.
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                destinationId:
                  type: string
                  format: uuid
                  description: Destination's unique identifier.
                  example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
                sourceCurrency:
                  type: string
                  description: Transaction's source currency.
                  example: "USDC"
                sourceAmount:
                  type: string
                  description: Transaction's source amount.
                  example: "1000.00"
                targetCurrency:
                  type: string
                  description: Fiat currency to be received.
                  example: "BRL"
                purpose:
                  type: string
                  enum:
                    [
                      PAYMENTS_FOR_GOODS_OR_SERVICES,
                      INTER_COMPANY_TRANSFER,
                      INVESTMENTS,
                      PAYROLL,
                      TREASURY_MANAGEMENT,
                    ]
                  description: Transaction's purpose.
                  example: "PERSONAL_ACCOUNT"
            state:
              type: object
              description: Off-ramp operation's current state. See examples for more details.
            metadata:
              type: object
              description: Metadata object attached to the transaction.
              additionalProperties: true
              example: { "orderId": "ord_789", "source": "checkout" }
            createdAt:
              type: string
              format: date-time
              description: Creation date and time (UTC).
              example: "2024-03-20T15:30:00Z"
            updatedAt:
              type: string
              format: date-time
              description: Last update date and time (UTC).
              example: "2024-03-20T15:30:05Z"
        - type: object
          title: Locked
          properties:
            id:
              type: string
              format: uuid
              description: Off-ramp operation's unique identifier.
              example: "123e4567-e89b-12d3-a456-426614174004"
            customerId:
              type: string
              format: uuid
              description: Customer's unique identifier.
              example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            type:
              type: string
              description: Off-ramp operation's type.
              enum: ["OFF_RAMP"]
              example: "OFF_RAMP"
            request:
              type: object
              properties:
                customerId:
                  type: string
                  format: uuid
                  description: Customer's unique identifier.
                  example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
                destinationId:
                  type: string
                  format: uuid
                  description: Destination's unique identifier.
                  example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
                exchangeRateId:
                  type: string
                  format: uuid
                  description: Exchange rate ID for this transaction.
                  example: "123e4567-e89b-12d3-a456-426614174000"
                purpose:
                  type: string
                  enum:
                    [
                      PAYMENTS_FOR_GOODS_OR_SERVICES,
                      INTER_COMPANY_TRANSFER,
                      INVESTMENTS,
                      PAYROLL,
                      TREASURY_MANAGEMENT,
                    ]
                  description: Transaction's purpose.
                  example: "PERSONAL_ACCOUNT"
            state:
              type: object
              description: Off-ramp operation's current state. See examples for more details.
            metadata:
              type: object
              description: Metadata object attached to the transaction.
              additionalProperties: true
              example: { "orderId": "ord_789", "source": "checkout" }
            createdAt:
              type: string
              format: date-time
              description: Creation date and time (UTC).
              example: "2024-03-20T15:30:00Z"
            updatedAt:
              type: string
              format: date-time
              description: Last update date and time (UTC).
              example: "2024-03-20T15:30:05Z"
    TransactionTransferRequest:
      type: object
      properties:
        currency:
          type: string
          enum: [USDC, USDT]
          description: Transfer's currency.
          example: "USDC"
        from:
          type: string
          format: uuid
          description: Customer's unique identifier that will send the funds.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        to:
          oneOf:
            - type: string
              format: uuid
              title: customer
              description: Customer's unique identifier that will receive the funds.
              example: "980dc26b-42fd-4044-8a42-2271d20a2eb9"
            - type: string
              format: wallet-address
              title: address
              description: Customer's wallet address that will receive the funds.
              example: "0x1234567890123456789012345678901234567890"
        amount:
          type: string
          description: Transfer's amount.
          example: "10000.000000"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the transaction. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        metadata:
          type: object
          description: Optional metadata object to attach to the transaction. Accepts any valid JSON object.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
      required:
        - currency
        - amount
        - from
        - to
    TransactionTransferResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Transfer operation's unique identifier.
          example: "123e4567-e89b-12d3-a456-426614174000"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "123e4567-e89b-12d3-a456-426614174000"
        type:
          type: string
          description: Transfer operation's type.
          enum: ["TRANSFER"]
          example: "TRANSFER"
        request:
          type: object
          properties:
            currency:
              type: string
              description: Transfer's currency.
              example: "USDC"
            from:
              type: string
              format: uuid
              description: Customer's unique identifier that will send the funds.
              example: "123e4567-e89b-12d3-a456-426614174000"
            to:
              oneOf:
                - type: string
                  format: uuid
                  title: customer
                  description: Customer's unique identifier that will receive the funds.
                  example: "980dc26b-42fd-4044-8a42-2271d20a2eb9"
                - type: string
                  format: wallet-address
                  title: address
                  description: Customer's wallet address that will receive the funds.
                  example: "0x1234567890123456789012345678901234567890"
            amount:
              type: string
              description: Transfer's amount.
              example: "10000.000000"
        state:
          type: object
          description: Transfer operation's current state. See examples for more details.
        metadata:
          type: object
          description: Metadata object attached to the transaction.
          additionalProperties: true
          example: { "orderId": "ord_789", "source": "checkout" }
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2024-03-20T15:30:00Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2024-03-20T15:30:05Z"
    TransactionPaymentRequest:
      allOf:
        - oneOf:
            - allOf:
                - type: object
                  description: Payment using floating exchange rate.
                  title: Floating
                - $ref: "#/components/schemas/TransactionPaymentFloating"
            - allOf:
                - type: object
                  description: Payment using locked exchange rate.
                  title: Locked
                - $ref: "#/components/schemas/TransactionPaymentLocked"
    TransactionPaymentFloating:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier who is sending the funds.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        destinationId:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        sourceCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP]
          description: Source fiat currency to be converted.
          example: "BRL"
        sourceAmount:
          type: string
          description: Source amount in fiat currency.
          example: "10000.00"
        targetCurrency:
          type: string
          enum: [BRL, USD, EUR, MXN, GBP]
          description: Target fiat currency for the payment.
          example: "USD"
        payment:
          type: object
          properties:
            rail:
              type: string
              enum: [PIX, SWIFT, SEPA, SPEI, FPS]
              description: Payment rail for receiving funds.
              example: "PIX"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the transaction. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        partnerFeeId:
          type: string
          description: Transaction's partner fee ID. If not provided, partner fees will be zero.
          format: uuid
          example: "123e4567-e89b-12d3-a456-426614174004"
      required:
        - customerId
        - sourceCurrency
        - sourceAmount
        - targetCurrency
        - payment
        - destinationId
    TransactionPaymentLocked:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier who is sending the funds.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        destinationId:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        exchangeRateId:
          type: string
          format: uuid
          description: Exchange rate unique identifier for this transaction.
          example: "123e4567-e89b-12d3-a456-426614174000"
        partnerFeeId:
          type: string
          description: Transaction's partner fee ID. If not provided, partner fees will be zero.
          format: uuid
          example: "123e4567-e89b-12d3-a456-426614174004"
      required:
        - customerId
        - exchangeRateId
        - destinationId
    TransactionPaymentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Payment operation's unique identifier.
          example: "123e4567-e89b-12d3-a456-426614174005"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        type:
          type: string
          description: Payment operation's type.
          enum: ["PAYMENT"]
          example: "PAYMENT"
        request:
          type: object
          properties:
            sourceCurrency:
              type: string
              description: Source fiat currency.
              example: "BRL"
            sourceAmount:
              type: string
              description: Source amount.
              example: "10000.00"
            targetCurrency:
              type: string
              description: Target fiat currency.
              example: "USD"
            destinationId:
              type: string
              format: uuid
              description: Destination where funds will be sent.
              example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        state:
          type: object
          description: Payment operation's current state. See examples for more details.
    TransactionTimestamps:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
    PartnerFeeRequest:
      type: object
      properties:
        name:
          type: string
          description: Partner fee's name.
          example: "Fee 7"
        walletAddress:
          type: string
          description: Partner's wallet address that will receive the funds.
          example: "0x76b74209f3542d172ca1575b5b18064594360299"
        fees:
          type: object
          description: Partner fee's fees.
          properties:
            onRamp:
              type: object
              properties:
                rate:
                  type: string
                  description: On-ramp fee rate in basis points (bps).
                  example: "10"
                flatAmount:
                  type: string
                  description: On-ramp fee flat amount.
                  example: "1"
            offRamp:
              type: object
              properties:
                rate:
                  type: string
                  description: Off-ramp fee rate in basis points (bps).
                  example: "10"
                flatAmount:
                  type: string
                  description: Off-ramp fee flat amount in dollars.
                  example: "1"
      required:
        - walletAddress
        - name
        - fees
    PartnerFeeResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Partner fee's unique identifier.
          example: "123e4567-e89b-12d3-a456-426614174004"
        name:
          type: string
          description: Partner fee's name.
          example: "Fee name"
        walletAddress:
          type: string
          description: Partner's wallet address that will receive the funds.
          example: "0x76b74209f3542d172ca1575b5b18064594360299"
        fees:
          type: object
          description: Partner fee's fees.
          properties:
            onRamp:
              type: object
              properties:
                rate:
                  type: string
                  description: On-ramp fee rate in basis points (bps).
                  example: "10"
                flatAmount:
                  type: string
                  description: On-ramp fee flat amount in dollars.
                  example: "1"
            offRamp:
              type: object
              properties:
                rate:
                  type: string
                  description: Off-ramp fee rate in basis points (bps).
                  example: "10"
                flatAmount:
                  type: string
                  description: Off-ramp fee flat amount in dollars.
                  example: "1"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2021-01-01T00:00:00Z"
    DestinationAddress:
      type: object
      description: Holder's address.
      properties:
        line1:
          type: string
          description: Address line 1.
          example: "123 Main Street"
        line2:
          type: string
          description: Address line 2.
          example: "Apt 4B"
        city:
          type: string
          description: Address city.
          example: "Frankfurt"
        state:
          type: string
          description: Address state.
          example: "HE"
        postalCode:
          type: string
          description: Address postal code.
          example: "60311"
        country:
          type: string
          description: Address country code (ISO 3166-1 alpha-3).
          example: "DEU"
      required:
        - line1
        - city
        - state
        - postalCode
        - country
    DestinationAddressSepaFps:
      type: object
      description: Address for SEPA and FPS destinations. Only the country is required.
      properties:
        line1:
          type: string
          description: Address line 1.
          example: "123 Main Street"
        line2:
          type: string
          description: Address line 2.
          example: "Apt 4B"
        city:
          type: string
          description: Address city.
          example: "Frankfurt"
        state:
          type: string
          description: Address state.
          example: "HE"
        postalCode:
          type: string
          description: Address postal code.
          example: "60311"
        country:
          type: string
          description: Address country code (ISO 3166-1 alpha-3).
          example: "DEU"
      required:
        - country
    DestinationHolderResponse:
      type: object
      description: Destination's holder.
      properties:
        type:
          type: string
          enum: ["BUSINESS", "INDIVIDUAL"]
          description: Holder's type.
          example: "BUSINESS"
        relationship:
          type: string
          enum:
            [
              "SELF",
              "HOLDING_COMPANY",
              "SUBSIDIARY_COMPANY",
              "BRANCH_OFFICE",
              "BUSINESS_PARTNER",
              "SUPPLIER",
              "CUSTOMER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE",
              "FRIEND",
              "RELATIVE",
              "EMPLOYEE",
            ]
          description: Holder's relationship to customer.
          example: "SELF"
        name:
          type: string
          description: Holder name.
          example: "John Doe"
        address:
          $ref: "#/components/schemas/DestinationAddress"
    DestinationSwiftResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Destination 1"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
        rail:
          type: string
          enum: ["SWIFT"]
          description: Destination's payment rail.
        currency:
          type: string
          enum: ["USD", "EUR"]
          description: Destination's currency.
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            iban:
              type: string
              description: Identifier IBAN.
            accountNumber:
              type: string
              description: Identifier account number.
            bic:
              type: string
              description: Identifier BIC (SWIFT Code).
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddress"
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: [BUSINESS, INDIVIDUAL]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  SELF,
                  HOLDING_COMPANY,
                  SUBSIDIARY_COMPANY,
                  BRANCH_OFFICE,
                  BUSINESS_PARTNER,
                  SUPPLIER,
                  CUSTOMER,
                  CREDITOR,
                  DEBTOR,
                  FRANCHISEE,
                  FRIEND,
                  RELATIVE,
                  EMPLOYEE,
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
            verification:
              type: object
              description: Holder verification information.
              properties:
                status:
                  type: string
                  enum:
                    [
                      "UNDER_VERIFICATION",
                      "APPROVED",
                      "TEMPORARY_REJECTION",
                      "FINAL_REJECTION",
                    ]
                  description: Verification status.
                  example: "APPROVED"
                level:
                  type: string
                  description: Verification level.
                  example: "BASIC"
        intermediary:
          type: object
          description: Intermediary bank information.
          properties:
            name:
              type: string
              description: Intermediary name.
            bic:
              type: string
              description: Intermediary BIC (SWIFT Code).
            country:
              type: string
              enum:
                [
                  "USA",
                  "GBR",
                  "DEU",
                  "FRA",
                  "NLD",
                  "ITA",
                  "ESP",
                  "IRL",
                  "LUX",
                  "BEL",
                  "SGP",
                  "HKG",
                  "JPN",
                  "CHN",
                  "IND",
                  "MYS",
                  "CAN",
                  "PAN",
                  "BHS",
                ]
              description: Intermediary country (ISO 3166-1 alpha-3 code).
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
    DestinationSepaResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Destination 1"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
        rail:
          type: string
          enum: ["SEPA"]
          description: Destination's payment rail.
        currency:
          type: string
          enum: ["EUR"]
          description: Destination's currency.
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            iban:
              type: string
              description: Identifier IBAN.
            bic:
              type: string
              description: Identifier BIC (SWIFT Code).
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: [BUSINESS, INDIVIDUAL]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  SELF,
                  HOLDING_COMPANY,
                  SUBSIDIARY_COMPANY,
                  BRANCH_OFFICE,
                  BUSINESS_PARTNER,
                  SUPPLIER,
                  CUSTOMER,
                  CREDITOR,
                  DEBTOR,
                  FRANCHISEE,
                  FRIEND,
                  RELATIVE,
                  EMPLOYEE,
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              description: Holder's address. Only the country is required.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
            verification:
              type: object
              description: Holder verification information.
              properties:
                status:
                  type: string
                  enum:
                    [
                      "UNDER_VERIFICATION",
                      "APPROVED",
                      "TEMPORARY_REJECTION",
                      "FINAL_REJECTION",
                    ]
                  description: Verification status.
                  example: "APPROVED"
                level:
                  type: string
                  description: Verification level.
                  example: "BASIC"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
    DestinationPixResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "e80d3137-eddd-4791-b9b8-6e36b289f284"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Destination 1"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
        rail:
          type: string
          enum: ["PIX"]
          description: Destination's payment rail.
        currency:
          type: string
          enum: [BRL]
          description: Destination's currency.
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            keyType:
              type: string
              enum: [CPF, CNPJ, EMAIL, PHONE, RANDOM]
              description: Identifier PIX key type.
              example: "CNPJ"
            keyValue:
              type: string
              description: Identifier PIX key value. For phone keys, use E.164 international format starting with + (e.g., +5511987654321).
              example: "123.456.789-00"
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: [BUSINESS, INDIVIDUAL]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  SELF,
                  HOLDING_COMPANY,
                  SUBSIDIARY_COMPANY,
                  BRANCH_OFFICE,
                  BUSINESS_PARTNER,
                  SUPPLIER,
                  CUSTOMER,
                  CREDITOR,
                  DEBTOR,
                  FRANCHISEE,
                  FRIEND,
                  RELATIVE,
                  EMPLOYEE,
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
            verification:
              type: object
              description: Holder verification information.
              properties:
                status:
                  type: string
                  enum:
                    [
                      "UNDER_VERIFICATION",
                      "APPROVED",
                      "TEMPORARY_REJECTION",
                      "FINAL_REJECTION",
                    ]
                  description: Verification status.
                  example: "APPROVED"
                level:
                  type: string
                  description: Verification level.
                  example: "BASIC"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
    DestinationPixRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Destination 1"
        rail:
          type: string
          enum: ["PIX"]
          description: Destination's payment rail.
          example: "PIX"
        currency:
          type: string
          enum: [BRL]
          description: Destination's currency.
          example: "BRL"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            keyType:
              type: string
              enum: [CPF, CNPJ, EMAIL, PHONE, RANDOM]
              description: Identifier PIX key type.
              example: "CNPJ"
            keyValue:
              type: string
              description: Identifier PIX key value. For phone keys, use E.164 international format starting with + (e.g., +5511987654321).
              example: "123.456.789-00"
          required:
            - keyType
            - keyValue
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - relationship
            - taxId
            - address
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
    DestinationSwiftRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Destination 1"
        rail:
          type: string
          enum: ["SWIFT"]
          description: Destination's payment rail.
          example: "SWIFT"
        currency:
          type: string
          enum: ["USD", "EUR"]
          description: Destination's currency.
          example: "USD"
        identifier:
          type: object
          description: Destination's identifier. Must provide either iban or accountNumber, along with bic.
          properties:
            iban:
              type: string
              description: Identifier IBAN. Either iban or accountNumber is required.
              example: "GB82WEST12345698765432"
            accountNumber:
              type: string
              description: Identifier account number. Either iban or accountNumber is required.
              example: "1234567890"
            bic:
              type: string
              description: Identifier BIC (SWIFT Code).
              example: "DEUTDEFF"
          required:
            - bic
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "Deutsche Bank AG"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - name
            - address
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - relationship
            - taxId
            - address
            - type
        intermediary:
          type: object
          description: Intermediary bank information (optional).
          properties:
            name:
              type: string
              description: Intermediary name.
              example: "Chase Bank Frankfurt"
            bic:
              type: string
              description: Intermediary BIC (SWIFT Code).
              example: "CHASDEFX"
            country:
              type: string
              enum:
                [
                  "USA",
                  "GBR",
                  "DEU",
                  "FRA",
                  "NLD",
                  "ITA",
                  "ESP",
                  "IRL",
                  "LUX",
                  "BEL",
                  "SGP",
                  "HKG",
                  "JPN",
                  "CHN",
                  "IND",
                  "MYS",
                  "CAN",
                  "PAN",
                  "BHS",
                ]
              description: Intermediary country (ISO 3166-1 alpha-3 code).
              example: "GBR"
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
        - holder
        - bank
    DestinationSepaRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Destination 1"
        rail:
          type: string
          enum: ["SEPA"]
          description: Destination's payment rail.
          example: "SEPA"
        currency:
          type: string
          enum: ["EUR"]
          description: Destination's currency.
          example: "EUR"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            iban:
              type: string
              description: Identifier IBAN.
              example: "FR1420041010050500013M02606"
            bic:
              type: string
              description: Identifier BIC (SWIFT Code).
              example: "BNPAFRPP"
          required:
            - iban
            - bic
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "BNP Paribas"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
          required:
            - name
            - address
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              description: Holder's address. Only the country is required.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
          required:
            - relationship
            - taxId
            - address
            - type
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
        - holder
        - bank
    DestinationAchRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx US Operations Account"
        rail:
          type: string
          enum: ["ACH"]
          description: Destination's payment rail.
          example: "ACH"
        currency:
          type: string
          enum: ["USD"]
          description: Destination's currency.
          example: "USD"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            type:
              type: string
              enum: ["CHECKING", "SAVINGS"]
              description: Identifier account type.
              example: "CHECKING"
            accountNumber:
              type: string
              description: Identifier account number.
              example: "123456789012"
            routingNumber:
              type: string
              description: Identifier account routing number (ABA routing number).
              example: "021000021"
          required:
            - type
            - accountNumber
            - routingNumber
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "JPMorgan Chase Bank"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - name
            - address
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name.
              example: "Lumx US Inc."
            taxId:
              type: string
              description: Holder's tax ID.
              example: "12-3456789"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-03-15"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "us@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - relationship
            - taxId
            - address
            - type
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
        - holder
        - bank
    DestinationFedwireRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx US Wire Account"
        rail:
          type: string
          enum: ["FEDWIRE"]
          description: Destination's payment rail.
          example: "FEDWIRE"
        currency:
          type: string
          enum: ["USD"]
          description: Destination's currency.
          example: "USD"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            type:
              type: string
              enum: ["CHECKING", "SAVINGS"]
              description: Identifier account type.
              example: "CHECKING"
            accountNumber:
              type: string
              description: Identifier account number.
              example: "123456789012"
            routingNumber:
              type: string
              description: Identifier account routing number (ABA routing number).
              example: "021000021"
          required:
            - type
            - accountNumber
            - routingNumber
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "JPMorgan Chase Bank"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - name
            - address
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name.
              example: "Lumx US Inc."
            taxId:
              type: string
              description: Holder's tax ID.
              example: "12-3456789"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-03-15"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "us@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - relationship
            - taxId
            - address
            - type
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
        - holder
        - bank
    DestinationSpeiRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Mexico Account"
        rail:
          type: string
          enum: ["SPEI"]
          description: Destination's payment rail.
          example: "SPEI"
        currency:
          type: string
          enum: ["MXN"]
          description: Destination's currency.
          example: "MXN"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            clabe:
              type: string
              description: Identifier CLABE (Clave Bancaria Estandarizada) - 18-digit standardized bank account number.
              example: "012180001234567897"
              pattern: "^[0-9]{18}$"
          required:
            - clabe
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx Mexico S.A. de C.V."
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "Juan Default"
            taxId:
              type: string
              description: Holder's tax ID (RFC for Mexico).
              example: "LMX123456789"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2021-06-20"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "mx@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
          required:
            - type
            - taxId
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
        - holder
    DestinationFpsRequest:
      type: object
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx UK Account"
        rail:
          type: string
          enum: ["FPS"]
          description: Destination's payment rail. FPS is the UK Faster Payments Service.
          example: "FPS"
        currency:
          type: string
          enum: ["GBP"]
          description: Destination's currency.
          example: "GBP"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            sortCode:
              type: string
              description: UK sort code, 6 digits. Separators such as "04-05-09" are accepted and stripped.
              example: "040509"
            accountNumber:
              type: string
              description: UK bank account number, 8 digits. Non-digit characters are accepted and stripped.
              example: "00125977"
          required:
            - sortCode
            - accountNumber
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "Mock Bank"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
          required:
            - name
            - address
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx UK Ltd"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "12345678"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2021-06-20"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "uk@lumx.io"
            address:
              description: Holder's address. Only the country is required.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
          required:
            - relationship
            - taxId
            - address
            - type
      required:
        - customerId
        - name
        - rail
        - currency
        - identifier
        - bank
        - holder
    DestinationFpsResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "b83g6460-ggfg-7024-e2eb-9h69e502h517"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx UK Operations Account"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
          example: "EXTERNAL"
        rail:
          type: string
          enum: ["FPS"]
          description: Destination's payment rail.
          example: "FPS"
        currency:
          type: string
          enum: ["GBP"]
          description: Destination's currency.
          example: "GBP"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            sortCode:
              type: string
              description: UK sort code, 6 digits.
              example: "040509"
              pattern: "^[0-9]{6}$"
            accountNumber:
              type: string
              description: UK bank account number, 8 digits.
              example: "00125977"
              pattern: "^[0-9]{8}$"
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "Mock Bank"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
        holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: ["BUSINESS", "INDIVIDUAL"]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  "SELF",
                  "HOLDING_COMPANY",
                  "SUBSIDIARY_COMPANY",
                  "BRANCH_OFFICE",
                  "BUSINESS_PARTNER",
                  "SUPPLIER",
                  "CUSTOMER",
                  "CREDITOR",
                  "DEBTOR",
                  "FRANCHISEE",
                  "FRIEND",
                  "RELATIVE",
                  "EMPLOYEE",
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx UK Ltd"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "12345678"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2021-06-20"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "uk@lumx.io"
            address:
              description: Holder's address. Only the country is required.
              $ref: "#/components/schemas/DestinationAddressSepaFps"
            verification:
              type: object
              description: Holder's verification status.
              properties:
                status:
                  type: string
                  enum: ["UNDER_VERIFICATION", "APPROVED", "REJECTED"]
                  example: "APPROVED"
                level:
                  type: string
                  example: "BASIC"
        createdAt:
          type: string
          format: date-time
          example: "2025-10-16T18:20:30.456Z"
        updatedAt:
          type: string
          format: date-time
          example: "2025-10-16T18:20:30.456Z"
    DestinationAchResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "b82e4359-feed-6913-d1da-9h69e502h517"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx US Operations Account"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
          example: "EXTERNAL"
        rail:
          type: string
          enum: ["ACH"]
          description: Destination's payment rail.
          example: "ACH"
        currency:
          type: string
          enum: ["USD"]
          description: Destination's currency.
          example: "USD"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            type:
              type: string
              enum: ["CHECKING", "SAVINGS"]
              description: Identifier account type.
              example: "CHECKING"
            accountNumber:
              type: string
              description: Identifier account number.
              example: "123456789012"
            routingNumber:
              type: string
              description: Identifier account routing number (ABA routing number).
              example: "021000021"
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "JPMorgan Chase Bank"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddress"
        holder:
          $ref: "#/components/schemas/DestinationHolderResponse"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2025-10-16T16:30:45.123Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2025-10-16T16:30:45.123Z"
    DestinationFedwireResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "c93f5460-gffe-7024-e2eb-0i70f613i628"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx US Wire Account"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
          example: "EXTERNAL"
        rail:
          type: string
          enum: ["FEDWIRE"]
          description: Destination's payment rail.
          example: "FEDWIRE"
        currency:
          type: string
          enum: ["USD"]
          description: Destination's currency.
          example: "USD"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            type:
              type: string
              enum: ["CHECKING", "SAVINGS"]
              description: Identifier account type.
              example: "CHECKING"
            accountNumber:
              type: string
              description: Identifier account number.
              example: "123456789012"
            routingNumber:
              type: string
              description: Identifier account routing number (ABA routing number).
              example: "021000021"
        bank:
          type: object
          description: Bank information.
          properties:
            name:
              type: string
              description: Bank's name.
              example: "JPMorgan Chase Bank"
            address:
              description: Bank's address.
              $ref: "#/components/schemas/DestinationAddress"
        holder:
          $ref: "#/components/schemas/DestinationHolderResponse"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2025-10-16T17:45:00.789Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2025-10-16T17:45:00.789Z"
    DestinationSpeiResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Destination's unique identifier.
          example: "d04g6571-hggf-8135-f3fc-1j81g724j739"
        customerId:
          type: string
          format: uuid
          description: Customer's unique identifier.
          example: "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        name:
          type: string
          description: Destination's display name.
          example: "Lumx Mexico Operations Account"
        type:
          type: string
          enum: ["EXTERNAL"]
          description: Destination's type.
          example: "EXTERNAL"
        rail:
          type: string
          enum: ["SPEI"]
          description: Destination's payment rail.
          example: "SPEI"
        currency:
          type: string
          enum: ["MXN"]
          description: Destination's currency.
          example: "MXN"
        identifier:
          type: object
          description: Destination's identifier.
          properties:
            clabe:
              type: string
              description: Identifier CLABE (Clave Bancaria Estandarizada) - 18-digit standardized bank account number.
              example: "012180001234567897"
              pattern: "^[0-9]{18}$"
        holder:
          holder:
          type: object
          description: Destination's holder.
          properties:
            type:
              type: string
              enum: [BUSINESS, INDIVIDUAL]
              description: Holder's type.
              example: "BUSINESS"
            relationship:
              type: string
              enum:
                [
                  SELF,
                  HOLDING_COMPANY,
                  SUBSIDIARY_COMPANY,
                  BRANCH_OFFICE,
                  BUSINESS_PARTNER,
                  SUPPLIER,
                  CUSTOMER,
                  CREDITOR,
                  DEBTOR,
                  FRANCHISEE,
                  FRIEND,
                  RELATIVE,
                  EMPLOYEE,
                ]
              description: Holder's relationship to customer.
              example: "SELF"
            legalName:
              type: string
              description: Holder's legal name. Required for business holders.
              example: "Lumx S.A"
            name:
              type: string
              description: Holder's full name. Required for individual holders.
              example: "William Default"
            taxId:
              type: string
              description: Holder's tax ID.
              example: "42.887.120/0001-00"
            incorporationDate:
              type: string
              format: date
              description: Holder's incorporation date.
              example: "2020-01-01"
            birthDate:
              type: string
              format: date
              description: Holder's birth date.
              example: "1990-01-01"
            email:
              type: string
              format: email
              description: Holder's email address.
              example: "hello@lumx.io"
            address:
              $ref: "#/components/schemas/DestinationAddress"
            verification:
              type: object
              description: Holder verification information.
              properties:
                status:
                  type: string
                  enum:
                    [
                      "UNDER_VERIFICATION",
                      "APPROVED",
                      "TEMPORARY_REJECTION",
                      "FINAL_REJECTION",
                    ]
                  description: Verification status.
                  example: "APPROVED"
                level:
                  type: string
                  description: Verification level.
                  example: "BASIC"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2025-10-16T18:20:30.456Z"
        updatedAt:
          type: string
          format: date-time
          description: Last update date and time (UTC).
          example: "2025-10-16T18:20:30.456Z"
    AutoconversionRuleRequest:
      type: object
      properties:
        accountId:
          type: string
          format: uuid
          description: Account that receives the deposits. Must belong to your project.
          example: "44dd9734-176a-4ced-924f-103f8d50ea5e"
        targetCurrency:
          type: string
          enum: [USDC, USDT]
          description: Asset to convert deposits into.
          example: "USDC"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: End-use category of the funds.
          example: "INVESTMENT"
        name:
          type: string
          description: A label for the rule, visible only to you.
          example: "BRL → USDC investment"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Target blockchain for the conversions. If not provided, the project's default blockchain will be used.
          example: "POLYGON"
        partnerFeeId:
          type: string
          format: uuid
          description: Partner fee applied to each conversion. Must belong to your project.
          example: "123e4567-e89b-12d3-a456-426614174004"
      required:
        - accountId
        - targetCurrency
        - purpose
        - name
    AutoconversionRuleDepositInfo:
      type: object
      properties:
        rail:
          type: string
          enum: [PIX, SPEI, ACH, FEDWIRE, SWIFT, SEPA, FPS]
          description: Payment rail the deposit details belong to.
          example: "PIX"
        brCode:
          type: string
          description: PIX copy-paste code. Only present for the PIX rail.
          example: "00020126...5204"
        clabe:
          type: string
          description: CLABE to deposit into. Only present for the SPEI rail.
          example: "646180157000000004"
        depositIdentifier:
          type: string
          description: Reference that ties a deposit to the rule. Only present for the PIX rail.
          example: "IIDCDYjYUTbKouEUOyvxZ3xnU"
        reference:
          type: string
          description: Reference that ties a deposit to the rule. Only present for the SPEI rail.
          example: "IIDCDYjYUTbKouEUOyvxZ3xnU"
        accountNumber:
          type: string
          description: Account number to deposit into. Only present for USD rails and the FPS rail.
          example: "8312946570"
        routingNumber:
          type: string
          description: Routing number of the receiving bank. Only present for the ACH and FEDWIRE rails.
          example: "026009593"
        bic:
          type: string
          description: BIC of the receiving bank. Only present for the SWIFT and SEPA rails.
          example: "CLNOUS66"
        iban:
          type: string
          description: IBAN to deposit into. Only present for the SEPA rail.
          example: "GB29NWBK60161331926819"
        sortCode:
          type: string
          description: Sort code of the receiving bank, 6 digits. Only present for the FPS rail.
          example: "040075"
        bankName:
          type: string
          description: Name of the receiving bank. Only present for USD rails.
          example: "Column N.A."
    AutoconversionRuleDetailResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Autoconversion rule's unique identifier.
          example: "c7f64332-5d53-4685-8aa9-48a5348c18c2"
        accountId:
          type: string
          format: uuid
          description: Account that receives the deposits.
          example: "44dd9734-176a-4ced-924f-103f8d50ea5e"
        partnerFeeId:
          type: string
          format: uuid
          nullable: true
          description: Partner fee applied to each conversion. `null` when not set.
          example: "123e4567-e89b-12d3-a456-426614174004"
        status:
          type: string
          enum: [ACTIVE]
          description: Autoconversion rule's status.
          example: "ACTIVE"
        provider:
          type: string
          enum: [STARKBANK, FINTOC, ONE_MONEY, OPENPAYD]
          description: Banking provider that matches the deposits.
          example: "STARKBANK"
        sourceCurrency:
          type: string
          enum: [USD, BRL, EUR, MXN, GBP]
          description: Source currency of the conversions, derived from the account's currency.
          example: "BRL"
        targetCurrency:
          type: string
          enum: [USDC, USDT]
          description: Asset deposits are converted into.
          example: "USDC"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Blockchain the converted asset is delivered on.
          example: "POLYGON"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: End-use category of the funds.
          example: "INVESTMENT"
        sourceDepositInfo:
          type: array
          description: Deposit details to share with the sender, per rail.
          items:
            $ref: "#/components/schemas/AutoconversionRuleDepositInfo"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2026-07-08T23:18:58.574Z"
    AutoconversionRuleListItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Autoconversion rule's unique identifier.
          example: "c7f64332-5d53-4685-8aa9-48a5348c18c2"
        accountId:
          type: string
          format: uuid
          description: Account that receives the deposits.
          example: "44dd9734-176a-4ced-924f-103f8d50ea5e"
        partnerFeeId:
          type: string
          format: uuid
          nullable: true
          description: Partner fee applied to each conversion. `null` when not set.
          example: "123e4567-e89b-12d3-a456-426614174004"
        status:
          type: string
          enum: [ACTIVE]
          description: Autoconversion rule's status.
          example: "ACTIVE"
        provider:
          type: string
          enum: [STARKBANK, FINTOC, ONE_MONEY, OPENPAYD]
          description: Banking provider that matches the deposits.
          example: "STARKBANK"
        sourceCurrency:
          type: string
          enum: [USD, BRL, EUR, MXN, GBP]
          description: Source currency of the conversions, derived from the account's currency.
          example: "BRL"
        targetCurrency:
          type: string
          enum: [USDC, USDT]
          description: Asset deposits are converted into.
          example: "USDC"
        blockchain:
          type: string
          enum: [ETHEREUM, BASE, TRON, POLYGON]
          description: Blockchain the converted asset is delivered on.
          example: "POLYGON"
        purpose:
          type: string
          enum:
            [
              PERSONAL_ACCOUNT,
              INVESTMENT,
              REAL_ESTATE,
              TRADE_TRANSACTIONS,
              TAX,
              LOAN,
              BILLS,
              EXPENSES_REIMBURSEMENT,
              PROFESSIONAL_SERVICES,
            ]
          description: End-use category of the funds.
          example: "INVESTMENT"
        name:
          type: string
          description: A label for the rule, visible only to you.
          example: "BRL → USDC investment"
        createdAt:
          type: string
          format: date-time
          description: Creation date and time (UTC).
          example: "2026-07-08T23:18:58.574Z"
    AutoconversionRuleSimulateDepositRequest:
      type: object
      properties:
        accountId:
          type: string
          format: uuid
          description: Account that receives the simulated deposit.
          example: "44dd9734-176a-4ced-924f-103f8d50ea5e"
        reference:
          type: string
          description: Deposit reference. Use the rule's sourceDepositInfo depositIdentifier (PIX) or reference (SPEI) to match the rule. Omit for USD, EUR, and GBP rules, where deposits are matched to the account.
          example: "IIDCDYjYUTbKouEUOyvxZ3xnU"
        amount:
          type: string
          description: Deposit amount as a numeric string.
          example: "100.00"
      required:
        - accountId
        - amount
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: Bearer authentication header on the format `Bearer <API_KEY>`.
