Skip to content

💳 Pagamentos de Pedido

📋 Visão Geral

O módulo de Pagamentos de Pedido expõe os endpoints utilizados para consultar, capturar e cancelar pagamentos vinculados a pedidos da plataforma.

As operações permitem gerenciar o ciclo de vida do pagamento após a criação do pedido — desde a consulta do status atual na operadora até a captura ou cancelamento manual.

🔄 Entidades Envolvidas

Cada pagamento de pedido (OrderPayment) está associado a um grupo de pedido e a uma integração de pagamento.

Os Logs de Pagamento (PaymentLog) registram erros e eventos gerados durante as operações, úteis para diagnóstico e auditoria de transações com falha.

🏦 Depósito Interno (internal-deposit)

Pagamentos do tipo depósito interno representam transferências bancárias manuais. Ao criar um pedido com esta modalidade, o campo internalDepositBank é preenchido com os dados da conta bancária selecionada pelo cliente no checkout:

CampoDescrição
nameNome do titular da conta
bankNameNome do banco
bankNúmero/código do banco
agencyAgência bancária
accountNúmero da conta
operationOperação da conta
documentDocumento do titular
As contas disponíveis para seleção são configuradas na opção de pagamento via bank-account-map.

📌 Notas e Considerações

  • As operações de captura, cancelamento e consulta aceitam até 100 pagamentos por requisição.
  • Operações de leitura exigem o escopo TRANSACTIONS_READ; captura, cancelamento e consulta de atualização exigem também ORDER_WRITE.
  • Logs de erro exigem adicionalmente o escopo PAYMENT_ERROR_READ.
  • Pagamentos internal-deposit não transitam pela operadora externa — o campo internalDepositBank substitui os dados de PIX, boleto e cartão.

📋 Listagem de Pagamentos de Pedido

GET /orders/payments

Lista os pagamentos de pedidos da plataforma com suporte a filtros, ordenação e paginação

📋 Descrição

Endpoint responsável por listar os pagamentos de pedidos registrados na plataforma, retornando dados completos de cada transação — incluindo tipo de pagamento, status atual, dados da opção de pagamento e o grupo de pedido vinculado.

Cada registro representa um OrderPayment — a transação financeira associada a um pedido. Um grupo pode ter múltiplos pagamentos em cenários de reprocessamento, parcelamento ou múltiplos meios.

Os campos retornados variam conforme o tipo de pagamento:

  • PIX — pixQrCode, pixEmv e paymentExpirationDate são preenchidos; campos de boleto, cartão e depósito ficam null
  • Boleto — billetBarCode, billetDigitableLine e billetUrl são preenchidos; PIX, cartão e depósito ficam null
  • Cartão — cardMasked, cardFlag, cardExpiration e cardAutomaticCapture são preenchidos; PIX, boleto e depósito ficam null
  • Depósito Interno — internalDepositBank é preenchido com os dados da conta bancária selecionada; demais campos específicos ficam null
  • 🔐 Permissão

  • UserAuth — autenticação do usuário administrativo
  • TRANSACTIONS_READ — escopo de permissão para leitura de transações financeiras e pagamentos

📝 Parâmetros

🏷️ Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {token}Token de autenticação do usuário

💡 Exemplo de Requisição

1curl --request GET \
2 --url '{{MAIN_URL}}/orders/payments' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "registers": [
5 {
6 "id": 1,
7 "orderGroupId": 1,
8 "orderId": 1,
9 "customerCardId": null,
10 "paymentType": "internal-deposit",
11 "paymentProof": "",
12 "paymentExpirationDate": null,
13 "paymentOptionId": 1,
14 "parentPaymentOptionId": null,
15 "paymentOptionLabel": "Depósito Bancário",
16 "paymentOptionDetail": "Transferência ou depósito bancário",
17 "integrationName": "Internal",
18 "transactionId": "uappi-1234567890-abc123",
19 "currentStatus": "waiting-payment",
20 "paymentAntiFraudId": null,
21 "paymentAntiFraudCredentialId": null,
22 "antiFraudStatus": null,
23 "pixQrCode": null,
24 "pixEmv": null,
25 "billetBarCode": null,
26 "billetDigitableLine": null,
27 "billetUrl": null,
28 "cardAutomaticCapture": false,
29 "cardMasked": null,
30 "cardFlag": null,
31 "cardExpiration": null,
32 "internalDepositBank": {
33 "name": "Razão Social da Empresa LTDA",
34 "bankName": "Itaú Unibanco",
35 "bank": "341",
36 "agency": "0001",
37 "account": "12345-6",
38 "operation": "",
39 "document": "00.000.000/0001-00"
40 },
41 "value": 160,
42 "installment": null,
43 "installmentValue": 0,
44 "fee": 0,
45 "orderGroup": {
46 "id": 1,
47 "code": "2353d908-0000-0000-0000-000000000000",
48 "subtotalValue": 150,
49 "additionValue": 0,
50 "shippingValue": 10,
51 "discountValue": 0,
52 "totalValue": 160
53 },
54 "logs": []
55 }
56 ],
57 "pagination": {
58 "limit": 10,
59 "offset": 0,
60 "pages": 1,
61 "registers": 1
62 }
63 }
64}

