1. API Endpoints
Pix2DePix API
  • ⚡ Quickstart
  • Guides
    • 🔑 Authentication
    • 🔄 Possible Statuses
    • 🔀 Synchronous requests & safe retries
    • ⚠️ Errors & the response envelope
    • 🧯 Troubleshooting
    • ✅ Best Practices
    • 🚀 Features
      • ⏱️ QR Delay
    • 🛡️ Security & Limits
      • 🚦 API Limits
      • 🧱 Firewall
      • 🪲 Bug Bounty
    • 🧭 Networks
      • 🌐 Networks and payout addresses
      • 💧 Liquid network guide
      • 📚 Arkade network guide
      • ✨ Spark network guide
  • API Endpoints
    • Ping
      GET
    • Deposit (PIX ➔ DePix)
      POST
    • Deposit Status
      GET
    • Deposits
      GET
    • User Info
      GET
    • Withdraw
      POST
    • Withdraw Status
      GET
  • Webhooks
    • 🪝 Webhooks
    • Deposit Webhook
    • Withdraw Webhook
    • MED Webhook
  • Reference
    • 📖 Glossary
    • 📝 Changelog
  • Schemas
    • JWTClaims
    • ErrorObj
    • PingObj
    • ErrorResponse
    • DepositObj
    • PingResponse
    • DepositResponse
    • DepositStatusObj
    • DepositStatusResponse
    • DepositWebhookBody
    • DepositsResponse
    • DepositStatus
    • UserInfoResponse
    • WithdrawStatusResponse
    • WithdrawStatusObj
    • WithdrawResponse
    • WithdrawObj
    • WithdrawStatus
    • WithdrawWebhookBody
    • MEDWebhookBody
    • RejectionReasons
  1. API Endpoints

Deposit (PIX ➔ DePix)

POST
/deposit
⚠️ Arkade and Spark are in beta. Paying out on the Arkade network (an ark1… address in depixAddress) or on the Spark network (a spark1… address) is live in this endpoint, but still a beta: please do not use them in production yet, and do not test them with substantial amounts. We will announce on the Changelog when they are ready for production use.
The system generates a dynamic QR code designed for deposits in Reais (BRL) through the PIX banking system. The QR code is provided in two formats: text format, which allows for easy copy-and-paste into banking applications, and PNG format, displaying a scannable QR code image for convenience.
When a deposit is successfully made using the generated QR code, our system automatically processes the transaction, converting the deposited amount into DePix. The converted DePix can then be sent to a default partner address or to a custom address specified as a parameter during the QR code generation.
The payout address, whether the one sent in depixAddress or your configured default, can be a Liquid address (lq1…, ex1…), an Arkade address (ark1…) or a Spark address (spark1…). The network the DePix is paid out on is read from the address itself; no parameter names a network. An address on none of the three is refused at QR creation with messageCode DEPOSIT_ADDRESS_NETWORK_UNKNOWN. When the wallet of that network is unavailable at that moment the QR is refused with NETWORK_WALLET_UNAVAILABLE: that one is transient, so retry later. Networks and payout addresses gathers the three networks, what each one costs and every message code.

Amounts, split, and what is actually credited#

The value in amountInCents is what the payer pays in Reais. It is not what arrives in DePix.
The minimum is the fixed deposit fee charged on the network, not the minimum: 1 in the schema. Below it the request is rejected with The amount provided is below the minimum of <fee>, and the message names the fee in force. When splitFee is used, this check runs on amountInCents minus the split portion.
The ceiling that binds in practice is the payer's daily limit, not the maximum in the schema. Read maxDailyInCents and dailyVolumeInCents from GET /api/user-info with the payer's euid before sending a large amount.
When splitFee is used, the split is taken from amountInCents first, and the deposit fee is charged on what remains. depixSplitAddress receives its full portion, and the fee comes out of what goes to depixAddress.
On top of the 20% limit on splitFee itself, a further ceiling limits the split against what is left after the split and the fee. A percentage inside the accepted range can still be refused on a small deposit, with The split portion exceeds the maximum allowed for this amount. Increase the deposit amount or reduce the split percentage. Raising amountInCents or lowering splitFee clears it.
No field reports the fee or the net. valueInCents, on GET /api/deposit-status and on the deposit webhook, is always the gross Reais paid. The DePix credited to depixAddress is amountInCents minus the split portion minus the deposit fee charged on that remainder.

Request

Authorization
Body Params application/json

Example
{
    "amountInCents": 15000,
    "depixAddress": "lq1qqtkuz7nwp3cymteg0px5pcltrm26uvsak32t04fawfsacafutjg22fhvc8xhj0ue96cevuatnmt757rf4z2r5cwntsemgngcr",
    "endUserFullName": "Maria Silva Souza",
    "endUserTaxNumber": "12345678909",
    "depixSplitAddress": "ex1qymkvrnte87vjavvkww4ea4l20p5639p6926dlv",
    "splitFee": "2.99%",
    "delayDepixInHours": 24
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://depix.eulen.app/api/deposit' \
--header 'Content-Type: application/json' \
--data '{
    "amountInCents": 15000,
    "depixAddress": "lq1qqtkuz7nwp3cymteg0px5pcltrm26uvsak32t04fawfsacafutjg22fhvc8xhj0ue96cevuatnmt757rf4z2r5cwntsemgngcr",
    "endUserFullName": "Maria Silva Souza",
    "endUserTaxNumber": "12345678909",
    "depixSplitAddress": "ex1qymkvrnte87vjavvkww4ea4l20p5639p6926dlv",
    "splitFee": "2.99%",
    "delayDepixInHours": 24
}'

Responses

🟢200Success
application/json
Headers

Bodyapplication/json

Example
{
    "response": {
        "qrCopyPaste": "00020101021226790014br.gov.bcb.pix2557qr.exemplo.com.br/pix/v2/019b76daa8007000000000000000000d5204000053039865802BR5925EXEMPLO SOLUCOES EM TECNO6009SAO PAULO62070503***630456C6",
        "qrImageUrl": "https://resources.eulen.app/qr/pix/019b76daa8007000000000000000000d",
        "id": "019b76daa8007000000000000000000d",
        "delayInHours": 24
    },
    "async": false
}
🟠400Malformed request
🟠401Not authenticated
🟠403Not allowed
🟠413Body too large
🟠422Compliance denial
🟠429Rate limited
🔴500Internal error
🔴502Bad upstream reply
🔴503Unavailable
🔴520Rejection
Modified at 2026-09-17 11:59:25
Previous
Ping
Next
Deposit Status
Built with