Opções de Pagamento
Visão Geral
Este grupo cobre o cadastro, consulta, configuração e remoção das opções de pagamento da loja.
Entidades Envolvidas
A entidade principal deste grupo é a opção de pagamento, que representa a forma efetivamente exibida e utilizada na loja (como Pix, boleto e cartão), com status, ordem e contexto comercial.
Cada opção nasce da combinação entre meio de pagamento, tipo de pagamento e, quando necessário, credencial de pagamento da loja.
Além disso, as opções podem possuir configurações específicas, que ajustam o comportamento operacional para cada cenário.
Todo esse conjunto é aplicado por política comercial, garantindo que a loja possa ter variações de disponibilidade e comportamento conforme o canal ou regra de venda.
Notas e Considerações
Este grupo cobre desde o cadastro e atualização das opções até sua configuração avançada, reordenação e remoção.
No fluxo atual, existe uma diferença de nomenclatura entre camadas para o campo de opção pai (parentPaymentId e parentPaymentOptionId), por isso vale manter atenção a esse vínculo durante integrações.
Listagem de Opções de Pagamento
/payments/options
Lista as opções de pagamento cadastradas na loja
Descrição
Retorna a lista de opções de pagamento cadastradas para a loja atual.
Cada registro representa uma combinação operacional entre política comercial, meio de pagamento e tipo de pagamento, com seus dados de exibição e uso no checkout.
A resposta pode ser usada para gestão administrativa (organização, conferência e manutenção de opções) e para composição de fluxos internos que dependem da configuração ativa de pagamento.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Campos de Condição Disponíveis (condition[])
| Campo | Operadores comuns | Descrição |
|---|---|---|
id | =, in | Filtra por ID da opção de pagamento |
tradePolicyId | =, in | Filtra por política comercial |
active | = | Filtra por status ativo/inativo |
label | =, like | Filtra por rótulo da opção |
configurationCode | =, in | Filtra por código de configuração (transformado internamente para payment_configuration.code) |
payment_configuration.code | =, in | Filtra diretamente pelo código da configuração do tipo de pagamento |
Campos de Ordenação Disponíveis (order[])
| Campo |
|---|
id |
order |
Campos Disponíveis (fields[])
Campo (fields[]) | Descrição |
|---|---|
configurations | Inclui as configurações da opção |
paymentType | Inclui dados do tipo de pagamento vinculado |
publicCredentials | Inclui o mapa de credenciais públicas expostas para a opção |
antifraud | Inclui os dados do antifraude vinculado à opção de pagamento (null se não houver) |
paymentTypeLink | Inclui as configurações de comportamento do tipo de pagamento (campos obrigatórios, múltiplos pagamentos) |
Exemplo de Requisição
1curl --request GET \2 --url '{{MAIN_URL}}/payments/options?limit=10&offset=0' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "registers": [5 {6 "id": 1,7 "tradePolicyId": 1,8 "paymentId": 2,9 "paymentCode": "pagarme-v5-api",10 "paymentStoreCredentialId": 4,11 "paymentAntiFraudCredentialId": 1,12 "active": true,13 "label": "Cartão de Crédito",14 "description": "Pague com cartão de crédito",15 "instruction": "",16 "order": 1,17 "options": [],18 "paymentType": {19 "id": 1,20 "code": "credit-card"21 },22 "publicCredentials": {23 "public-key": "pk_abc1234567890"24 },25 "antifraud": {26 "id": 1,27 "code": "clearsale-total",28 "name": "ClearSale Total",29 "image": "https://cdn.uappi.com.br/antifraud/clearsale.png",30 "url": "https://clearsale.com.br",31 "description": "Antifraude ClearSale modalidade Total",32 "operation": "post-sale",33 "active": true,34 "oauth": false,35 "order": 136 },37 "paymentTypeLink": {38 "usePhoneNumber": false,39 "useDocument": true,40 "useBirthdate": false,41 "useMultiplePayment": true42 }43 }44 ],45 "pagination": {46 "limit": 10,47 "offset": 0,48 "pages": 1,49 "registers": 150 }51 }52}Listagem Completa de Opções de Pagamento
/payments/options/all
Lista todas as opções de pagamento da loja por política comercial
Descrição
Retorna um mapa simplificado id => label de opções de pagamento para uso em fluxos de seleção no frontend.
Este endpoint não possui paginação e aceita filtro opcional por tradePolicyId para restringir o resultado por política comercial.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Parâmetros de Query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tradePolicyId | integer | Não | ID da política comercial usada para filtrar as opções |
Exemplo de Requisição
1curl --request GET \2 --url '{{MAIN_URL}}/payments/options/all?tradePolicyId=1' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "1": "Pix",5 "2": "Boleto"6 }7}Detalhe de Opção de Pagamento
/payments/options/{paymentOptionId}
Retorna o detalhe de uma opção de pagamento
Descrição
Retorna o detalhe completo da opção de pagamento identificada por paymentOptionId, incluindo dados de vínculo com política comercial, meio e tipo de pagamento.
Quando necessário, use fields[] para expandir estruturas relacionadas (configurações, credenciais e entidades vinculadas) sem depender de chamadas adicionais para compor a tela administrativa.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentOptionId | integer | Sim | ID da opção de pagamento |
Campos Disponíveis (fields[])
Campo (fields[]) | Descrição |
|---|---|
configurations | Inclui as configurações completas da opção de pagamento |
paymentType | Inclui dados do tipo de pagamento vinculado |
publicCredentials | Inclui o mapa de credenciais públicas expostas para a opção |
antifraud | Inclui os dados do antifraude vinculado à opção de pagamento (null se não houver) |
paymentTypeLink | Inclui as configurações de comportamento do tipo de pagamento (campos obrigatórios, múltiplos pagamentos) |
Exemplo de Requisição
1curl --request GET \2 --url '{{MAIN_URL}}/payments/options/1?fields[]=configurations&fields[]=paymentType&fields[]=publicCredentials&fields[]=antifraud&fields[]=paymentTypeLink' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "id": 1,5 "tradePolicyId": 1,6 "paymentId": 2,7 "paymentCode": "pagarme-v5-api",8 "paymentStoreCredentialId": 4,9 "paymentAntiFraudCredentialId": 1,10 "active": true,11 "label": "Cartão de Crédito",12 "description": "Pague com cartão de crédito",13 "instruction": "",14 "order": 1,15 "options": [],16 "paymentType": {17 "id": 1,18 "code": "credit-card"19 },20 "configurations": [21 {22 "code": "max-number-installment",23 "title": "Número máximo de Parcelas",24 "value": 1225 }26 ],27 "publicCredentials": {28 "public-key": "pk_abc1234567890"29 },30 "antifraud": {31 "id": 1,32 "code": "clearsale-total",33 "name": "ClearSale Total",34 "image": "https://cdn.uappi.com.br/antifraud/clearsale.png",35 "url": "https://clearsale.com.br",36 "description": "Antifraude ClearSale modalidade Total",37 "operation": "post-sale",38 "active": true,39 "oauth": false,40 "order": 141 },42 "paymentTypeLink": {43 "usePhoneNumber": false,44 "useDocument": true,45 "useBirthdate": false,46 "useMultiplePayment": true47 }48 }49}⚠️ Possíveis erros:
| Código Interno | Código HTTP | Descrição |
|---|---|---|
| UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND | 404 | A opção de pagamento informada não foi encontrada. |
Configurações de Opção de Pagamento
/payments/options/{paymentOptionId}/configure
Lista as configurações atuais de uma opção de pagamento
Descrição
Retorna as configurações cadastradas para a opção identificada por paymentOptionId.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentOptionId | integer | Sim | ID da opção de pagamento |
Exemplo de Requisição
1curl --request GET \2 --url '{{MAIN_URL}}/payments/options/1/configure' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
1{2 "status": true,3 "data": [4 {5 "id": 1,6 "code": "cash-discount",7 "enum": null,8 "type": "decimal",9 "title": "Desconto à vista",10 "value": 011 }12 ]13}⚠️ Possíveis erros:
| Código Interno | Código HTTP | Descrição |
|---|---|---|
| UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND | 404 | A opção de pagamento informada não foi encontrada. |
Criação de Opção de Pagamento
/payments/options
Cria uma opção de pagamento na loja
Descrição
Cria uma opção de pagamento que materializa, para uma política comercial, como um meio/tipo de pagamento será apresentado e operado no checkout.
Além dos vínculos obrigatórios (tradePolicyId, paymentId, paymentTypeId), a rota permite definir credenciais, hierarquia de opção pai e metadados de exibição (label, description, instruction, order). As combinações são validadas pela integração antes de salvar para evitar cenários incompatíveis entre meio, tipo e antifraude.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Content-Type | application/json | Tipo de conteúdo |
Parâmetros do Corpo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tradePolicyId | integer | Sim | ID da política comercial |
parentPaymentId | ?integer | Não | Campo validado na camada HTTP para opção pai. |
paymentId | integer | Sim | ID do meio de pagamento |
paymentStoreCredentialId | ?integer | Não | ID da credencial de loja vinculada ao pagamento |
paymentAntiFraudCredentialId | ?integer | Não | ID da credencial antifraude vinculada ao pagamento |
paymentTypeId | integer | Sim | ID do tipo de pagamento |
active | boolean | Sim | Define se a opção ficará ativa |
label | string | Sim | Rótulo da opção, até 255 caracteres |
description | ?string | Não | Descrição da opção |
instruction | ?string | Não | Instrução exibida ao cliente |
order | integer | Sim | Ordem de exibição |
Exemplo de Requisição
1curl --request POST \2 --url '{{MAIN_URL}}/payments/options' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "tradePolicyId": 1,7 "parentPaymentId": null,8 "paymentId": 2,9 "paymentStoreCredentialId": 4,10 "paymentAntiFraudCredentialId": null,11 "paymentTypeId": 3,12 "active": true,13 "label": "PIX",14 "description": "Pagamento instantâneo",15 "instruction": "Use o QR Code para concluir",16 "order": 117 }'✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "id": 1,5 "tradePolicyId": 1,6 "paymentId": 2,7 "paymentCode": "pix",8 "paymentStoreCredentialId": 4,9 "paymentAntiFraudCredentialId": null,10 "active": true,11 "label": "Pix",12 "description": "Pagamento instantâneo",13 "instruction": "Use o QR Code para concluir",14 "order": 1,15 "options": []16 }17}⚠️ Possíveis erros:
| Código Interno | Código HTTP | Descrição |
|---|---|---|
| UAPPI_INTEGRATION_INVALID_PARENT_PAYMENT_TYPE | 400 | A opção pai informada precisa aceitar múltiplos pagamentos. |
| UAPPI_INTEGRATION_INVALID_PAYMENT_TYPE_COMBINATION | 400 | A combinação entre meio de pagamento e tipo de pagamento é inválida. |
| UAPPI_INTEGRATION_PAYMENT_TYPE_ | 400 | O tipo de pagamento informado não suporta múltiplos pagamentos. |
| UAPPI_INTEGRATION_PAYMENT_CREDENTIAL_NOT_FOUND | 404 | A credencial de pagamento informada não foi encontrada. |
| UAPPI_INTEGRATION_INVALID_ANTI_FRAUD_PAYMENT_TYPE | 400 | O tipo de pagamento informado não suporta antifraude. |
Atualização de Opção de Pagamento
/payments/options/{paymentOptionId}
Atualiza uma opção de pagamento na loja
Descrição
Atualiza a opção identificada por paymentOptionId.
A atualização mantém o mesmo vínculo principal da opção e permite ajustar dados operacionais como tipo de pagamento, status, ordem de exibição e textos de apoio (label, description, instruction).
Antes de salvar, a integração valida combinações incompatíveis entre opção, tipo e antifraude, retornando erro quando a alteração viola regras de negócio.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Content-Type | application/json | Tipo de conteúdo |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentOptionId | integer | Sim | ID da opção de pagamento |
Parâmetros do Corpo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tradePolicyId | integer | Sim | ID da política comercial |
parentPaymentId | ?integer | Não | Campo validado na camada HTTP para opção pai. |
paymentId | missing | Não deve ser enviado | Campo bloqueado na atualização |
paymentStoreCredentialId | missing | Não deve ser enviado | Campo bloqueado na atualização |
paymentAntiFraudCredentialId | ?integer | Não | ID da credencial antifraude vinculada ao pagamento |
paymentTypeId | integer | Sim | ID do tipo de pagamento |
active | boolean | Sim | Define se a opção ficará ativa |
label | string | Sim | Rótulo da opção, até 255 caracteres |
description | ?string | Não | Descrição da opção |
instruction | ?string | Não | Instrução exibida ao cliente |
order | integer | Sim | Ordem de exibição |
Exemplo de Requisição
1curl --request PUT \2 --url '{{MAIN_URL}}/payments/options/1' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "tradePolicyId": 1,7 "parentPaymentId": null,8 "paymentAntiFraudCredentialId": null,9 "paymentTypeId": 3,10 "active": true,11 "label": "PIX Atualizado",12 "description": "Pagamento instantâneo",13 "instruction": "Use o QR Code para concluir",14 "order": 115 }'✅ Resposta de Sucesso
1{2 "status": true,3 "data": {4 "id": 1,5 "tradePolicyId": 1,6 "paymentId": 2,7 "paymentCode": "pix",8 "paymentStoreCredentialId": 4,9 "paymentAntiFraudCredentialId": null,10 "active": true,11 "label": "Pix atualizado",12 "description": "Pagamento instantâneo",13 "instruction": "Use o QR Code para concluir",14 "order": 1,15 "options": []16 }17}⚠️ Possíveis erros:
| Código Interno | Código HTTP | Descrição |
|---|---|---|
| UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND | 404 | A opção de pagamento informada não foi encontrada. |
| UAPPI_INTEGRATION_INVALID_PAYMENT_TYPE_COMBINATION | 400 | A combinação entre meio de pagamento e tipo de pagamento é inválida. |
| UAPPI_INTEGRATION_PAYMENT_OPTION_HAVE_CHILDREN | 400 | A opção de pagamento possui filhos e não pode trocar para um tipo incompatível. |
| UAPPI_INTEGRATION_PAYMENT_CREDENTIAL_NOT_FOUND | 404 | A credencial de pagamento informada não foi encontrada. |
| UAPPI_INTEGRATION_INVALID_ANTI_FRAUD_PAYMENT_TYPE | 400 | O tipo de pagamento informado não suporta antifraude. |
Configuração de Opção de Pagamento
/payments/options/{paymentOptionId}/configure
Atualiza as configurações de uma opção de pagamento
Descrição
Atualiza as configurações operacionais da opção identificada por paymentOptionId, enviando valores por código em configurations.
Cada chave enviada é validada conforme o contrato do tipo de pagamento (tipo do valor, enumerações aceitas e regras específicas). A atualização é indicada para ajustar comportamento sem recriar a opção, como flags de captura, parâmetros financeiros ou preferências de fluxo.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Content-Type | application/json | Tipo de conteúdo |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentOptionId | integer | Sim | ID da opção de pagamento |
Parâmetros do Corpo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
configurations | object | Sim | Mapa de configuração por código (chave = código da configuração). |
configurations.* | mixed | Sim | Valor da configuração correspondente ao código enviado. |
Exemplo de Requisição
1curl --request PUT \2 --url '{{MAIN_URL}}/payments/options/1/configure' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "configurations": {7 "automatic-capture": true,8 "cash-discount": 59 }10 }'Exemplo para Depósito Interno (bank-account-map)
Para opções do tipo internal-deposit, utilize a chave bank-account-map para cadastrar as contas bancárias disponíveis para seleção no checkout. Cada entrada representa uma conta:
1curl --request PUT \2 --url '{{MAIN_URL}}/payments/options/1/configure' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "configurations": {7 "bank-account-map": [8 {9 "name": "Razão Social da Empresa",10 "bankName": "Itaú Unibanco",11 "bank": "341",12 "agency": "0001",13 "account": "12345-6",14 "operation": "",15 "document": "00.000.000/0001-00"16 }17 ]18 }19 }'| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome do titular da conta |
bankName | string | Nome do banco |
bank | string | Número/código do banco (ex: 341 para Itaú) |
agency | string | Agência bancária |
account | string | Número da conta com dígito |
operation | string | Operação da conta (opcional — usado em algumas contas Caixa) |
document | string | CPF ou CNPJ do titular |
✅ Resposta de Sucesso
1{2 "status": true,3 "data": [4 {5 "id": 1,6 "code": "cash-discount",7 "enum": null,8 "type": "decimal",9 "title": "Desconto à vista",10 "value": 011 }12 ]13}⚠️ Possíveis erros:
| Código Interno | Código HTTP | Descrição |
|---|---|---|
| UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND | 404 | A opção de pagamento informada não foi encontrada. |
| UAPPI_INTEGRATION_INVALID_PAYMENT_CONFIGURATION_VALUE | 400 | Um valor de configuração enviado é inválido para o tipo de pagamento. |
Reordenação de Opções de Pagamento
/payments/options/order
Salva a ordem das opções de pagamento
Descrição
Salva a sequência ordenada de opções de pagamento informada no corpo.
A ordem enviada em paymentOptionIds é aplicada na listagem administrativa e no comportamento de exibição das opções onde essa ordenação é utilizada.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Content-Type | application/json | Tipo de conteúdo |
Parâmetros do Corpo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentOptionIds | array | Sim | Lista ordenada de IDs de opções de pagamento |
paymentOptionIds.* | integer | Sim | ID individual da opção |
Exemplo de Requisição
1curl --request PUT \2 --url '{{MAIN_URL}}/payments/options/order' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "paymentOptionIds": [1, 2, 3]7 }'✅ Resposta de Sucesso
1{2 "status": true,3 "data": [1, 2, 3]4}Remoção de Opção de Pagamento
/payments/options/{paymentOptionId}
Remove uma opção de pagamento cadastrada na loja
Descrição
Remove a opção identificada por paymentOptionId.
Este endpoint é usado no fluxo administrativo de manutenção quando uma opção deixa de ser utilizada na loja.
Se a opção possuir vínculos que impeçam a remoção, a integração pode bloquear a operação para preservar consistência.
Parâmetros
Cabeçalhos Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do usuário |
Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentOptionId | integer | Sim | ID da opção de pagamento |
Exemplo de Requisição
1curl --request DELETE \2 --url '{{MAIN_URL}}/payments/options/1' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
1{2 "status": true,3 "data": true4}