📊 Campos da Resposta

CampoDescrição
idID do pagamento
orderGroupIdID do grupo de pedido vinculado
orderIdID da remessa (pedido) vinculada
customerCardIdID do cartão salvo do cliente
paymentTypeTipo de pagamento — pix, boleto, credit-card, debit-card, internal-deposit
paymentProofComprovante de pagamento
paymentExpirationDateData de expiração — preenchida para PIX e boleto
paymentOptionIdID da opção de pagamento configurada
parentPaymentOptionIdID da opção pai (para sub-opções)
paymentOptionLabelNome da opção exibida ao cliente — ex: PIX, Boleto Bancário
paymentOptionDetailDetalhe da opção — ex: Pagamento instantâneo via PIX
integrationNameNome da integração de pagamento utilizada
transactionIdID da transação retornado pela operadora
currentStatusStatus atual do pagamento — ex: waiting-payment, approved, cancelled
paymentAntiFraudIdID da análise antifraude vinculada
paymentAntiFraudCredentialIdID da credencial antifraude utilizada
antiFraudStatusStatus da análise antifraude — ex: approved, review, rejected
pixQrCodeQR Code PIX em formato texto — apenas para paymentType: pix
pixEmvCódigo EMV do PIX — apenas para paymentType: pix
billetBarCodeCódigo de barras do boleto — apenas para paymentType: boleto
billetDigitableLineLinha digitável do boleto — apenas para paymentType: boleto
billetUrlURL para visualização do boleto — apenas para paymentType: boleto
cardAutomaticCaptureSe a captura do cartão é automática
cardMaskedNúmero mascarado do cartão — ex: 5678 — apenas para cartão
cardFlagBandeira do cartão — ex: visa, mastercard — apenas para cartão
cardExpirationData de expiração do cartão — apenas para cartão
internalDepositBankDados da conta bancária selecionada — apenas para paymentType: internal-deposit
internalDepositBank.nameNome do titular da conta
internalDepositBank.bankNameNome do banco
internalDepositBank.bankNúmero/código do banco
internalDepositBank.agencyAgência bancária
internalDepositBank.accountNúmero da conta
internalDepositBank.operationOperação da conta
internalDepositBank.documentDocumento do titular
valueValor total do pagamento
installmentNúmero de parcelas — null para pagamentos à vista
installmentValueValor por parcela
feeTaxa aplicada ao pagamento
orderGroupDados resumidos do grupo de pedido vinculado
orderGroup.idID do grupo
orderGroup.codeCódigo único do grupo de pedido
orderGroup.subtotalValueValor dos produtos
orderGroup.additionValueAcréscimos
orderGroup.shippingValueValor do frete
orderGroup.discountValueDescontos aplicados
orderGroup.totalValueValor total do grupo
logsLogs de erro registrados para este pagamento

⚠️ Possíveis Erros

> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.

Este endpoint não possui erros de aplicação específicos além da autenticação.

🚫 Cancelamento de Pagamentos de Pedido

PUT /orders/payments/cancel

Cancela ou estorna pagamentos de pedidos na operadora

📋 Descrição

Endpoint responsável por cancelar ou estornar pagamentos de pedidos diretamente na operadora de pagamento.

  • Cancelamento — aplicado quando o pagamento ainda não foi capturado (pré-autorização)
  • Estorno — aplicado quando o pagamento já foi capturado (cobrança realizada)
  • A operação executada depende do status atual do pagamento na operadora. Aceita até 100 pagamentos por requisição.

    🔐 Permissão

  • UserAuth — autenticação do usuário administrativo
  • TRANSACTIONS_READ — escopo de permissão para leitura de transações financeiras e pagamentos
  • ORDER_WRITE — escopo de permissão para operações de escrita em pedidos

📝 Parâmetros

🏷️ Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {token}Token de autenticação do usuário
Content-Typeapplication/jsonTipo do conteúdo

📦 Parâmetros do Corpo

