FacturareIntră în aplicație
API pentru firma taÎncasări și chitanțe · pagina 5 din 9

Încasări și chitanțe

Cât s-a încasat dintr-o factură și cum, plus chitanțele, cu numerotarea lor.

Actualizat la

Încasări

POST …/documents/{document_id}/payments înregistrează o încasare pe o factură emisă: suma (implicit restul de încasat), data (implicit azi), modul și o referință, de exemplu numărul ordinului de plată:

{ "amount": 738.10, "paid_on": "2026-10-15", "method": "ordin_plata", "reference": "OP 1187" }
  • Încasările parțiale se adună; o factură poate avea oricâte.
  • "method": "numerar" emite o chitanță pentru sumă: încasarea în numerar se face cu chitanță.
  • Răspunsul este factura, cu încasarea în payments și starea nouă în payment.
  • DELETE /companies/{company_id}/payments/{payment_id} șterge o încasare greșită. Una făcută de o chitanță dispare doar odată cu anularea chitanței.

Starea plății

Fiecare factură emisă are payment.status: unpaid, partial, paid, overpaid sau reversed (stornată integral). Restul de încasat (outstanding) ține cont de stornări, iar overdue spune că scadența a trecut. Când o factură ajunge încasată integral, primești document.paid. Lista GET …/documents?payment=overdue dă facturile restante.

Chitanțe

POST /companies/{company_id}/receipts emite o chitanță:

  • pentru o factură, cu document_id: suma, plătitorul și descrierea vin din factură, iar chitanța o și încasează;
  • la liber, fără document_id: dai suma, plătitorul și ce reprezintă suma.

Numărul vine din seria de chitanțe a firmei. O chitanță nu se șterge: se anulează (/cancel), rămâne în serie cu starea cancelled, iar încasarea ei dispare de pe factură. PDF-ul este la /pdf, iar /email o trimite plătitorului (pentru firmele verificate).

Firmele fără evidența încasărilor

O firmă poate alege în aplicație să nu țină evidența încasărilor (track_payments: false): atunci aplicația nu mai arată restanțe și sume de încasat. Prin API, încasările și starea plății rămân disponibile.

Referința

Înregistrează o încasare

POST /api/v1/companies/{company_id}/documents/{document_id}/payments

Permisiune: payments:write.

Pe o factură emisă. Cu method: "numerar" se emite o chitanță. Răspunsul este factura, cu încasarea în payments.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
document_id în adresăintegerId-ul documentului.

Corp: PaymentInput, de exemplu.

{ "amount": 738.1, "paid_on": "2026-10-15", "method": "ordin_plata", "reference": "OP 1187" }

Răspuns 201: Document.

Lista încasărilor

GET /api/v1/companies/{company_id}/payments

Permisiune: payments:read.

Toate încasările firmei, cele mai noi primele.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
fromdateÎncasate de la data.
todatePână la data (inclusiv).
document_idintegerAle unei facturi.
limitintegerCâte pe pagină, 1–100. Implicit 25.
starting_afterstringnext_cursor din pagina anterioară.

Răspuns 200: o List de Payment.

Șterge o încasare

DELETE /api/v1/companies/{company_id}/payments/{payment_id}

Permisiune: payments:write.

O încasare făcută de o chitanță nu se șterge: se anulează chitanța.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
payment_id în adresăintegerId-ul încasării.

Răspuns 200: Deleted.

Lista chitanțelor

GET /api/v1/companies/{company_id}/receipts

Permisiune: payments:read.

Chitanțele firmei, cele mai noi primele.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
fromdateEmise de la data.
todatePână la data (inclusiv).
statusissued | cancelledEmise sau anulate.
document_idintegerAle unei facturi.
limitintegerCâte pe pagină, 1–100. Implicit 25.
starting_afterstringnext_cursor din pagina anterioară.

Răspuns 200: o List de Receipt.

Emite o chitanță

POST /api/v1/companies/{company_id}/receipts

Permisiune: payments:write.

Pentru o factură emisă, achitată sau nu (încasează în numerar restul de plată; peste el, se leagă de încasarea existentă) sau la liber, fără factură.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.

Corp: ReceiptInput, de exemplu.

