Overzicht
Pakketfeature quotes. Velden en regels werken als bij facturen, met quote_date en valid_until (beide verplicht, valid_until op of na quote_date) in plaats van factuur- en vervaldatum.
| Status | Betekenis |
|---|---|
draft | Concept; wijzigbaar en verwijderbaar |
sent | Verzonden |
expired | Verlopen. Filter status=expired geeft ook verzonden offertes waarvan valid_until verstreken is |
accepted | Geaccepteerd |
rejected | Afgewezen |
Endpoints
/quotesOffertes opvragen
Gepagineerde lijst zonder regels; standaard nieuwste offertedatum eerst.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.view
Queryparameters
statusstringdraft,sent,expired,acceptedofrejectedcustomer_iduuidAlleen offertes van deze klant
sortstringquote_date,valid_until,quote_number,total_amount,statusofcreated_at;-voor aflopendper_pageinteger1–100, standaard 50
curl "https://factora.one/api/v1/quotes?status=sent" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"current_page": 1,
"data": [
{
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "sent",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": "2026-11-12T10:05:00+01:00",
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00"
}
],
"first_page_url": "https://factora.one/api/v1/quotes?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://factora.one/api/v1/quotes?page=1",
"next_page_url": null,
"path": "https://factora.one/api/v1/quotes",
"per_page": 50,
"prev_page_url": null,
"to": 1,
"total": 1
}
}/quotes/{id}Offerte tonen
Offerte met alle regels.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.view
curl "https://factora.one/api/v1/quotes/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "draft",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": null,
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250
}
]
}
}/quotesConceptofferte aanmaken
Maakt een concept met regels en het volgende offertenummer.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.manage
Body
customer_iduuidverplichtKlant van dezelfde organisatie
quote_datedateverplichtOffertedatum
valid_untildateverplichtGeldig tot, op of na
quote_datenotesstringMax. 1000 tekens
linesarrayverplichtMinimaal één regel. Bij
PATCHvervangt deze lijst alle regels.lines[].iduuidAlleen bij
PATCH: bestaande regel behouden en bijwerkenlines[].descriptionstringverplichtMax. 5000 tekens; meerdere regels toegestaan
lines[].quantitynumberverplichtMinimaal
0.01lines[].unit_priceintegerverplichtPrijs per eenheid in centen exclusief btw, minimaal
0lines[].tax_ratenumberverplichtBtw-percentage, 0–100
curl -X POST "https://factora.one/api/v1/quotes" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"notes": "Deze offerte is 30 dagen geldig.",
"lines": [
{
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21
}
]
}'201 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "draft",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": null,
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250
}
]
}
}/quotes/{id}Conceptofferte bijwerken
Alleen concepten. lines vervangt alle regels.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.manage
Mogelijke fouten
422Alleen conceptoffertes kunnen bewerkt worden.
curl -X PATCH "https://factora.one/api/v1/quotes/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"valid_until": "2026-12-31"
}'200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-31",
"status": "draft",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": null,
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250
}
]
}
}/quotes/{id}Conceptofferte verwijderen
Alleen concepten.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.manage
curl -X DELETE "https://factora.one/api/v1/quotes/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"message": "Offerte verwijderd."
}/quotes/{id}/sendOfferte versturen per e-mail
Verstuurt de offerte naar de klant en zet de status op sent.
- Pakketfeature
- quotes + automatic_emails
- Recht (app-login)
- quotes.send
curl -X POST "https://factora.one/api/v1/quotes/<id>/send" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "sent",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": "2026-11-12T10:05:00+01:00",
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250
}
]
}
}/quotes/{id}/reminderHerinnering versturen
Stuurt de klant een herinnering voor een openstaande offerte.
- Pakketfeature
- quotes + automatic_emails
- Recht (app-login)
- quotes.send
curl -X POST "https://factora.one/api/v1/quotes/<id>/reminder" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "sent",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": "2026-11-12T10:05:00+01:00",
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250
}
]
}
}/quotes/{id}/mark-as-sentMarkeren als verzonden
Zet een concept op sent zonder e-mail.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.manage
curl -X POST "https://factora.one/api/v1/quotes/<id>/mark-as-sent" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "sent",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": "2026-11-12T10:05:00+01:00",
"accepted_at": null,
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Projectimplementatie",
"quantity": 1,
"unit_price": 125000,
"tax_rate": 21,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250
}
]
}
}/quotes/{id}/acceptOfferte accepteren
Alleen voor verzonden of verlopen offertes.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.manage
Mogelijke fouten
422Alleen verzonden of verlopen offertes kunnen geaccepteerd worden.
curl -X POST "https://factora.one/api/v1/quotes/<id>/accept" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "accepted",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": "2026-11-12T10:05:00+01:00",
"accepted_at": "2026-11-13T11:00:00+01:00",
"rejected_at": null,
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00"
}
}/quotes/{id}/rejectOfferte afwijzen
Alleen voor verzonden of verlopen offertes.
- Pakketfeature
- quotes
- Recht (app-login)
- quotes.manage
curl -X POST "https://factora.one/api/v1/quotes/<id>/reject" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3c8b3d-4ca0-4f31-ad84-5091be0f7c43",
"quote_number": "OFF-2026-0031",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"quote_date": "2026-11-12",
"valid_until": "2026-12-12",
"status": "rejected",
"is_expired": false,
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"notes": "Deze offerte is 30 dagen geldig.",
"sent_at": "2026-11-12T10:05:00+01:00",
"accepted_at": null,
"rejected_at": "2026-11-13T11:00:00+01:00",
"converted_invoice_id": null,
"created_at": "2026-11-12T09:31:40+01:00",
"updated_at": "2026-11-12T09:31:40+01:00"
}
}/quotes/{id}/convertOmzetten naar factuur
Maakt een conceptfactuur met de regels van de offerte. Vereist ook de factuurfeature en het recht invoices.manage.
- Pakketfeature
- quotes + invoices
- Recht (app-login)
- quotes.manage + invoices.manage
curl -X POST "https://factora.one/api/v1/quotes/<id>/convert" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"201 Voorbeeldantwoord
{
"data": {
"id": "9d3c7a2c-3b9f-4e20-9c73-4f80ad9e6b32",
"invoice_number": "2026-0142",
"customer_id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"customer": {
"id": "9d3c6f1b-2a8e-4d1f-8b62-3e7f9c8d5a21",
"name": "Jansen Bouw",
"email": "info@jansenbouw.nl"
},
"invoice_date": "2026-11-12",
"due_date": "2026-11-26",
"status": "draft",
"is_overdue": false,
"invoice_type": "regular",
"is_credit_note": false,
"credited_invoice_id": null,
"credit_note_id": null,
"currency": "EUR",
"subtotal": 125000,
"tax_amount": 26250,
"total_amount": 151250,
"paid_amount": 0,
"outstanding_amount": 151250,
"notes": null,
"labels": [],
"sent_at": null,
"paid_at": null,
"cancelled_at": null,
"cancellation_reason": null,
"public_pay_url": null,
"created_at": "2026-11-12T09:20:11+01:00",
"updated_at": "2026-11-12T09:20:11+01:00",
"lines": [
{
"id": "9d3cbe60-7fd3-4264-d0b7-83c4e132af76",
"description": "Website onderhoud",
"quantity": 2,
"unit_price": 7500,
"tax_rate": 21,
"subtotal": 15000,
"tax_amount": 3150,
"total_amount": 18150
}
]
}
}/quotes/{id}/pdfPDF downloaden
Geeft de offerte als PDF.
- Pakketfeature
- quotes + pdf_export
- Recht (app-login)
- quotes.view
curl "https://factora.one/api/v1/quotes/<id>/pdf" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-o document.pdfAntwoord: het PDF-bestand met Content-Type: application/pdf.
Lees ook
- FacturenConceptfacturen maken en bijwerken, versturen, betalingen registreren, annuleren met creditnota en PDF downloaden.
- KlantenKlanten zoeken, aanmaken, bijwerken en verwijderen, inclusief instellingen voor automatisch factureren.
- ProductenDe productcatalogus: producten en diensten met prijs, btw, eenheid en factuurinterval.