Abonnementen

Abonnementen

Terugkerende factuurdocumenten (Invoice_Type = subscription). Lijst/detail via invoice-handlers. Create/update gebruikt relations.write.

Abonnementen ophalen

GET /v1/subscriptions
invoices.read

Type vast subscription. 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: F.2026.522
title string
Example: Onderhoud juli
type string
Enum
invoice quote subscription
Example: subscription
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/subscriptions
curl -X GET "https://api.appficient.nl/v1/subscriptions" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Abonnement aanmaken

POST /v1/subscriptions
relations.write

frequency mappt naar term (default monthly). Nested subscription: { … } mag

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: Maandelijks onderhoud
frequency string
Enum
day daily week weekly weeks month monthly months quarter quarterly half_year half_yearly year yearly four_weeks
Example: monthly
subscription_start string
Example: 2026-07-01
day_of_month integer
Example: 1
lines object[]
title string
Example: Onderhoud
quantity integer
Example: 1
unit_price number
Example: 89
unit string
Example: stuk
vat_code string
Example: 21
Response
data object
guid string
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status string
Enum
concept open
Example: concept
start_date string
Example: 2026-07-01
end_date string Nullable
Example: null
term string
Enum
weekly four_weeks monthly quarterly half_yearly yearly
Example: monthly
schedule object
schedule_type string
Enum
start_date day_of_month
Example: day_of_month
day_of_month integer
Example: 1
day_of_week string Nullable
Example: null
next_generate string
Example: 2026-08-01
meta object[]

Examples

POST /v1/subscriptions
curl -X POST "https://api.appficient.nl/v1/subscriptions" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "client_guid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "title": "Maandelijks onderhoud",
  "frequency": "monthly",
  "subscription_start": "2026-07-01",
  "day_of_month": 1,
  "lines": [
    {
      "title": "Onderhoud",
      "quantity": 1,
      "unit_price": 89.00,
      "unit": "stuk",
      "vat_code": "21"
    }
  ]
}'

Curl, Node en response staan rechts naast dit endpoint.

Abonnement ophalen

GET /v1/subscriptions/{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/subscriptions/{id}
curl -X GET "https://api.appficient.nl/v1/subscriptions/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Abonnement bijwerken

PATCH /v1/subscriptions/{id}
clients.write

Providing `lines` replaces all existing lines

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

Subscription frequency (canonical). Default `monthly` when omitted.

Enum
weekly four_weeks monthly quarterly half_yearly yearly
Example: monthly
subscription_start string
subscription_end string
day_of_month integer
day_of_week integer
lines array
title string
description string
quantity number
unit_price number
unit string
vat_code string
Response
data object Required

ID-only (UUID); no `id`.

id string
status string

Create always returns `draft`. Update returns `draft` if no number else `open`.

Enum
draft open
start_date string
end_date string Nullable
term string

Canonical subscription term in responses.

Enum
weekly four_weeks monthly quarterly half_yearly yearly
schedule object
schedule_type string
Enum
start_date day_of_month
day_of_month integer
day_of_week integer

ISO weekday 1=Monday … 7=Sunday

next_generate string
meta object Required

Examples

PATCH /v1/subscriptions/{id}
curl -X PATCH "https://api.appficient.nl/v1/subscriptions/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "string",
    "frequency": "monthly",
    "subscription_start": "2026-07-01",
    "subscription_end": "2026-07-01",
    "day_of_month": 0,
    "day_of_week": 0,
    "lines": [
        {
            "title": "string",
            "description": "string",
            "quantity": 0,
            "unit_price": 0,
            "unit": "string",
            "vat_code": "string"
        }
    ]
}'

Curl, Node en response staan rechts naast dit endpoint.

Abonnement deactiveren

POST /v1/subscriptions/{id}/deactivate
clients.write

Optional body `subscription_end` (Y-m-d, default today)

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

Y-m-d; defaults to today

Response
data object Required
id string
status string
Enum
deactivated
end_date string
meta object Required

Examples

POST /v1/subscriptions/{id}/deactivate
curl -X POST "https://api.appficient.nl/v1/subscriptions/{id}/deactivate" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "subscription_end": "2026-07-01"
}'

Curl, Node en response staan rechts naast dit endpoint.