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

# List contacts

> Your account's private contact book, ordered by favorites and last use. Contacts are created automatically by every send (transfer, payout, crypto withdrawal), by manual CRUD or by importing the phone's address book.



## OpenAPI

````yaml /openapi.yaml get /v1/contacts
openapi: 3.1.0
info:
  title: CBPay API
  version: '1.89'
  description: |
    CBPay is a multi-currency payment platform: fiat payouts and collections
    across Latin America, internal transfers, on-chain funding and
    withdrawals, and KYC screening. Every account holds four independent
    virtual balances — USDT (the operating currency), USDC, BTC and GOLD
    (grams of fine gold) — that never mix or convert automatically.
    Payouts and service fees can be paid from any of the four balances:
    set a default with `PUT /v1/settlement` or override per payout with
    `settlement_asset`.

    All amounts are decimal strings in each currency's precision (6 decimals
    for USDT/USDC/GOLD, 8 for BTC). Errors always return
    `{"error": "<code>", "message": "<detail>"}`.
servers:
  - url: https://api.qbank.cl/platform
    description: Live (production, real money)
  - url: https://cryptobank.qbank.cl/platform
    description: Test (sandbox, simulated money — pk_test_ keys)
security:
  - bearerAuth: []
tags:
  - name: Receipts
    description: >-
      Branded PDF receipt per operation, with a public signed-QR authenticity
      check, receipt_url on every response/webhook and automatic email delivery
      on final states.
  - name: Authentication
    description: Register and log in account members. Sessions last 24 hours.
  - name: Account
    description: Profile, members and API keys of the calling account.
  - name: Balances
    description: Balances, movement history and FX rates.
  - name: Payouts
    description: >-
      Fiat dispersals debited from the settlement balance of your choice (USDT
      by default).
  - name: Payins
    description: Fiat top-ups credited to the USDT balance.
  - name: Transfers
  - name: Contacts
  - name: Swaps
    description: >-
      Free internal transfers between CBPay accounts (person or company, any
      combination).
  - name: Crypto
    description: On-chain funding and withdrawals (TRON, Ethereum and Bitcoin).
  - name: Segregated wallets
    description: >-
      On-chain wallets with their own balance (companies unlimited; persons 1
      per network+asset pair) — create, import, send, export the private key and
      auto-forward. The balance lives on-chain, never in the ledger.
  - name: QR Crypto POS
    description: >-
      Amount-bearing crypto QR charges for processors with physical POS
      terminals (company accounts): verified merchants, exclusive address + QR
      per charge, early payment detection, per-merchant reconciliation and
      refunds over the crypto withdrawal rail.
  - name: KYC / KYB
  - name: AML screening
    description: >-
      Identity verification: KYC for persons, KYB for companies, with AML
      screening, rescreening and continuous monitoring.
  - name: Wallet screening
    description: >-
      AML risk assessment of blockchain addresses (sanctions, illicit-fund
      exposure) with a per-scan fee, plus free automatic protection on
      withdrawals and deposits.
  - name: Analytics
  - name: Webhooks
    description: Subscriptions to receive signed event notifications.
  - name: Status
    description: Service availability.
  - name: Banking
    description: >-
      Real bank accounts: receive, hold and send money over international
      banking rails.
  - name: Cards
    description: >-
      Virtual and physical cards that spend Just-In-Time from the account's USDT
      balance, with per-card spending limits.
  - name: Security (OTP)
    description: >-
      One-time verification codes over SMS/WhatsApp/email protecting sensitive
      actions, plus self-service 2FA preferences. Applies to user sessions only
      — API keys are exempt.
  - name: Passkeys
    description: >-
      Passwordless sign-in with the device's biometrics (Face ID, Touch ID,
      Windows Hello, security keys) via WebAuthn, authenticator apps (TOTP) with
      backup codes, and session/device management.
  - name: Social login
    description: >-
      Passwordless sign up and sign in with Google, Apple, Microsoft and
      Facebook via token exchange. The front end obtains the provider
      credential; the API verifies it and issues the CBPay session.
paths:
  /v1/contacts:
    get:
      tags:
        - Contacts
      summary: List contacts
      description: >-
        Your account's private contact book, ordered by favorites and last use.
        Contacts are created automatically by every send (transfer, payout,
        crypto withdrawal), by manual CRUD or by importing the phone's address
        book.
      operationId: listContacts
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - name: q
          in: query
          schema:
            type: string
          description: Search by name, alias, email or phone.
        - name: has_cbpay
          in: query
          schema:
            type: boolean
          description: Only contacts linked (or not) to a CBPay account.
        - name: favorite
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Paged contacts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  page:
                    type: integer
                  page_size:
                    type: integer
                  contacts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact'
              example:
                page: 1
                page_size: 50
                contacts:
                  - contact_id: 3f8a1b2c-4d5e-6f70-8a9b-0c1d2e3f4a5b
                    display_name: Carlos Soto
                    alias: Carlitos
                    phone: '+56987654321'
                    email: carlos@mail.com
                    has_cbpay: true
                    cbpay_account_id: 389d34a3-6c61-4782-b822-95ac173068dc
                    source: import
                    favorite: true
                    created_at: '2026-07-07T12:00:00Z'
                    updated_at: '2026-07-10T15:00:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccountRequired'
components:
  parameters:
    page:
      name: page
      in: query
      schema:
        type: integer
        default: 1
        minimum: 1
    pageSize:
      name: page_size
      in: query
      schema:
        type: integer
        default: 50
        maximum: 200
  schemas:
    Contact:
      type: object
      properties:
        contact_id:
          type: string
          format: uuid
        display_name:
          type: string
        alias:
          type: string
        phone:
          type: string
          description: E.164.
        email:
          type: string
        has_cbpay:
          type: boolean
          description: True when the phone matches an active account of your operator.
        cbpay_account_id:
          type: string
          format: uuid
          description: Linked account (present when has_cbpay is true).
        source:
          type: string
          enum:
            - manual
            - import
            - transfer
            - payout
            - crypto
        favorite:
          type: boolean
        destinations:
          type: array
          description: Present on the detail endpoint.
          items:
            $ref: '#/components/schemas/ContactDestination'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    ContactDestination:
      type: object
      properties:
        destination_id:
          type: string
          format: uuid
        type:
          type: string
          enum:
            - cbpay
            - payout
            - crypto
        country:
          type: string
        currency:
          type: string
        method:
          type: string
        chain:
          type: string
        address:
          type: string
        details:
          type: object
          description: Full payout beneficiary for payout destinations.
        label:
          type: string
        last_used_at:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        error:
          type: string
          description: Machine-readable error code (snake_case).
          example: insufficient_funds
        message:
          type: string
          description: Human-readable explanation.
  responses:
    Unauthorized:
      description: Missing or invalid credential (`unauthorized`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: unauthorized
            message: invalid or missing credentials
    AccountRequired:
      description: This endpoint requires an account credential (`account_required`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: account_required
            message: this endpoint requires an account credential
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        Session JWT (from register/login) or API key (`pk_...`).
        `X-API-Key: <token>` is accepted as an alternative header.

````