> ## 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.

# Get the public tracking link of a transaction

> Returns the shareable public tracking link of any transaction in your read scope, without downloading the receipt PDF — the building block for a "Share link" button in your UI. The `code` is the same HMAC-signed, deterministic code printed as a QR on every receipt, so calling the endpoint twice for the same transaction always returns the same link, and anyone who receives the link can follow the operation on the public tracking page (`GET /v1/public/track/{code}`, Wise-style: timeline, receipt PDF download, three languages). Available to the account itself (API key or member session), to org admins and to platform admins — the same read scope as receipts. A transaction outside your scope (or an unknown `kind`) answers 404, never 403: existence is never leaked.



## OpenAPI

````yaml /openapi.yaml get /v1/track-link
openapi: 3.1.0
info:
  title: CBPay API
  version: '2.62'
  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) — convertible on demand with swaps.
    Payouts and service fees can be paid from any of the four balances
    (`PUT /v1/settlement` or per-payout `settlement_asset`), and payins
    can auto-convert to the asset of your choice (`default_payin_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 (QR, transfers, dedicated accounts, pull collections, cards,
      checkout links) credited automatically — in USDT by default, or
      auto-converted to the settlement asset of your choice.
  - name: Checkout
    description: >-
      Universal checkout links (`POST /v1/payins` with `method: "checkout"`) and
      the public payment-page endpoints — multi-country fiat, crypto with an
      ephemeral wallet per link and direct CBPay payment, settled in the asset
      of your choice.
  - name: Stored cards
    description: >-
      Cards saved with the payer's explicit consent during a 3-D Secure payment
      (COF). List, revoke and charge them on demand (MIT) without asking for the
      card again.
  - name: Subscriptions
    description: >-
      Recurring charges on a stored card managed by the platform scheduler —
      daily, weekly, monthly or yearly, with pause/resume/cancel and automatic
      dunning.
  - name: Transfers
    description: >-
      Free internal transfers between CBPay accounts (person or company, any
      combination).
  - name: Contacts
    description: >-
      Per-account address book of beneficiaries (CBPay, bank and crypto
      destinations) with phone matching and auto-save on every send.
  - name: Swaps
    description: >-
      Instant conversion between the account's USDT, USDC, BTC and GOLD balances
      at the account's quoted rate.
  - 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: Signature proofs
    description: >-
      Cryptographic message signing with wallets (EIP-191 ETH/EVM, TIP-191 TRON)
      — create, list, get and revoke signature proofs with public verification.
  - name: Wallet links
    description: >-
      Link external wallets (custody=client) to your account by signing a nonce
      challenge — create challenges, verify signatures, list and revoke links.
  - 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
    description: >-
      Identity verification: KYC for persons, KYB for companies — your own
      onboarding and third-party verifications for company accounts.
  - name: AML screening
    description: >-
      Standalone AML screening of persons and companies against sanctions, PEP
      and adverse media lists, with rescreening, continuous monitoring and a
      downloadable PDF report.
  - 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: Qscore
    description: >-
      API-first credit bureau. Issues complete credit reports with a 1-999 score
      (bands A-E, or SC when there is no data), reads the latest score of a
      subject and manages ARCO disputes. Chile first, with a country-agnostic
      design. Every issued report carries a public verification code.
  - 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 balance of
      your choice (USDT, USDC, BTC or GOLD), 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.
  - name: Real-time events
    description: >-
      Server-Sent Events stream with everything that happens in the account (or
      across the organization for admins), replay with `Last-Event-ID`, optional
      initial snapshot and a 90-day queryable history.
paths:
  /v1/track-link:
    get:
      tags:
        - Receipts
      summary: Get the public tracking link of a transaction
      description: >-
        Returns the shareable public tracking link of any transaction in your
        read scope, without downloading the receipt PDF — the building block for
        a "Share link" button in your UI. The `code` is the same HMAC-signed,
        deterministic code printed as a QR on every receipt, so calling the
        endpoint twice for the same transaction always returns the same link,
        and anyone who receives the link can follow the operation on the public
        tracking page (`GET /v1/public/track/{code}`, Wise-style: timeline,
        receipt PDF download, three languages). Available to the account itself
        (API key or member session), to org admins and to platform admins — the
        same read scope as receipts. A transaction outside your scope (or an
        unknown `kind`) answers 404, never 403: existence is never leaked.
      operationId: getTrackLink
      parameters:
        - name: kind
          in: query
          required: true
          schema:
            type: string
            enum:
              - payout
              - payin
              - payin_refund
              - transfer
              - crypto_withdrawal
              - crypto_deposit
              - swap
              - card_purchase
              - banking_operation
              - wallet_send
              - wallet_deposit
          description: Transaction family.
        - name: id
          in: query
          required: true
          schema:
            type: string
          description: >-
            Transaction identifier — the same id returned by the product
            endpoints and webhooks of the chosen `kind`.
      responses:
        '200':
          description: The public tracking link and its signed code.
          content:
            application/json:
              example:
                track_url: >-
                  https://business.cbpayapp.com/t/P9b1deb4d3b7d4bad9bdd2b0d7b3dcb6d8f4a2c1e5b7
                code: P9b1deb4d3b7d4bad9bdd2b0d7b3dcb6d8f4a2c1e5b7
        '400':
          description: Missing `kind` or `id`.
          content:
            application/json:
              example:
                error: invalid_payload
                message: kind and id are required
        '404':
          description: >-
            The transaction does not exist, the `kind` is unknown, or it is
            outside your scope (uniform answer — anti-enumeration).
          content:
            application/json:
              example:
                error: not_found
                message: transaction not found
components:
  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.

````