Formas de pagamento
Gerencie as opções de pagamento da loja: liste, consulte, crie, atualize e desative formas de pagamento e a configuração do processador.
A API de formas de pagamento gerencia as opções que o cliente pode escolher no checkout. Uma forma de pagamento liga um processador (um gateway de cartão, o PayPal, uma transferência bancária etc.) às configurações que definem quando e como ela é oferecida: nome, instruções, limites de valor do pedido, países permitidos e uma taxa adicional opcional.
Você usa estas rotas ao montar uma loja, ao trocar as credenciais de um processador ou quando precisa ligar e desligar uma forma de pagamento sem abrir o painel. Elas ficam em $BASE_URL/api/2.0/payments, exigem uma conta de administrador e usam credenciais HTTP Basic ($EMAIL:$API_KEY).
Como funciona
Quando o cliente chega ao checkout, a loja oferece as formas de pagamento configuradas e ativas para o pedido. Da escolha até a confirmação, o fluxo é sempre o mesmo:
- Escolha da forma de pagamentoO cliente escolhe uma forma de pagamento durante o checkout.
- Coleta dos dados de pagamentoO sistema coleta as informações de pagamento que a forma escolhida exige.
- Processamento do pagamentoO pagamento é enviado ao processador.
- Atualização do status do pedidoO status do pedido é atualizado conforme o resultado do pagamento.
- ConfirmaçãoO cliente recebe a confirmação do pagamento.
Cada processador pode ter requisitos de integração próprios, então consulte a documentação do processador que você usa para conhecer as configurações dele.
A categoria da forma de pagamento é dada por payment_category:
| Forma de pagamento | Código | Descrição |
|---|---|---|
| Cartão de crédito | cc | Processa pagamentos pelas principais bandeiras de cartão. Aceita vários processadores. |
| PayPal | paypal | Permite que o cliente pague com a conta PayPal. |
| Transferência bancária | bank | Gera as instruções para uma transferência bancária direta. |
| Pagamento na entrega | cod | Pagamento recebido no momento da entrega. |
| PIX | pix | Sistema de pagamento instantâneo para lojistas brasileiros. |
| Boleto | boleto | Sistema brasileiro de boleto bancário. |
Conceitos principais
O objeto da forma de pagamento
Ao criar ou atualizar uma forma de pagamento, você envia a configuração dela. Este é um cartão de crédito configurado com um gateway de cartão:
{
"payment_id": "16",
"processor": "stripe",
"payment_category": "cc",
"company_id": "1",
"position": 10,
"status": "A", // A - active, D - disabled
"processor_params": {
"api_key": "sk_test_abcdefghijklmnopqrstuvwxyz",
"publishable_key": "pk_test_abcdefghijklmnopqrstuvwxyz",
"test_mode": false,
"payment_types": ["visa", "mastercard", "amex"]
},
"localization": {
"payment_name": "Credit Card",
"description": "Pay securely with your credit card",
"instructions": "Enter your card details to complete the payment"
},
"surcharge": 0,
"tax_ids": ["1", "2"],
"min_order_amount": 5.00,
"max_order_amount": null,
"allowed_countries": ["BR", "US", "CA"]
}Campos da forma de pagamento
payment_idstringprocessorstringstripe.payment_categorystringccpaypalbankcodpixboletocompany_idstringpositionintegerstatusstringADA para ativa, D para desativada.processor_paramsobjectapi_key, publishable_key, test_mode e payment_types.localizationobjectpayment_name, description e instructions.surchargenumbertax_idsarraymin_order_amountnumbermax_order_amountnumbernull significa sem limite.allowed_countriesarrayEndpoints
| Método | Caminho | Finalidade | Autenticação |
|---|---|---|---|
| GET | /api/2.0/payments | Devolve a lista de todas as formas de pagamento configuradas na loja, veja abaixo | Admin |
| GET | /api/2.0/payments/{payment_id} | Devolve os detalhes da configuração de uma forma de pagamento, veja abaixo | Admin |
| POST | /api/2.0/payments | Cria a configuração de uma nova forma de pagamento, veja abaixo | Admin |
| PUT | /api/2.0/payments/{payment_id} | Atualiza a configuração de uma forma de pagamento existente, veja abaixo | Admin |
| DELETE | /api/2.0/payments/{payment_id} | Desativa uma forma de pagamento, veja abaixo | Admin |
GET, POST, e GET, PUT, DELETE em /api/payments/{id} | /api/payments | As URLs mais curtas da coleção e de uma forma de pagamento, veja Endpoints | Admin |
Listar formas de pagamento
/api/2.0/paymentsAdminDevolve a lista de todas as formas de pagamento configuradas na loja
Parâmetros de consulta
pageintegerpadrão: 1items_per_pageintegerpadrão: 10curl -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/payments"Consultar uma forma de pagamento
/api/2.0/payments/{payment_id}AdminDevolve os detalhes da configuração de uma forma de pagamento
Parâmetros de caminho
payment_idintegerobrigatóriocurl -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/payments/16"Criar uma forma de pagamento
/api/2.0/paymentsAdminCria a configuração de uma nova forma de pagamento
Corpo da requisição
processorstringstripe.payment_categorystringccpaypalbankcodpixboletocompany_idstringpositionintegerstatusstringADA para ativa, D para desativada.processor_paramsobjectlocalizationobjectpayment_name, description e instructions exibidos ao cliente.surchargenumbertax_idsarraymin_order_amountnumbermax_order_amountnumbernull para não ter limite.allowed_countriesarraycurl -X POST -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/payments" \
-H "Content-Type: application/json" \
-d '{
"processor": "stripe",
"payment_category": "cc",
"company_id": "1",
"position": 10,
"status": "A",
"processor_params": {
"api_key": "sk_test_abcdefghijklmnopqrstuvwxyz",
"publishable_key": "pk_test_abcdefghijklmnopqrstuvwxyz",
"test_mode": false,
"payment_types": ["visa", "mastercard", "amex"]
},
"localization": {
"payment_name": "Credit Card",
"description": "Pay securely with your credit card",
"instructions": "Enter your card details to complete the payment"
},
"surcharge": 0,
"tax_ids": ["1", "2"],
"min_order_amount": 5.00,
"max_order_amount": null,
"allowed_countries": ["BR", "US", "CA"]
}'Atualizar uma forma de pagamento
/api/2.0/payments/{payment_id}AdminAtualiza a configuração de uma forma de pagamento existente
Parâmetros de caminho
payment_idintegerobrigatórioCorpo da requisição
statusstringADA para ativa, D para desativada.processor_paramsobjectlocalizationobjectsurchargenumbermin_order_amountnumbermax_order_amountnumberallowed_countriesarrayA documentação original não traz um corpo para esta rota; os campos acima são os do objeto da forma de pagamento. O exemplo abaixo desativa a forma de pagamento.
curl -X PUT -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/payments/16" \
-H "Content-Type: application/json" \
-d '{"status": "D"}'Desativar uma forma de pagamento
/api/2.0/payments/{payment_id}AdminDesativa uma forma de pagamento
Parâmetros de caminho
payment_idintegerobrigatóriocurl -X DELETE -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/payments/16"Erros comuns
- Colocar chaves do processador, como
api_key, em código de navegador ou de aplicativo. Envie-as apenas a partir do seu servidor. - Ativar uma forma de pagamento em produção antes de testá-la no modo sandbox ou de teste.
- Deixar sem definição os limites de valor do pedido (
min_order_amountemax_order_amount), o que facilita a passagem de transações fraudulentas. - Oferecer uma forma de pagamento em países onde ela não é aceita. Preencha
allowed_countries. - Manter as mesmas credenciais do processador para sempre. Troque-as periodicamente.