Offertes

Offertes

Offertes ophalen en aanmaken. Zelfde shape als facturen, type quote. Scope: invoices.read / invoices.write.

Offertes ophalen

GET /v1/quotes
invoices.read

Type vast quote. Zelfde queryfilters als facturen

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Query
Naam Type Beschrijving
page integer Paginanummer (vanaf 1, default 1)
per_page integer Items per pagina (default 25, max 200)
id string
client_id string
legacy_status_id integer Legacy integer filter; removed in v2.
number string Filter op documentnummer
date_from string Factuurdatum vanaf (Y-m-d)
date_to string Factuurdatum tot (Y-m-d)
due_date_from string Vervaldatum vanaf (Y-m-d)
due_date_to string Vervaldatum tot (Y-m-d)
created_from string Aangemaakt vanaf
created_to string Aangemaakt tot
search string Vrije tekstzoekopdracht
payment_status string Filter op payment_status
sort string Sortering: invoice_date, due_date, created_at, number, id
order string asc of desc (default desc)
Request body

Geen

Response
data object[]
guid string
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
number string
Example: O.2026.165
title string
Example: Onderhoud juli
type string
Enum
invoice quote subscription
Example: quote
invoice_date string
Example: 2026-07-01
due_date string
Example: 2026-07-15
created_at string
Example: 2026-07-01T10:00:00+02:00
subtotal number
Example: 100
vat number
Example: 21
vat_price number
Example: 21
total_ex_vat number
Example: 100
total_inc_vat number
Example: 121
client_guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
payment_status string
Example: open
credit boolean
Example: false
meta object
page integer
Example: 1
per_page integer
Example: 25
total integer
Example: 1
pages integer
Example: 1

Examples

GET /v1/quotes
curl -X GET "https://api.appficient.nl/v1/quotes" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Offerte aanmaken

POST /v1/quotes
invoices.write

Zelfde create-body als facturen (title + client + optionele rows)

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Headers
Naam Type Beschrijving
Idempotency-Key string Optional on POST only; cached 24h; replay returns X-Idempotent-Replay
Request body
client_guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
title string
Example: Onderhoud juli
invoice_date string
Example: 2026-07-01
due_date string
Example: 2026-07-15
generation_mode string
Enum
concept definitive
Example: concept
rows object[]
name string
Example: Onderhoud
description string
Example: Maandelijks onderhoud
quantity integer
Example: 1
unit_price number
Example: 100
unit string
Example: stuk
vat string
Example: 21
Response
data object
guid string
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
number string
Example: O.2026.165
title string
Example: Onderhoud juli
type string
Enum
invoice quote subscription
Example: quote
invoice_date string
Example: 2026-07-01
due_date string
Example: 2026-07-15
subtotal number
Example: 100
vat_price number
Example: 21
total_ex_vat number
Example: 100
total_inc_vat number
Example: 121
client_guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
client_company_name string
Example: Voorbeeld BV
rows object[]
name string
Example: Onderhoud
description string
Example: Maandelijks onderhoud
quantity integer
Example: 1
unit string
Example: stuk
unit_price number
Example: 100
vat string
Example: 21
total_ex_vat number
Example: 100
total_inc_vat number
Example: 121
meta object
generation_mode string
Enum
concept definitive
Example: concept
pdf object
generated boolean
Example: false
status string Nullable
Example: null
message string Nullable
Example: null
url string Nullable
Example: null

Examples

POST /v1/quotes
curl -X POST "https://api.appficient.nl/v1/quotes" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "client_guid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "title": "Onderhoud juli",
  "invoice_date": "2026-07-01",
  "due_date": "2026-07-15",
  "generation_mode": "concept",
  "rows": [
    {
      "name": "Onderhoud",
      "description": "Maandelijks onderhoud",
      "quantity": 1,
      "unit_price": 100.00,
      "unit": "stuk",
      "vat": "21"
    }
  ]
}'

Curl, Node en response staan rechts naast dit endpoint.

Offerte ophalen

GET /v1/quotes/{id}
invoices.read
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body

Geen

Response
data object Required

ID-only (UUID). Internal ints (status/fase/employee) are not returned.

id string
number string
title string
type string

Document type is fixed by the route; not accepted on create.

Enum
invoice quote subscription
invoice_date string
due_date string
created_at string
subtotal number
vat_rate number
vat_amount number
total_excl_vat number
total_incl_vat number
client_id string
payment_status string

Free string matching Invoice_Payment_Status (exact). Not a closed enum in the handler.

paid_at string Nullable
sent_at string Nullable
project_number string Nullable
is_credit boolean
rows array
name string
description string
quantity number
unit string
unit_price number
vat_rate string
total_excl_vat number
total_incl_vat number
client_company_name string
client_firstname string
client_lastname string
web_url string
pdf_url string
meta object Required