CampoObrigatórioDescrição
payments✅ SimLista de pagamentos a cancelar/estornar — máximo 100
payments[].orderPaymentId✅ SimID do pagamento (OrderPayment.id)
payments[].value✅ SimValor do cancelamento/estorno — pode ser parcial ou total
1{
2 "payments": [
3 { "orderPaymentId": 76, "value": 337.40 }
4 ]
5}

💡 Exemplo de Requisição

1curl --request PUT \
2 --url '{{MAIN_URL}}/orders/payments/cancel' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "payments": [
7 { "orderPaymentId": 76, "value": 337.40 }
8 ]
9 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": [
4 {
5 "orderPaymentId": 76,
6 "currentStatus": "cancelled",
7 "error": null
8 }
9 ]
10}

⚠️ Possíveis Erros

> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.

Erros por Pagamento (campo error)

Código do ErroDescrição
UAPPI_STORE_ORDER_PAYMENT_NOT_FOUND❌ Pagamento não encontrado com o ID informado
UAPPI_STORE_ORDER_PAYMENT_INVALID_STATUS❌ Status atual do pagamento não permite cancelamento/estorno — ex: pagamento já cancelado
UAPPI_STORE_ORDER_PAYMENT_INTEGRATION_ERROR❌ Erro na integração — a operadora retornou uma falha ao tentar cancelar ou estornar o pagamento

💰 Captura de Pagamentos de Pedido

PUT /orders/payments/capture

Captura pagamentos pré-autorizados na operadora de pagamento

📋 Descrição

Endpoint responsável por capturar pagamentos pré-autorizados, confirmando a cobrança junto à operadora de pagamento.

Utilizado em fluxos onde a autorização e a captura são etapas separadas — a autorização ocorre no checkout e a captura é feita manualmente, ex: após separação do pedido.

Aceita até 100 pagamentos por requisição.

🔐 Permissão

  • UserAuth — autenticação do usuário administrativo
  • TRANSACTIONS_READ — escopo de permissão para leitura de transações financeiras e pagamentos
  • ORDER_WRITE — escopo de permissão para operações de escrita em pedidos

📝 Parâmetros

🏷️ Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {token}Token de autenticação do usuário
Content-Typeapplication/jsonTipo do conteúdo

📦 Parâmetros do Corpo

CampoObrigatórioDescrição
payments✅ SimLista de pagamentos a capturar — máximo 100
payments[].orderPaymentId✅ SimID do pagamento (OrderPayment.id)
payments[].value✅ SimValor a capturar — pode ser parcial ou total
1{
2 "payments": [
3 { "orderPaymentId": 76, "value": 337.40 },
4 { "orderPaymentId": 78, "value": 150.00 }
5 ]
6}

💡 Exemplo de Requisição

1curl --request PUT \
2 --url '{{MAIN_URL}}/orders/payments/capture' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "payments": [
7 { "orderPaymentId": 76, "value": 337.40 }
8 ]
9 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": [
4 {
5 "orderPaymentId": 76,
6 "currentStatus": "approved",
7 "error": null
8 }
9 ]
10}

⚠️ Possíveis Erros

> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.

Erros por Pagamento (campo error)

Código do ErroDescrição
UAPPI_STORE_ORDER_PAYMENT_NOT_FOUND❌ Pagamento não encontrado com o ID informado
UAPPI_STORE_ORDER_PAYMENT_INVALID_STATUS❌ Status atual do pagamento não permite captura — somente pagamentos pré-autorizados podem ser capturados
UAPPI_STORE_ORDER_PAYMENT_INTEGRATION_ERROR❌ Erro na integração — a operadora retornou uma falha ao tentar capturar o pagamento

🔍 Consulta de Pagamentos de Pedido

PUT /orders/payments/consult

Consulta e atualiza o status dos pagamentos diretamente na operadora

📋 Descrição

Endpoint responsável por consultar o status atualizado dos pagamentos diretamente na operadora e atualizar os registros da plataforma com o resultado.

Útil para sincronizar o status de pagamentos que podem ter mudado externamente — ex: aprovação automática após confirmação bancária.

Aceita até 100 pagamentos por requisição.

🔐 Permissão

  • UserAuth — autenticação do usuário administrativo
  • TRANSACTIONS_READ — escopo de permissão para leitura de transações financeiras e pagamentos
  • ORDER_WRITE — escopo de permissão para operações de escrita em pedidos

📝 Parâmetros

🏷️ Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {token}Token de autenticação do usuário
Content-Typeapplication/jsonTipo do conteúdo

📦 Parâmetros do Corpo

CampoObrigatórioDescrição
payments✅ SimLista de pagamentos a consultar — máximo 100
payments[].orderPaymentId✅ SimID do pagamento (OrderPayment.id)
1{
2 "payments": [
3 { "orderPaymentId": 76 },
4 { "orderPaymentId": 77 }
5 ]
6}

