Quickstart

Get a working sandbox payout in under 2 minutes. For an overview of what Borderli Pay Outs does and how it works, see the Overview.

Sandbox credentials
API key: brly_test_key_001 — pre-configured for all sandbox endpoints.

Quick path: single request

The /v1/pay endpoint resolves a QR code and executes the payment in one call. Execution requires payer identity — payer_name, payer_account, and payer_tax_id.

curl -X POST https://apidocs.borderli.io/v1/pay \
  -H "Content-Type: application/json" \
  -H "x-api-key: brly_test_key_001" \
  -H "Idempotency-Key: quickstart-pay-001" \
  -d '{
    "qr_string": "PIX:quickstart_test",
    "payer_name": "Maria Silva",
    "payer_account": "0001234567",
    "payer_tax_id": "12345678909"
  }'

Response:

{
  "transaction": {
    "id": "txn_01J...",
    "instructionId": "ins_01J...",
    "status": "completed",
    "rail": "mock",
    "createdAt": "2026-05-11T10:00:00.000Z",
    "updatedAt": "2026-05-11T10:00:00.000Z"
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Step-by-step: resolve then execute

Use this flow when you need to inspect the payment instruction before executing — for example, to show the user the amount and creditor before confirming.

Step 1: Resolve the QR code

curl -X POST https://apidocs.borderli.io/v1/resolve \
  -H "Content-Type: application/json" \
  -H "x-api-key: brly_test_key_001" \
  -d '{
    "qr_string": "PIX:quickstart_test"
  }'

Response includes the parsed payment instruction:

{
  "instruction": {
    "id": "ins_01J...",
    "amount": 1000,
    "currency": "BRL",
    "creditor": {
      "name": "Padaria do Centro",
      "account": "merchant-pix-key@example.com"
    },
    "scheme": "pix",
    "country": "BR",
    "confidence": 0.95,
    ...
  },
  "request_id": "..."
}

Step 2: Execute the payment

curl -X POST https://apidocs.borderli.io/v1/execute \
  -H "Content-Type: application/json" \
  -H "x-api-key: brly_test_key_001" \
  -H "Idempotency-Key: quickstart-exec-001" \
  -d '{
    "instruction_id": "ins_01J...",
    "payer_name": "Maria Silva",
    "payer_account": "0001234567",
    "payer_tax_id": "12345678909"
  }'

Step 3: Check transaction status

curl https://apidocs.borderli.io/v1/transactions/txn_01J... \
  -H "x-api-key: brly_test_key_001"

With FX conversion

If your wallet uses a different currency than the payment, include wallet_currency to get an automatic FX quote:

curl -X POST https://apidocs.borderli.io/v1/pay \
  -H "Content-Type: application/json" \
  -H "x-api-key: brly_test_key_001" \
  -H "Idempotency-Key: quickstart-fx-001" \
  -d '{
    "qr_string": "PIX:quickstart_test",
    "wallet_currency": "USD",
    "payer_name": "Maria Silva",
    "payer_account": "0001234567",
    "payer_tax_id": "12345678909"
  }'

What's next