Skip to content

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

GET /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

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

Campos de Condição Disponíveis (condition[])

CampoOperadores comunsDescrição
id=, inFiltra por ID da opção de pagamento
tradePolicyId=, inFiltra por política comercial
active=Filtra por status ativo/inativo
label=, likeFiltra por rótulo da opção
configurationCode=, inFiltra por código de configuração (transformado internamente para payment_configuration.code)
payment_configuration.code=, inFiltra 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
configurationsInclui as configurações da opção
paymentTypeInclui dados do tipo de pagamento vinculado
publicCredentialsInclui o mapa de credenciais públicas expostas para a opção
antifraudInclui os dados do antifraude vinculado à opção de pagamento (null se não houver)
paymentTypeLinkInclui 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": 1
36 },
37 "paymentTypeLink": {
38 "usePhoneNumber": false,
39 "useDocument": true,
40 "useBirthdate": false,
41 "useMultiplePayment": true
42 }
43 }
44 ],
45 "pagination": {
46 "limit": 10,
47 "offset": 0,
48 "pages": 1,
49 "registers": 1
50 }
51 }
52}

Listagem Completa de Opções de Pagamento

GET /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

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

Parâmetros de Query

ParâmetroTipoObrigatórioDescrição
tradePolicyIdintegerNãoID 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

GET /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

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

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
paymentOptionIdintegerSimID da opção de pagamento

Campos Disponíveis (fields[])

Campo (fields[])Descrição
configurationsInclui as configurações completas da opção de pagamento
paymentTypeInclui dados do tipo de pagamento vinculado
publicCredentialsInclui o mapa de credenciais públicas expostas para a opção
antifraudInclui os dados do antifraude vinculado à opção de pagamento (null se não houver)
paymentTypeLinkInclui 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": 12
25 }
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": 1
41 },
42 "paymentTypeLink": {
43 "usePhoneNumber": false,
44 "useDocument": true,
45 "useBirthdate": false,
46 "useMultiplePayment": true
47 }
48 }
49}

⚠️ Possíveis erros:

Código InternoCódigo HTTPDescrição
UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND404A opção de pagamento informada não foi encontrada.

Configurações de Opção de Pagamento

GET /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

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

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
paymentOptionIdintegerSimID 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": 0
11 }
12 ]
13}

⚠️ Possíveis erros:

Código InternoCódigo HTTPDescrição
UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND404A opção de pagamento informada não foi encontrada.

Criação de Opção de Pagamento

POST /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

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

Parâmetros do Corpo

CampoTipoObrigatórioDescrição
tradePolicyIdintegerSimID da política comercial
parentPaymentId?integerNãoCampo validado na camada HTTP para opção pai.
paymentIdintegerSimID do meio de pagamento
paymentStoreCredentialId?integerNãoID da credencial de loja vinculada ao pagamento
paymentAntiFraudCredentialId?integerNãoID da credencial antifraude vinculada ao pagamento
paymentTypeIdintegerSimID do tipo de pagamento
activebooleanSimDefine se a opção ficará ativa
labelstringSimRótulo da opção, até 255 caracteres
description?stringNãoDescrição da opção
instruction?stringNãoInstrução exibida ao cliente
orderintegerSimOrdem 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": 1
17 }'

✅ 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 InternoCódigo HTTPDescrição
UAPPI_INTEGRATION_INVALID_PARENT_PAYMENT_TYPE400A opção pai informada precisa aceitar múltiplos pagamentos.
UAPPI_INTEGRATION_INVALID_PAYMENT_TYPE_COMBINATION400A combinação entre meio de pagamento e tipo de pagamento é inválida.
UAPPI_INTEGRATION_PAYMENT_TYPE_DOES_NOT_SUPPORT_MULTIPLE_PAYMENT400O tipo de pagamento informado não suporta múltiplos pagamentos.
UAPPI_INTEGRATION_PAYMENT_CREDENTIAL_NOT_FOUND404A credencial de pagamento informada não foi encontrada.
UAPPI_INTEGRATION_INVALID_ANTI_FRAUD_PAYMENT_TYPE400O tipo de pagamento informado não suporta antifraude.

Atualização de Opção de Pagamento

PUT /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

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

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
paymentOptionIdintegerSimID da opção de pagamento

Parâmetros do Corpo

CampoTipoObrigatórioDescrição
tradePolicyIdintegerSimID da política comercial
parentPaymentId?integerNãoCampo validado na camada HTTP para opção pai.
paymentIdmissingNão deve ser enviadoCampo bloqueado na atualização
paymentStoreCredentialIdmissingNão deve ser enviadoCampo bloqueado na atualização
paymentAntiFraudCredentialId?integerNãoID da credencial antifraude vinculada ao pagamento
paymentTypeIdintegerSimID do tipo de pagamento
activebooleanSimDefine se a opção ficará ativa
labelstringSimRótulo da opção, até 255 caracteres
description?stringNãoDescrição da opção
instruction?stringNãoInstrução exibida ao cliente
orderintegerSimOrdem 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": 1
15 }'

✅ 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 InternoCódigo HTTPDescrição
UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND404A opção de pagamento informada não foi encontrada.
UAPPI_INTEGRATION_INVALID_PAYMENT_TYPE_COMBINATION400A combinação entre meio de pagamento e tipo de pagamento é inválida.
UAPPI_INTEGRATION_PAYMENT_OPTION_HAVE_CHILDREN400A opção de pagamento possui filhos e não pode trocar para um tipo incompatível.
UAPPI_INTEGRATION_PAYMENT_CREDENTIAL_NOT_FOUND404A credencial de pagamento informada não foi encontrada.
UAPPI_INTEGRATION_INVALID_ANTI_FRAUD_PAYMENT_TYPE400O tipo de pagamento informado não suporta antifraude.

Configuração de Opção de Pagamento

PUT /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

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

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
paymentOptionIdintegerSimID da opção de pagamento

Parâmetros do Corpo

CampoTipoObrigatórioDescrição
configurationsobjectSimMapa de configuração por código (chave = código da configuração).
configurations.*mixedSimValor 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": 5
9 }
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 }'

CampoTipoDescrição
namestringNome do titular da conta
bankNamestringNome do banco
bankstringNúmero/código do banco (ex: 341 para Itaú)
agencystringAgência bancária
accountstringNúmero da conta com dígito
operationstringOperação da conta (opcional — usado em algumas contas Caixa)
documentstringCPF 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": 0
11 }
12 ]
13}

⚠️ Possíveis erros:

Código InternoCódigo HTTPDescrição
UAPPI_INTEGRATION_PAYMENT_OPTION_NOT_FOUND404A opção de pagamento informada não foi encontrada.
UAPPI_INTEGRATION_INVALID_PAYMENT_CONFIGURATION_VALUE400Um valor de configuração enviado é inválido para o tipo de pagamento.

Reordenação de Opções de Pagamento

PUT /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

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

Parâmetros do Corpo

CampoTipoObrigatórioDescrição
paymentOptionIdsarraySimLista ordenada de IDs de opções de pagamento
paymentOptionIds.*integerSimID 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

DELETE /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

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

Parâmetros de URL

ParâmetroTipoObrigatórioDescrição
paymentOptionIdintegerSimID 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": true
4}

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

;