Criar, alterar e apagar formas
Cadastra uma forma de pagamento, altera suas regras e a apaga.
Três escritas, todas com manage_payments. Cada uma é registrada no log de ações (tipo payments).
Criar uma forma
/api/v1/admin/payment-methodsAdminCria uma forma de pagamento
Corpo da requisição
namestringobrigatórioNome mostrado ao cliente.
slugstringobrigatórioCódigo único e estável (ex.:
pix). Não muda depois.providerstringTipo (
pix, boleto, credit_card...). Se vazio, usa o gateway; sem gateway, o slug.processor_typestringpadrão: onlineonlineofflineinvoicedonline (padrão), offline ou invoiced.gatewaystringGateway. Veja as opções.
statusstringpadrão: activeactive ou inactive (ou A/D). Padrão: ativa.configobjectConfig livre. No
invoiced: installment_plans e installment_rounding.positionintegerOrdem de exibição.
vendor_iduuidCria a forma para um seller. Vazio = loja toda.
min_order_amountintegerPedido mínimo em centavos.
max_order_amountintegerPedido máximo em centavos.
allowed_user_groupsarrayGrupos de clientes permitidos (ids).
blocked_user_groupsarrayGrupos bloqueados.
allowed_shipping_methodsarrayIds de formas de envio permitidas.
allowed_statesarrayUFs permitidas.
surcharge_fixedintegerSobretaxa fixa em centavos.
surcharge_percentintegerSobretaxa em pontos-base.
internal_code_1stringCódigo interno 1.
internal_code_2stringCódigo interno 2.
payment_period_daysintegerPrazo em dias.
uses_credit_limitbooleanConsome o limite de crédito do cliente.
uses_supplier_credit_limitbooleanConsome o limite do fornecedor.
Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/admin/payment-methods" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "PIX",
"slug": "pix",
"provider": "pix",
"gateway": "pix",
"processor_type": "online",
"min_order_amount": 1000,
"surcharge_percent": 0
}'Resposta
201Forma criada
json
{
"id": "08fd91cd-ce15-4b28-9482-db37b8778b36",
"display_id": 26,
"name": "PIX",
"code": "pix",
"processor_type": "online",
"gateway": "pix",
"status": "A",
"uses_credit_limit": false,
"payment_period_days": 0,
"uses_supplier_credit_limit": false,
"config": null,
"position": 0,
"created_at": "2026-07-08T02:58:06Z",
"min_order_amount": 1000,
"max_order_amount": 0,
"surcharge_fixed": 0,
"surcharge_percent": 0
}Campos da resposta
iduuidId da forma.
display_idintegerNúmero curto para o painel (ex.: forma nº 26).
namestringNome mostrado ao cliente.
codestringO
slug informado na criação.processor_typestringonlineofflineinvoicedonline, offline ou invoiced.gatewaystringGateway que processa.
providerstringTipo do pagamento (
pix, boleto, credit_card...). Aparece só em algumas leituras.statusstringADA ativa ou D desativada.configobjectConfiguração livre do método; no boleto faturado traz
installment_plans.positionintegerOrdem de exibição.
vendor_iduuidDono (seller). Ausente = vale para a loja toda.
vendor_namestringNome do seller dono.
min_order_amountintegerPedido mínimo em centavos.
max_order_amountintegerPedido máximo em centavos.
0 ou ausente = sem teto.allowed_user_groupsarrayIds de grupos de clientes permitidos.
blocked_user_groupsarrayGrupos bloqueados.
allowed_shipping_methodsarrayIds de formas de envio permitidas.
allowed_statesarrayUFs permitidas.
surcharge_fixedintegerSobretaxa fixa em centavos aplicada ao total.
surcharge_percentintegerSobretaxa em pontos-base (
250 = 2,50%).uses_credit_limitbooleanConsome o limite de crédito do cliente (B2B).
uses_supplier_credit_limitbooleanConsome o limite do fornecedor.
payment_period_daysintegerPrazo de pagamento em dias.
internal_code_1stringCódigo interno 1 para ERP.
internal_code_2stringCódigo interno 2 para ERP.
payment_codestringCódigo do método usado pelas regras por cliente e pelo ERP.
created_atstringCriação (RFC 3339).
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | name ou slug ausente; min_exceeds_max; invalid_installment_plan. | {"error":"min_exceeds_max","code":"admin.payments.minExceedsMax"} |
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | O usuário não tem o privilégio manage_payments (leitura aceita view_payments). | {"error":"insufficient privileges","required":"manage_payments"} |
| 422 | Gateway não disponível para a loja. | {"error":"gateway_not_available","code":"admin.payments.gatewayNotAvailable"} |
Alterar uma forma
Atualização parcial: só os campos enviados mudam. Para limpar uma lista (ex.: allowed_states), envie []. Um campo desconhecido no corpo é rejeitado em vez de ignorado quando a loja está nesse modo.
/api/v1/admin/payment-methods/{id}AdminAltera uma forma de pagamento
Parâmetros de caminho
iduuidobrigatórioId da forma.
Corpo da requisição
namestringNovo nome.
statusstringactive/inactive ou A/D.is_activebooleanApelido de
status (true = A). Também active e enabled.processor_typestringonline, offline ou invoiced.gatewaystringGateway.
configobjectSubstitui a config.
positionintegerOrdem.
min_order_amountintegerPedido mínimo em centavos.
max_order_amountintegerPedido máximo em centavos.
allowed_user_groupsarrayGrupos permitidos.
blocked_user_groupsarrayGrupos bloqueados.
allowed_shipping_methodsarrayEnvios permitidos.
allowed_statesarrayUFs permitidas.
surcharge_fixedintegerSobretaxa fixa em centavos.
surcharge_percentintegerSobretaxa em pontos-base.
payment_period_daysintegerPrazo em dias.
uses_credit_limitbooleanLimite do cliente.
uses_supplier_credit_limitbooleanLimite do fornecedor.
internal_code_1stringCódigo interno 1.
internal_code_2stringCódigo interno 2.
Exemplo de requisição
bash
curl -X PUT "$BASE_URL/api/v1/admin/payment-methods/08fd91cd-ce15-4b28-9482-db37b8778b36" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "inactive",
"max_order_amount": 500000
}'Resposta
200Forma alterada
json
{
"id": "08fd91cd-ce15-4b28-9482-db37b8778b36",
"display_id": 26,
"name": "Boleto Faturado",
"code": "boleto-faturado",
"processor_type": "invoiced",
"gateway": "invoiced",
"status": "D",
"uses_credit_limit": false,
"payment_period_days": 0,
"uses_supplier_credit_limit": false,
"config": {
"installment_plans": [
{
"id": "30-60-90",
"name": "30/60/90",
"enabled": true,
"terms_days": [
30,
60,
90
],
"installments": 3
}
]
},
"position": 0,
"created_at": "2026-07-08T02:58:06Z",
"min_order_amount": 5000,
"max_order_amount": 500000,
"surcharge_fixed": 0,
"surcharge_percent": 0
}Campos da resposta
iduuidId da forma.
display_idintegerNúmero curto para o painel (ex.: forma nº 26).
namestringNome mostrado ao cliente.
codestringO
slug informado na criação.processor_typestringonlineofflineinvoicedonline, offline ou invoiced.gatewaystringGateway que processa.
providerstringTipo do pagamento (
pix, boleto, credit_card...). Aparece só em algumas leituras.statusstringADA ativa ou D desativada.configobjectConfiguração livre do método; no boleto faturado traz
installment_plans.positionintegerOrdem de exibição.
vendor_iduuidDono (seller). Ausente = vale para a loja toda.
vendor_namestringNome do seller dono.
min_order_amountintegerPedido mínimo em centavos.
max_order_amountintegerPedido máximo em centavos.
0 ou ausente = sem teto.allowed_user_groupsarrayIds de grupos de clientes permitidos.
blocked_user_groupsarrayGrupos bloqueados.
allowed_shipping_methodsarrayIds de formas de envio permitidas.
allowed_statesarrayUFs permitidas.
surcharge_fixedintegerSobretaxa fixa em centavos aplicada ao total.
surcharge_percentintegerSobretaxa em pontos-base (
250 = 2,50%).uses_credit_limitbooleanConsome o limite de crédito do cliente (B2B).
uses_supplier_credit_limitbooleanConsome o limite do fornecedor.
payment_period_daysintegerPrazo de pagamento em dias.
internal_code_1stringCódigo interno 1 para ERP.
internal_code_2stringCódigo interno 2 para ERP.
payment_codestringCódigo do método usado pelas regras por cliente e pelo ERP.
created_atstringCriação (RFC 3339).
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | immutable_field (slug, provider ou vendor_id), invalid_payment_method_status, min_exceeds_max ou invalid_installment_plan. | {"error":"immutable_field","detail":"o campo \"slug\" não pode ser alterado por este endpoint: ..."} |
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | O usuário não tem o privilégio manage_payments (leitura aceita view_payments). | {"error":"insufficient privileges","required":"manage_payments"} |
| 404 | Forma inexistente. | {"error":"payment method not found"} |
| 422 | Gateway não disponível para a loja. | {"error":"gateway_not_available","code":"admin.payments.gatewayNotAvailable"} |
Apagar uma forma
Remove a forma de forma definitiva.
/api/v1/admin/payment-methods/{id}AdminApaga uma forma de pagamento
Parâmetros de caminho
iduuidobrigatórioId da forma.
Exemplo de requisição
bash
curl -X DELETE "$BASE_URL/api/v1/admin/payment-methods/08fd91cd-ce15-4b28-9482-db37b8778b36" \
-H "Authorization: Bearer $TOKEN"Resposta
200Apagada
json
{
"message": "payment method deleted"
}Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | O usuário não tem o privilégio manage_payments (leitura aceita view_payments). | {"error":"insufficient privileges","required":"manage_payments"} |
| 404 | Forma inexistente. | {"error":"payment method not found"} |
| 500 | Falha ao apagar, por exemplo por vínculo existente. | {"error":"failed to delete payment method","detail":"..."} |