Skip to main content
POST
https://api.bipa.tech
/
v1
/
pix
/
payouts
curl -X POST https://api.bipa.tech/v1/pix/payouts \
  -H "Authorization: Bearer bipa_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "cus_a1b2c3d4e5f6",
    "amount": "100000",
    "counterparty": {
      "type": "pix_key",
      "pix_key": "[email protected]"
    },
    "description": "Payment for services",
    "idempotency_key": "pay_unique_123"
  }'
{
  "id": "pix_abc123",
  "customer_id": "cus_a1b2c3d4e5f6",
  "direction": "outbound",
  "amount": "100000",
  "fee": "0",
  "decimals": 2,
  "status": "completed",
  "counterparty": {
    "name": "Maria Santos",
    "document": "***456***",
    "pix_key": "[email protected]"
  },
  "description": "Payment for services",
  "end_to_end_id": "E12345678202401151030abcdef123456",
  "idempotency_key": "pay_unique_123",
  "created_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T10:30:02Z"
}

Request

Initiate a Pix payment from a customer’s BRL balance to any Pix key or bank account. We will only process payouts to counterparties that have the same document as the customer. If you want to send a payout to a counterparty with a different document, talk to your account manager.

Body parameters

customer_id
string
required
Customer sending the payment
amount
string
required
Amount in centavos (e.g., "100000" for R$ 1,000.00)
counterparty
object
required
description
string
Payment description (max 140 characters). Visible to recipient.
idempotency_key
string
required
Unique key to prevent duplicate payments. Must be unique per API key.
The customer must have sufficient BRL balance to complete the payment.

Response

id
string
required
Unique payment identifier
customer_id
string
required
Customer who sent the payment
amount
string
required
Payment amount in centavos
fee
string
required
Fee charged in centavos (typically 0 for Pix)
decimals
integer
required
Decimal places (always 2 for BRL)
status
string
required
Payment status
counterparty
object
required
end_to_end_id
string
required
Pix network transaction ID (available after completion)
created_at
string
required
ISO 8601 timestamp
completed_at
string
ISO 8601 completion timestamp
curl -X POST https://api.bipa.tech/v1/pix/payouts \
  -H "Authorization: Bearer bipa_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "cus_a1b2c3d4e5f6",
    "amount": "100000",
    "counterparty": {
      "type": "pix_key",
      "pix_key": "[email protected]"
    },
    "description": "Payment for services",
    "idempotency_key": "pay_unique_123"
  }'
{
  "id": "pix_abc123",
  "customer_id": "cus_a1b2c3d4e5f6",
  "direction": "outbound",
  "amount": "100000",
  "fee": "0",
  "decimals": 2,
  "status": "completed",
  "counterparty": {
    "name": "Maria Santos",
    "document": "***456***",
    "pix_key": "[email protected]"
  },
  "description": "Payment for services",
  "end_to_end_id": "E12345678202401151030abcdef123456",
  "idempotency_key": "pay_unique_123",
  "created_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T10:30:02Z"
}

Idempotency

Always provide a unique idempotency_key to prevent duplicate payments:
# Generate a unique key based on your internal reference
idempotency_key = f"order_{order_id}_payment"

# Or use UUID
idempotency_key = f"pay_{uuid.uuid4()}"
If you retry a request with the same idempotency key:
  • If the original succeeded, you’ll get the original response
  • If the original failed, the payment won’t be retried automatically
Idempotency keys are valid for 24 hours after the first request.