Implementando um fluxo de cobrança
1. Importe o SDK da AbacatePay
Aviso
Caso ainda não tenha a sua chave de API siga o tutorial Como pegar minha chave de acesso
from abacatepay import AbacatePay
client = AbacatePay("<sua chave de API>") # (1)
- Mantenha sua chave segura! Prefira armazená-la como uma variável de ambiente ou em outro local apropriado.
2. Adicione os produtos que deseja incluir na cobrança
products = [
{
"external_id": "123",
"name": "PC gamer",
"quantity": 1,
"price": 1600_00, # (1)
"description": "PC gamer completo de última geração"
}
]
- O preço deve ser informado em centavos (ex: R\$ 1600,00 →
160000
).
💡 Usando modelos (opcional)
Se preferir, você também pode usar o modelo de produto fornecido pelo SDK:
from abacatepay.products import Product
products = [
Product(
external_id="123",
name="PC gamer",
quantity=1,
price=1600_00,
description="PC gamer completo de última geração"
)
]
3. Crie a cobrança
billing = client.billing.create(
products=products,
return_url="https://mysite.com/return", # (1)
completion_url="https://mysite.com/completed",# (2)
customer_id='cust_1234', # (3)
frequency='ONE_TIME', # (4)
)
print(billing.url)
# > https://abacatepay.com/pay/aaaaaaa
- URL para onde o cliente será redirecionado ao clicar em "Voltar".
- URL de redirecionamento após o pagamento ser concluído.
- ID do cliente já cadastrado na AbacatePay.
- Use
ONE_TIME
para cobranças únicas ouMULTIPLE_PAYMENTS
para recorrências manuais.
billing = client.billing.create(
products=products,
return_url="https://mysite.com/return", # (1)
completion_url="https://mysite.com/completed",# (2)
customer={ # (3)
"name": "John Doe",
"email": "john@email.com",
"cellphone": "(21) 5032-2583",
"tax_id": "123.456.789-10" # (4)
},
frequency='ONE_TIME', # (5)
)
print(billing.url)
# > https://abacatepay.com/pay/aaaaaaa
- URL para onde o cliente será redirecionado ao clicar em "Voltar".
- URL de redirecionamento após o pagamento ser concluído.
- Se o cliente já existir (mesmo email ou CPF/CNPJ), ele não será recriado.
- CPF ou CNPJ do cliente.
- Use
ONE_TIME
para cobranças únicas ouMULTIPLE_PAYMENTS
para recorrências manuais.
4. Listando cobranças existentes
Depois de criar suas cobranças, você pode acessar o histórico facilmente:
billings = client.billing.list()
print(len(billings))
for billing in billings:
print(billing.id, billing.status)
Pronto! Agora é só integrar com seu sistema e começar a cobrar seus clientes com praticidade 🚀😊