Ir para o conteúdo

Métodos de pagamento

Uma Fatura-Recibo (FR) regista o pagamento no momento da emissão, por isso exige um ou mais payments. Os ids dos métodos são específicos da conta — lista-os uma vez e reutiliza os ids de que precisas.

Listar os métodos da conta

from vendus import VendusClient

client = VendusClient.from_env()
for m in client.documents.list_payment_methods():
    print(m.id, m.title, m.type)   # ex.: 191432483 Dinheiro NU

Cada um é um PaymentMethod:

Campo Descrição
id o id a passar em Payment.method_id
title o teu nome de exibição, configurado na Vendus (ex.: "Dinheiro", "Multibanco")
type o código oficial Vendus — ex.: NU (numerário), CC (crédito), CD (débito), MB (referência MB), MBWAY, TB (transferência), DNP (conta corrente). title e type são independentes — uma conta pode chamar "Multibanco" a um método CD
status on / off

Anexar pagamentos a uma fatura-recibo

from decimal import Decimal
from vendus import Payment

cash = next(m for m in client.documents.list_payment_methods() if m.type == "NU")

receipt = client.documents.create_invoice_receipt(
    register_id=1,
    items=[...],
    payments=[Payment(method_id=cash.id, amount=Decimal("90.00"))],
)

Os pagamentos têm de cobrir o total do documento.

Dividir por vários métodos

payments=[
    Payment(method_id=cash.id, amount=Decimal("50.00")),
    Payment(method_id=mbway.id, amount=Decimal("40.00")),
]

Pagamento diferido

Um Payment pode levar date_due:

from datetime import date

Payment(method_id=transfer.id, amount=Decimal("90.00"), date_due=date(2026, 12, 31))

Campos de Payment: method_id (int, obrigatório), amount (Decimal, obrigatório, bruto), date_due (date, opcional).

Validado ao vivo

Um método único, vários métodos, pagamentos divididos e date_due estão todos validados contra a API real da Vendus.