Pix
Brazil's instant payment system: QR Code charges with payer lock, payouts to a Pix key or bank account, and native refunds through the same API.
- QR Code
- Pix copy and paste
- Refund
Pix, card, Swift, SEPA and stablecoins with an API, webhooks and a dashboard for MEDs (Pix Special Return Mechanism), chargebacks and the ACAM report to the Central Bank of Brazil.




You enable products for each merchant during onboarding. Money in and money out land on the same Conta PSP statement.
Brazil's instant payment system: QR Code charges with payer lock, payouts to a Pix key or bank account, and native refunds through the same API.
Card collection for the merchant, with chargebacks tracked in the dashboard.
Money in and out by Swift international transfer, with the FX booked in the account.
Receive and send euros within the SEPA zone, settled together with your operation's balance.
Buy and sell USDT and USDC, with TRC20 and ERC20 wallets and automatic balance conversion.
One base URL, key-based authentication and webhook events. Whatever the dashboard does, your platform can do through the API.
View the API docs# Create a Pix charge with payer lock
curl -X POST \
https://sistema.swapone.global
/api/v1/pix/deposit-qr \
-H "Authorization: Bearer
$SWAPONE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 100,
"payerDocument": "45033542800",
"description": "Pedido 2026-000123",
"externalId": "order-2026-000123"
}'
# 200 response
{ "emv": "000201010212...",
"operationId": "a0cddf6b-..." }
// Create a Pix charge with payer lock
const resposta = await fetch("https://sistema.swapone.global/api/v1/pix/deposit-qr", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SWAPONE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
amount: 100,
payerDocument: "45033542800",
description: "Pedido 2026-000123",
externalId: "order-2026-000123",
}),
});
const { emv, operationId } = await resposta.json();
# Create a Pix charge with payer lock
import os, requests
resposta = requests.post(
"https://sistema.swapone.global/api/v1/pix/deposit-qr",
headers={"Authorization": f"Bearer {os.environ['SWAPONE_API_KEY']}"},
json={
"amount": 100,
"payerDocument": "45033542800",
"description": "Pedido 2026-000123",
"externalId": "order-2026-000123",
},
)
cobranca = resposta.json() # emv, operationId
// Create a Pix charge with payer lock
$ch = curl_init('https://sistema.swapone.global/api/v1/pix/deposit-qr');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SWAPONE_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'amount' => 100,
'payerDocument' => '45033542800',
'description' => 'Pedido 2026-000123',
'externalId' => 'order-2026-000123',
]),
]);
$cobranca = json_decode(curl_exec($ch), true); // emv, operationId
"event": "pix_in.credited""externalId": "order-2026-000123""amount": 100"status": "credited"X-SwapOne-Signature · HMAC SHA-256
Create and revoke keys in the dashboard. Each key carries only the scopes it needs: read, Pix, exchange, wallets or settings.
Events such as pix_in.credited and pix_out.completed arrive with an HMAC signature for you to verify before processing.
The full specification is published so you can generate clients and test every call before going to production.
Open the OpenAPI specificationDisputes, limits, beneficiaries and the Central Bank report all live in the same Conta PSP that receives the money.


Every merchant goes through the same four steps, and the status is visible in the dashboard's Applications tab.
Company details, owners and the products the merchant will use.
The compliance team checks the documents and the operating model.
Current statusIf anything is missing, the request appears in the dashboard with what to send.
Once approved, the merchant gets its products enabled and its limits set.
If an application needs anything, a notice appears under Applications with what's still missing.
Review time: to be confirmed
Your operation's money flows through a regulated institution, and API access works only with keys you control.

SwapOne acts as a foreign exchange correspondent (correspondente cambial) of Braza Bank, which is regulated by the Central Bank of Brazil (Banco Central do Brasil).
Registered with FINTRAC, Canada's financial intelligence authority.
Conta PSP transactions are kept organized for the reporting required by the Central Bank.
Every key can be revoked in the dashboard, and every event arrives with an HMAC SHA-256 signature.
The charge's QR Code checks the payer's tax ID before crediting.
We also answer technical questions about the integration through the team's channel.
Companies that process payments, such as PSPs, gateways and sub-acquirers. The account is activated after onboarding and the compliance review.
Still need help? Talk to us
We only provide support through our official channels. We never ask for passwords or codes by message.
Tell us your volume and the products you need. The team replies with your onboarding path and access to the documentation.

$ curl \
https://sistema.swapone.global/api/v1/me
-H "Authorization: Bearer
$SWAPONE_API_KEY"
# 200 OK · valid key