Skip to content

PIX Cash Out por Chave

Realiza uma transferencia PIX utilizando a chave PIX do destinatario.

Endpoint

POST /api/external/pix/cash-out

Headers

HeaderTipoObrigatorioDescricao
AuthorizationStringSimApiKey {client_id}:{client_secret}
Content-TypeStringSimapplication/json
hmacStringSimAssinatura HMAC-SHA512 do body (hex)
Idempotency-KeyStringNaoChave unica para evitar processamento duplicado (max 256 chars)

Autenticacao

Veja Autenticacao. A assinatura HMAC deve ser gerada conforme descrito em HMAC-SHA512.

Request Body

CampoTipoObrigatorioDescricao
amountIntegerSimValor em centavos. R$ 30,00 = 3000
pix_keyStringSimChave PIX do destinatario
pix_key_typeStringNaoTipo da chave: cpf, cnpj, email, phone, evp. Se omitido, detectado automaticamente a partir da chave.
descriptionStringNaoDescricao da transferencia (max 140 caracteres)
external_idStringNaoIdentificador do seu sistema para rastreamento. Max 128 chars. Apenas a-zA-Z0-9._:-. Retornado em respostas e webhooks.

Valores monetarios

Valores de entrada sao em centavos (R$ 1,00 = 100). Valores de resposta sao em unidades base (R$ 1,00 = 10000). Para converter a resposta para reais, divida por 10.000. Nunca use ponto flutuante.

Exemplo

bash
curl -X POST https://api.owem.com.br/api/external/pix/cash-out \
  -H "Authorization: ApiKey $CLIENT_ID:$CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -H "hmac: $HMAC" \
  -d '{
    "amount": 3000,
    "pix_key": "12345678901",
    "pix_key_type": "cpf",
    "description": "Pagamento fornecedor",
    "external_id": "order-9876"
  }'

Resposta de Sucesso -- 200

json
{
  "worked": true,
  "transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
  "end_to_end_id": "E37839059202603091530abcdef01",
  "external_id": "order-9876",
  "amount": 300000,
  "fee_amount": 350,
  "net_amount": 300350,
  "status": "accepted",
  "detail": "PIX enviado para processamento"
}
CampoTipoDescricao
workedBooleantrue indica que a requisicao foi aceita
transaction_idStringIdentificador unico da transacao
end_to_end_idStringIdentificador End-to-End no SPI/BACEN (formato E{ISPB}...)
external_idStringSeu identificador, retornado tal como enviado. null se nao informado
amountIntegerValor da transferencia em unidades base (÷ 10.000 para reais). 300000 = R$ 30,00
fee_amountIntegerTarifa cobrada em unidades base (÷ 10.000 para reais)
net_amountIntegerValor liquido (amount + fee) em unidades base
statusStringaccepted (aceito para processamento) ou completed (liquidado)
detailStringMensagem descritiva

Resposta de Erro -- 400

json
{
  "worked": false,
  "detail": "Chave PIX invalida"
}

Resposta de Erro -- 422

json
{
  "worked": false,
  "detail": "Saldo insuficiente"
}

Tipos de Chave PIX

TipoFormatoExemplo
cpf11 digitos (sem pontuacao)12345678901
cnpj14 digitos (sem pontuacao)12345678000199
emailEndereco de e-mailnome@empresa.com.br
phone+55 + DDD + numero+5511999998888
evpUUID v4a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d

Chaves de 11 digitos — Ambiguidade CPF vs Telefone

Chaves com exatamente 11 digitos podem ser tanto um CPF quanto um telefone celular (DDD + 9xxxx-xxxx). Quando a chave e ambigua, a API retorna o erro pix_key_ambiguous.

Solucao recomendada:

  1. Use o endpoint Validacao CPF (POST /api/external/cpf/validate) para verificar se os 11 digitos formam um CPF valido
  2. Se valid: true → envie pix_key_type: "cpf" no cash-out
  3. Se valid: false → e um telefone, envie pix_key_type: "phone" (a API adiciona automaticamente o prefixo +55)
javascript
// Exemplo de fluxo automatizado
async function resolveKeyType(key) {
  if (key.length !== 11 || /\D/.test(key)) return null; // sem ambiguidade
  
  const { data } = await api.post('/api/external/cpf/validate', { cpf: key });
  return data.valid ? 'cpf' : 'phone';
}

Dica: chaves com formatacao (pontos, tracos) ou com prefixo +55 sao detectadas automaticamente — pix_key_type so e necessario para 11 digitos puros.

Proximos Passos

Apos criar a transferencia, acompanhe o status via:

Ou receba a confirmacao automaticamente via Webhook.

Owem Pay Instituição de Pagamento — ISPB 37839059