Klanten

Klanten

Klanten (relations) ophalen en beheren, inclusief incasso-mandaat. Scope: relations.read / relations.write. Velden: type (company|private), company_name, firstname, lastname, email, phone, city, country, external_id, payment_term, quote_expiration_days. Nested client: { … } mag op create/update.

Klanten ophalen

GET /v1/clients
clients.read
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)
search string Zoeken
contact_type string Filter op contacttype
Request body

Geen

Response
data object[]
guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
type string
Enum
company private
Example: company
company_name string
Example: Voorbeeld BV
firstname string Nullable
Example: null
lastname string Nullable
Example: null
email string
phone string
Example: +31612345678
city string
Example: Amsterdam
country string
Example: NL
debtor_number string
Example: D-1001
meta object
page integer
Example: 1
per_page integer
Example: 25
total integer
Example: 1
pages integer
Example: 1

Examples

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

Curl, Node en response staan rechts naast dit endpoint.

Klant aanmaken

POST /v1/clients

Alias van POST /v1/client

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
type string
Enum
company private
Example: company
company_name string
Example: Voorbeeld BV
Response
data object
guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
type string
Enum
company private
Example: company
company_name string
Example: Voorbeeld BV
firstname string Nullable
Example: null
lastname string Nullable
Example: null
email string
phone string
Example: +31612345678
city string
Example: Amsterdam
country string
Example: NL
debtor_number string
Example: D-1001
meta object[]

Examples

POST /v1/clients
curl -X POST "https://api.appficient.nl/v1/clients" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "company",
  "company_name": "Voorbeeld BV"
}'

Curl, Node en response staan rechts naast dit endpoint.

Klant ophalen

GET /v1/clients/{id}
clients.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

UUID `id` only; no internal integer PKs in response.

id string
type string

Relation type. On write, only exact `company` stays company; any other value becomes `private`.

Enum
company private
company_name string
firstname string
lastname string
email string
phone string
city string
country string
debtor_number string
meta object Required

Examples

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

Curl, Node en response staan rechts naast dit endpoint.

Klant bijwerken

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

Partial update

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

Relation type. On write, only exact `company` stays company; any other value becomes `private`.

Enum
company private
company_name string

Required when type=company

firstname string

Required (with/or lastname) when type=private

lastname string
email string
phone string
city string
country string
external_id string
payment_term integer
quote_expiration_days integer
Response
data object Required

UUID `id` only; no internal integer PKs in response.

id string
type string

Relation type. On write, only exact `company` stays company; any other value becomes `private`.

Enum
company private
company_name string
firstname string
lastname string
email string
phone string
city string
country string
debtor_number string
meta object Required

Examples

PATCH /v1/clients/{id}
curl -X PATCH "https://api.appficient.nl/v1/clients/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "company",
    "company_name": "string",
    "firstname": "string",
    "lastname": "string",
    "email": "string",
    "phone": "string",
    "city": "string",
    "country": "string",
    "external_id": "string",
    "payment_term": 0,
    "quote_expiration_days": 0
}'

Curl, Node en response staan rechts naast dit endpoint.

Incasso verifiëren

POST /v1/clients/{id}/direct-debit/verification
clients.write
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Headers
Naam Type Beschrijving
Idempotency-Key string Optional on POST only; cached 24h; replay returns X-Idempotent-Replay
Request body
amount number
Example: 0.01
description string
verification object
amount number
description string
Response
data object Required
status string
Enum
created
payment_url string

App host payment link (APP_PROD_URL), never the API host

external_id string
amount number
description string

Mollie/payment description; empty input uses translated INCASSO_VERIFICATION_ROW_DESC_TXT; translation keys (*_TXT) are translated

provider string
canceled_previous boolean
meta object Required

Examples

POST /v1/clients/{id}/direct-debit/verification
curl -X POST "https://api.appficient.nl/v1/clients/{id}/direct-debit/verification" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 0.01,
    "description": "string",
    "verification": {
        "amount": 0,
        "description": "string"
    }
}'

Curl, Node en response staan rechts naast dit endpoint.

Machtiging ophalen

GET /v1/clients/{id}/direct-debit/mandate
clients.read

Optional query `subscription_id` may activate a platform subscription when mandate authorized

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

Geen

Response
data object Required
client_found boolean
provider string
mandate_present boolean
mandate_authorized boolean
direct_debit_enabled integer
mandate_status string

Observed client/provider mandate statuses.

Enum
none pending verified authorized active
customer_id string

External provider customer id

mandate_id string

External provider mandate id

can_activate_subscription boolean
subscription_activation object
status string
Enum
skipped not_found activated update_failed not_authorized
meta object Required

Examples

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

Curl, Node en response staan rechts naast dit endpoint.

Klant koppelen

POST /v1/clients/{id}/links
clients.write

Body `client_id` of the person to link

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

Person/contact client id to link

function string
department string
Response
data object Required
company_id string
client_id string
function string
department string
meta object Required

Examples

POST /v1/clients/{id}/links
curl -X POST "https://api.appficient.nl/v1/clients/{id}/links" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "function": "string",
    "department": "string"
}'

Curl, Node en response staan rechts naast dit endpoint.