Examples

GET /v1/quotes/{id}
curl -X GET "https://api.appficient.nl/v1/quotes/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Offerte bijwerken

PATCH /v1/quotes/{id}
invoices.write
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body
title string
invoice_date string

Y-m-d

due_date string

Y-m-d

payment_status string

Free string; applied when non-empty

Response
data object Required

ID-only (UUID). Internal ints (status/fase/employee) are not returned.

id string
number string
title string
type string

Document type is fixed by the route; not accepted on create.

Enum
invoice quote subscription
invoice_date string
due_date string
created_at string
subtotal number
vat_rate number
vat_amount number
total_excl_vat number
total_incl_vat number
client_id string
payment_status string

Free string matching Invoice_Payment_Status (exact). Not a closed enum in the handler.

paid_at string Nullable
sent_at string Nullable
project_number string Nullable
is_credit boolean
rows array
name string
description string
quantity number
unit string
unit_price number
vat_rate string
total_excl_vat number
total_incl_vat number
client_company_name string
client_firstname string
client_lastname string
web_url string
pdf_url string
meta object Required

Examples

PATCH /v1/quotes/{id}
curl -X PATCH "https://api.appficient.nl/v1/quotes/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "string",
    "invoice_date": "2026-07-01",
    "due_date": "2026-07-01",
    "payment_status": "string"
}'

Curl, Node en response staan rechts naast dit endpoint.

Offerte verwijderen

DELETE /v1/quotes/{id}
invoices.write
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body

Geen

Response
data object Required

ID-only (UUID). Internal ints (status/fase/employee) are not returned.

id string
number string
title string
type string

Document type is fixed by the route; not accepted on create.

Enum
invoice quote subscription
invoice_date string
due_date string
created_at string
subtotal number
vat_rate number
vat_amount number
total_excl_vat number
total_incl_vat number
client_id string
payment_status string

Free string matching Invoice_Payment_Status (exact). Not a closed enum in the handler.

paid_at string Nullable
sent_at string Nullable
project_number string Nullable
is_credit boolean
rows array
name string
description string
quantity number
unit string
unit_price number
vat_rate string
total_excl_vat number
total_incl_vat number
client_company_name string
client_firstname string
client_lastname string
web_url string
pdf_url string
meta object Required

Examples

DELETE /v1/quotes/{id}
curl -X DELETE "https://api.appficient.nl/v1/quotes/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Offerte versturen

POST /v1/quotes/{id}/send
invoices.write

Same body as invoice send; `send_type` default `quote`

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body
to string Required

Comma-separated emails

subject string Required
message string Required
cc string
send_type string

Mail/document send context. Default `invoice`. Free string accepted; domain switch keys are listed (recommended).

Enum
invoice quote credit invoice_rem1 invoice_rem2 invoice_rem3 quote_rem1 quote_rem2 quote_rem3 order_confirmation subscription workorder
Example: invoice
include_pdf boolean
Example: 1
Response
data object Required
success boolean
recipients array
recipients_list string
meta object Required

Examples

POST /v1/quotes/{id}/send
curl -X POST "https://api.appficient.nl/v1/quotes/{id}/send" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "string",
    "cc": "string",
    "subject": "string",
    "message": "string",
    "send_type": "invoice",
    "include_pdf": true
}'

Curl, Node en response staan rechts naast dit endpoint.

Offerte accepteren

POST /v1/quotes/{id}/accept
invoices.write
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body

Geen

Response
data object Required

ID-only (UUID). Internal ints (status/fase/employee) are not returned.

id string
number string
title string
type string

Document type is fixed by the route; not accepted on create.

Enum
invoice quote subscription
invoice_date string
due_date string
created_at string
subtotal number
vat_rate number
vat_amount number
total_excl_vat number
total_incl_vat number
client_id string
payment_status string

Free string matching Invoice_Payment_Status (exact). Not a closed enum in the handler.

paid_at string Nullable
sent_at string Nullable
project_number string Nullable
is_credit boolean
rows array
name string
description string
quantity number
unit string
unit_price number
vat_rate string
total_excl_vat number
total_incl_vat number
client_company_name string
client_firstname string
client_lastname string
web_url string
pdf_url string
meta object Required

Examples

POST /v1/quotes/{id}/accept
curl -X POST "https://api.appficient.nl/v1/quotes/{id}/accept" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Offerte-PDF downloaden

GET /v1/quotes/{id}/pdf
invoices.read
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body

Geen

Response
data object Required
id string
type string

Document type is fixed by the route; not accepted on create.

Enum
invoice quote subscription
pdf_url string
meta object Required

Examples

GET /v1/quotes/{id}/pdf
curl -X GET "https://api.appficient.nl/v1/quotes/{id}/pdf" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.