{ "document_id": 812, "amount": 200 }

Răspuns 201: Receipt.

{
  "id": 91, "object": "receipt", "number": "CH 17", "issue_date": "2026-10-15", "amount": 200, "currency": "RON",
  "payer": { "name": "Beta Construct SRL", "cif": "RO18547290", "address": "Str. Fabricii 12, Sector 3, București" },
  "description": "Contravaloare factura FCT 42 din 2026-10-09", "document_id": 812, "document_number": "FCT 42", "status": "issued"
}

O chitanță

GET /api/v1/companies/{company_id}/receipts/{receipt_id}

Permisiune: payments:read.

Chitanța.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
receipt_id în adresăintegerId-ul chitanței.

Răspuns 200: Receipt.

Anulează o chitanță

POST /api/v1/companies/{company_id}/receipts/{receipt_id}/cancel

Permisiune: payments:write.

Chitanța rămâne în serie, anulată; încasarea făcută de ea dispare de pe factură, o încasare de dinainte rămâne.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
receipt_id în adresăintegerId-ul chitanței.

Răspuns 200: Receipt.

Trimite chitanța pe email

POST /api/v1/companies/{company_id}/receipts/{receipt_id}/email

Permisiune: payments:write.

PDF-ul chitanței, de la adresa Chappa. Doar pentru o firmă verificată, conectată la ANAF.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
receipt_id în adresăintegerId-ul chitanței.

Corp: EmailInput.

Răspuns 200: Email.

PDF-ul chitanței

GET /api/v1/companies/{company_id}/receipts/{receipt_id}/pdf

Permisiune: payments:read.

Chitanța în PDF.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
receipt_id în adresăintegerId-ul chitanței.

Răspuns 200: un fișier PDF (application/pdf).

Obiectul PaymentInput

O încasare pe o factură emisă.

CâmpTipCe este
amountnumberSuma. Implicit restul de încasat.
paid_ondateData. Implicit azi.
methodordin_plata | card | cec | bon_fiscal | altul | numerarCum s-a plătit. Implicit ordin_plata. numerar emite o chitanță.
referencestringReferința plății (de exemplu din extras).
notestringNotă.

Obiectul Payment

O încasare.

CâmpTipCe este
idintegerId-ul încasării.
objectpaymentMereu payment.
document_idintegerFactura.
document_numberstring sau nullNumărul ei.
amountnumberSuma.
currencystring sau nullMoneda facturii.
paid_ondateData.
methodstringModul.
referencestring sau nullReferința.
notestring sau nullNota.
receipt_idinteger sau nullChitanța legată de ea (o anulezi pe ea, nu încasarea).
receipt_numberstring sau nullNumărul chitanței.

Obiectul PaymentState

Cât s-a încasat dintr-o factură emisă.

CâmpTipCe este
statusnot_applicable | unpaid | partial | paid | overpaid | reversedNeîncasată, parțial, încasată, încasată în plus, stornată integral.
paidnumberSuma încasată.
outstandingnumberRest de încasat (după stornări).
overduebooleanScadența a trecut și mai are rest de încasat.
collected_at_issuebooleanDoar în document: încasată integral la emitere.

Obiectul ReceiptInput

O chitanță: pentru o factură sau la liber.

CâmpTipCe este
document_idintegerFactura încasată. Lipsă: chitanță la liber.
amountnumberSuma. Implicit restul facturii.
issue_datedateData. Implicit azi.
payer_namestringPlătitorul. Implicit clientul facturii.
payer_cifstringCodul fiscal al plătitorului.
payer_addressstringAdresa plătitorului.
descriptionstringCe reprezintă suma. Implicit „Contravaloare factura …”.
series_idintegerSeria. Implicit cea principală de chitanțe.

Obiectul Receipt

O chitanță.

CâmpTipCe este
idintegerId-ul chitanței.
objectreceiptMereu receipt.
numberstringSeria și numărul.
issue_datedateData.
amountnumberSuma.
currencystringMoneda.
payerobjectname, cif, address.
descriptionstringCe reprezintă suma.
document_idinteger sau nullFactura încasată.
document_numberstring sau nullNumărul ei.
statusissued | cancelledEmisă sau anulată.