💡 Exemplo de Requisição

1curl --request PUT \
2 --url '{{MAIN_URL}}/orders/payments/consult' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "payments": [
7 { "orderPaymentId": 76 }
8 ]
9 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

Retorna um resultado por pagamento. Pagamentos com falha na consulta terão error preenchido.

1{
2 "status": true,
3 "data": [
4 {
5 "orderPaymentId": 76,
6 "currentStatus": "approved",
7 "error": null
8 },
9 {
10 "orderPaymentId": 77,
11 "currentStatus": null,
12 "error": "UAPPI_STORE_ORDER_PAYMENT_NOT_FOUND"
13 }
14 ]
15}

⚠️ Possíveis Erros

> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.

Erros por Pagamento (campo error)

Código do ErroDescrição
UAPPI_STORE_ORDER_PAYMENT_NOT_FOUND❌ Pagamento não encontrado com o ID informado
UAPPI_STORE_ORDER_PAYMENT_INVALID_STATUS❌ Status atual do pagamento não permite consulta na operadora
UAPPI_STORE_ORDER_PAYMENT_INTEGRATION_ERROR❌ Erro na integração — a operadora retornou uma falha ao consultar o pagamento

📄 Logs de Erro de Pagamento

GET /orders/payments/logs

Lista os logs de erro gerados durante operações de pagamento

📋 Descrição

Endpoint responsável por listar os logs de erro registrados durante operações de pagamento — capturas, cancelamentos, consultas e webhooks que resultaram em falha.

Útil para diagnóstico e auditoria de transações com problema, permitindo identificar a causa do erro e o contexto da operação.

🔐 Permissão

  • UserAuth — autenticação do usuário administrativo
  • TRANSACTIONS_READ — escopo de permissão para leitura de transações financeiras e pagamentos
  • PAYMENT_ERROR_READ — escopo de permissão para leitura de logs de erro de pagamento

📝 Parâmetros

🏷️ Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {token}Token de autenticação do usuário

💡 Exemplo de Requisição

1curl --request GET \
2 --url '{{MAIN_URL}}/orders/payments/logs' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "registers": [
5 {
6 "id": 12,
7 "orderPaymentId": 76,
8 "origin": "capture",
9 "errorCode": "GATEWAY_TIMEOUT",
10 "message": "The gateway did not respond in time.",
11 "createdAt": "2026-04-10 14:32:01"
12 }
13 ],
14 "pagination": {
15 "limit": 10,
16 "offset": 0,
17 "pages": 2,
18 "registers": 15
19 }
20 }
21}

📊 Campos da Resposta

CampoTipoDescrição
idintegerID do log de erro
orderPaymentIdintegerID do pagamento vinculado ao log
originstringOrigem da operação que gerou o erro — ex: capture, cancel, consult, webhook
errorCodestringCódigo de erro retornado pela operadora
messagestringMensagem descritiva do erro
createdAtstringData e hora do registro

⚠️ Possíveis Erros

> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.

Este endpoint não possui erros de aplicação específicos além da autenticação.

🔎 Detalhe de Log de Erro de Pagamento

GET /orders/payments/logs/{paymentLogId}

Retorna o detalhe completo de um log de erro de pagamento

📋 Descrição

Endpoint responsável por retornar o detalhe completo de um log de erro de pagamento, incluindo o payload enviado e a resposta recebida da operadora.

Útil para diagnóstico aprofundado de falhas em transações.

🔐 Permissão

  • UserAuth — autenticação do usuário administrativo
  • TRANSACTIONS_READ — escopo de permissão para leitura de transações financeiras e pagamentos
  • PAYMENT_ERROR_READ — escopo de permissão para leitura de logs de erro de pagamento

📝 Parâmetros

🏷️ Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {token}Token de autenticação do usuário

🔗 Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
paymentLogIdinteger✅ SimID do log de erro a ser consultado

💡 Exemplo de Requisição

1curl --request GET \
2 --url '{{MAIN_URL}}/orders/payments/logs/12' \
3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "id": 12,
5 "orderPaymentId": 76,
6 "origin": "capture",
7 "errorCode": "GATEWAY_TIMEOUT",
8 "message": "The gateway did not respond in time.",
9 "request": { "amount": 33740, "currency": "BRL" },
10 "response": { "error": "timeout", "code": 408 },
11 "createdAt": "2026-04-10 14:32:01"
12 }
13}

⚠️ Possíveis Erros

> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.

Código do ErroHTTPDescrição
UAPPI_STORE_PAYMENT_LOG_NOT_FOUND404Log de pagamento não encontrado com o ID informado

Uappi é a melhor opção para o crescimento da sua loja!

;