Skip to main content

Solicitar Transação

Utilize este endpoint para criar transações para vendas de produtos físicos ou digitais.

Ambientes Disponíveis

https://api.unoip.com.br

Endpoint

  • Método: POST
  • Endpoint: /transaction
  • Autenticação: Bearer token

Request Body

⚠️ Importante: Valores em Centavos

Todos os valores monetários (amount, unitPrice) devem ser enviados em centavos como números inteiros.

Exemplos:

  • R$ 10,00 = 1000
  • R$ 99,99 = 9999
  • R$ 100,50 = 10050

NÃO use: 99.99, 10.00, valores negativos USE: 9999, 1000 (sempre inteiros)

NomeTipoObrigatórioDescriçãoValidações
amountnumberSimValor da transação (inteiro em centavos)Deve ser inteiro em centavos; mínimo 1 (R$ 0,01) e máximo 10000000 (R$ 100.000,00)
paymentMethodstring (enum) - PIXSimMétodo de pagamentoDeve ser um enum válido
webhookUrlstring (URL)NãoURL HTTPS para receber notificaçõesDeve ser URL válida com https obrigatório; sem fragmento (#); host e TLD obrigatórios; query permitida
externalCodestringNãoSeu código de referênciaDeve ter entre 8 e 255 caracteres
idempotencyKeystringNãoIdentificador único para evitar duplicaçõesDeve ter entre 8 e 255 caracteres
customerobjectNãoDados do cliente (ver Sub-Objeto Customer)
sellerobjectNãoDados do vendedor (ver Sub-Objeto Seller)
isInfoProductboolean (Default: true)NãoFlag para produtos digitais ou físicos
addressobjectSim (se isInfoProduct for false)Endereço do cliente (ver Sub-Objeto Address)
itemsobject[]NãoLista de produtos (ver Sub-Objeto Item)
metadataobjectNãoMetadados
pixobjectSim (se paymentMethod for PIX)Dados do PIX (ver Sub-Objeto Pix)

Sub-Objetos

Customer

CampoTipoObrigatórioDescriçãoValidações
ipstringNãoIPDeve ser IPv4 ou IPv6 válido
namestringSimNomeDeve ser alphanumerico internacional
documentstringSimDocumentoDeve ser CPF ou CNPJ válido
emailobjectSimE-mailDeve possuir formato de email válido
landlineobjectNãoTelefone fixoDeve possuir formato de telefone fixo válido
mobilePhoneobjectNãoTelefone celularDeve possuir formato de telefone celular válido
birthdateobjectNãoData de aniversárioDeve ser ISO date string sem horário

Seller

CampoTipoObrigatórioDescriçãoValidações
namestringSimNomeDeve ser alphanumerico internacional
documentstringSimDocumentoDeve ser CPF ou CNPJ válido

Address

CampoTipoObrigatórioDescriçãoValidações
zipCodestringSimCEP do BrasilDeve possuir formato de CEP válido
complementstringNãoInformações adicionaisDeve ter entre 2 e 150 caracteres
numberstringSimNúmero da casaDeve ter entre 1 e 10 caracteres de apenas inteiros
streetstringSimNome da ruaDeve ter entre 2 e 200 caracteres
neighborhoodstringSimNome do bairroDeve ter entre 2 e 100 caracteres
citystringSimNome da cidadeDeve ter entre 2 e 100 caracteres
statestringSimNome ou Sigla do estadoDeve ter entre 2 e 50 caracteres
countrystringSimNome do paísDeve ter entre 2 e 60 caracteres

Item

CampoTipoObrigatórioDescriçãoValidações
titlestringSimTítuloDeve ter entre 2 e 150 caracteres
descriptionstringNãoInformações adicionaisDeve ter entre 2 e 255 caracteres
unitPricenumberSimValor do item (inteiro em centavos)Deve ser inteiro em centavos; mínimo 1 (R$ 0,01) e máximo 10000000 (R$ 100.000,00)
quantitynumber (Default: 1)NãoQuantidade deste itemDeve ser inteiro; mínimo 1; máximo 100

Pix

CampoTipoObrigatórioDescriçãoValidações
expirationSecondsnumber (Default: 1800 (30 minutes))NãoTempo para expiração do QRCode do PIX em segundosDeve ser inteiro; mínimo 60; máximo 86400

Exemplo de Requisição

curl --request POST \
--url https://api.unoip.com.br/transaction \
--header 'Authorization: Bearer seu-token-jwt' \
--header 'Content-Type: application/json' \
--data '{
"amount": 500,
"paymentMethod": "PIX",
"webhookUrl": "https://sua-api.com/webhooks/transaction",
"externalCode": "TRANSACTION-123",
"idempotencyKey": "unique-key-12345",
"customer": {
"ip": "123.123.123.123",
"name": "Customer",
"document": "123.123.123-12",
"email": "customer@gmail.com",
"landline": "(12) 12345-1234",
"mobilePhone": "(12) 12345-1234"
},
"seller": {
"name": "Seller",
"document": "123.123.123-12"
},
"isInfoProduct": false,
"address": {
"zipCode": "54753-800",
"number": "155",
"street": "Rua Santa Mariana",
"neighborhood": "São Pedro",
"city": "Camaragibe",
"state": "Pernambuco",
"country": "Brazil",
"complement": "Casa Azul"
},
"items": [
{
"title": "Fone Bluetooth PulseWave X200",
"unitPrice": 500,
"quantity": 1,
"description": "Fone de ouvido sem fio com cancelamento ativo de ruído, bateria de 30h e microfone embutido. Compatível com Android e iOS."
}
],
"metadata": {
"moeda": "BRL",
"autorizacao": "A1B2C3",
"status": "aprovada"
},
"pix": {
"expirationSeconds": 600
}
}'

Resposta de Sucesso

CampoTipoObrigatórioDescrição
idstring (UUID)SimIdentificador único da transação
externalCodestringNãoSeu código de referência
amountnumberSimValor da transação (inteiro em centavos)
typestring (enum) - TRANSACTIONSim
statusstring (enum) - PIX_QRCODE_GENERATEDSim
  • PIX_QRCODE_GENERATED: QRCode Gerado, aguardando pagamento
pixResponseobjectSim (se paymentMethod for PIX)Dados do PIX (ver Sub-Objeto PixResponse)

Sub-Objetos

PixResponse

CampoTipoObrigatórioDescrição
uristringSimCopia e cola do QRCode
qrCodeBase64stringSimImagem do QRCode
expirationDatestringSimData de expiração do QRCode

Exemplo de Resposta

{
"id": "553e8400-e29b-41d4-a716-436251480000",
"externalCode": "TRANSACTION-123",
"amount": 500,
"status": "PIX_QRCODE_GENERATED",
"pixResponse": {
"uri": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000",
"qrCodeBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"expirationDate": "2026-03-06T12:49:04.681Z"
}
}

Possíveis Erros

CódigoDescriçãoSolução
401Credenciais inválidasVerifique suas credenciais
403Sem permissão/autorizaçãoContate o suporte
422Dados inválidos ou faltandoVerifique o formato dos dados
422ValidaçõesContate o suporte
429Muitas requisiçõesAguarde e tente novamente
500Erro internoContate o suporte