OxusAPI

Quickstart

Uma remessa Brasil → EUA no sandbox, em cinco chamadas.

A Maria, cliente do parceiro em São Paulo, envia R$ 10.000,00 para o irmão, Carlos, que tem conta no Chase Bank, em Miami.

Defina a URL do sandbox e a chave de demonstração:

export OXUS_API=https://developers.oxuspay.io/api/sandbox
export OXUS_API_KEY=oxk_sandbox_parceirodemo2026

Cadastre o cliente

Só dados cadastrais. Nenhum documento.

curl -X POST $OXUS_API/v1/customers \
  -H "Authorization: Bearer $OXUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "cliente-000184233",
    "type": "INDIVIDUAL",
    "name": "Maria Oliveira",
    "email": "maria.oliveira@exemplo.com.br",
    "taxId": { "type": "CPF", "value": "12345678909" },
    "dateOfBirth": "1988-04-17",
    "nationality": "BRA",
    "address": {
      "street": "Av. Paulista", "number": "1000", "city": "São Paulo",
      "state": "SP", "postalCode": "01310-100", "country": "BRA"
    }
  }'

A resposta traz o id (cus_…) e o status PENDING_KYC_ATTESTATION.

Envie a atestação KYC

O parceiro declara que fez o KYC e envia o dossiê cifrado. Veja como gerar esse payload em Cofre e auditoria.

curl -X POST $OXUS_API/v1/customers/cus_8f2a91c04d7e/kyc-attestations \
  -H "Authorization: Bearer $OXUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "level": "STANDARD",
    "verifiedAt": "2026-09-30T18:44:00Z",
    "riskRating": "LOW",
    "politicallyExposedPerson": false,
    "sanctionsScreening": { "status": "CLEAR", "screenedAt": "2026-10-07T14:01:58Z", "lists": ["OFAC", "UN", "COAF"] },
    "dossier": {
      "algorithm": "AES-256-GCM",
      "ciphertext": "q8Vt0m2wq3rA9W1fZ0p8xQ==",
      "iv": "b3JhbmRvbW5vbmNl",
      "authTag": "dGFnMTIz",
      "sha256": "9b74c9897bac770ffc029102a200c5de6e2c1c3e1e0c7a3a1f3b2e4d5c6a7b8f",
      "dataKeyReference": "kms://parceiro/kyc-dek/cliente-000184233/v1"
    },
    "signature": {
      "algorithm": "Ed25519",
      "keyId": "parceiro-kyc-2026",
      "value": "9U+0D72+hSuLRjmUov/isB9wDPns9I/CrIz9o/JAe6kSYkVFVzELrGPK/E4xrt8KbshyC6yRp6znS6wW06/DQw=="
    }
  }'

O cliente passa a ACTIVE.

Cadastre a conta de destino

curl -X POST $OXUS_API/v1/customers/cus_8f2a91c04d7e/receivers \
  -H "Authorization: Bearer $OXUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "rail": "ACH",
    "currency": "USD",
    "holder": { "type": "INDIVIDUAL", "name": "Carlos Oliveira", "relationship": "FAMILY", "country": "USA" },
    "details": {
      "bankName": "Chase Bank",
      "routingNumber": "021000021",
      "accountNumber": "000123456789",
      "accountType": "CHECKING"
    }
  }'

Cote

curl -X POST $OXUS_API/v1/quotes \
  -H "Authorization: Bearer $OXUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cus_8f2a91c04d7e",
    "receiverId": "rcv_AHShHbju",
    "paymentMethod": "PIX",
    "sourceCurrency": "BRL",
    "amount": 1000000,
    "amountType": "SOURCE"
  }'
Resposta (resumida)
{
  "id": "quo_jyqRwE1-AHShHbjuAAAAAAAPQkBqxmlC",
  "sourceAmount": 1000000,
  "destinationAmount": 182765,
  "exchangeRate": "0.184020",
  "effectiveRate": "0.182765",
  "fees": { "oxusFee": 6000, "payoutFee": 816, "total": 6816, "currency": "BRL" },
  "routing": { "evaluatedRoutes": 5, "estimatedDelivery": "SAME_DAY" },
  "expiresAt": "2026-10-07T15:51:10.000Z"
}

O Carlos recebe US$ 1.827,65. A cotação vale por 5 minutos.

Crie a transferência

Gere uma Idempotency-Key por operação. Se a rede falhar, repita com a mesma chave.

curl -X POST $OXUS_API/v1/transfers \
  -H "Authorization: Bearer $OXUS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "quoteId": "quo_jyqRwE1-AHShHbjuAAAAAAAPQkBqxmlC",
    "purpose": "FAMILY_SUPPORT",
    "externalReference": "CAMBIO-2026-000981"
  }'

A resposta traz o PIX copia e cola em paymentInstructions. O parceiro debita a conta da Maria e paga esse PIX.

Acompanhe

curl $OXUS_API/v1/transfers/trf_… -H "Authorization: Bearer $OXUS_API_KEY"

No sandbox, a transferência termina em cerca de 45 segundos. Em produção, cada etapa chega por webhook.

IDs de exemplo

Os IDs desta página funcionam no sandbox. A cotação de exemplo não expira, para você testar direto na Referência da API.

Nesta página