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
Resposta
201Forma criada
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
Resposta
200Forma alterada
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
Resposta
200Apagada
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":"..."} |