Skip to main content
POST
/
punch-cards
Create Punch Card
curl --request POST \
  --url https://api.mijnklantportaal.nl/v1/punch-cards \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Driving lessons",
  "punches": 20,
  "punchLabel": "lessons",
  "description": "Lessons in a BMW, Mon-Fri 09AM-05PM",
  "forSale": true,
  "price": "229.95",
  "vatRate": 21,
  "expiryValue": 3,
  "expirePeriod": "years"
}
'
{
  "id": "pcd_abc12345def678",
  "name": "Driving lessons",
  "description": "Lessons in a BMW, Mon-Fri 09AM-05PM",
  "punches": 20,
  "punchLabel": "lessons",
  "forSale": true,
  "price": "229.95",
  "vatRate": 21,
  "expiryValue": 3,
  "expiryPeriode": "years",
  "createdAt": "2025-11-19T21:00:00+02:00"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
name
string
required

Name of the punch card.

Example:

"Driving lessons"

punches
integer
required

Amount of punches on the card which can be used

Example:

20

punchLabel
string
required

Unit label, indicates what type of punches the card provides

Example:

"lessons"

description
string

Additional information about the card, which will be shown in the portal

Example:

"Lessons in a BMW, Mon-Fri 09AM-05PM"

forSale
boolean

Indicates if the punch card can be bought online via the customer portal. Defaults to false when ommited.

Example:

true

price
string

The price, including VAT, of which this punch card should be sold for. Only required when the card is set for sale.

Example:

"229.95"

vatRate
integer

Percentage of VAT which applies to this punch card. Only required when the card is set for sale. Possible values are 21, 9 and 0.

Example:

21

expiryValue
string

Amount of periods after assigning/buying this cards will expire. If ommitted, but the card will never expire.

Example:

3

expirePeriod
string

Period after assigning/buying this cards will expire. If ommitted, but the card will never expire. Possible values are days, months and years.

Example:

"years"

Response

The created Punch Card

Punch Card

id
string

ID of the punch card, always starting with pcd_.

Example:

"pcd_abc12345def678"

name
string
Example:

"Driving lessons"

description
string | null

Description of the card. Will be shown in the portal

Example:

"Lessons in a BMW, Mon-Fri 09AM-05PM"

punches
integer

Punch count for this card

Example:

20

punchLabel
string

Type of punches

Example:

"lessons"

forSale
boolean

Indicates if the punch card can be bought online in the customer portal

Example:

true

price
string | null

Price, including VAT, of which this card will be sold for, in EUR. Will be null when the card is not for sale

Example:

"229.95"

vatRate
integer | null

Percentage of VAT which is applied to the price. Can be 21, 9 or 0. Will be null when the card is not for sale

Example:

21

expiryValue
integer

Number of units when this cards expires into the future

Example:

3

expiryPeriode
string | null

Unit of when this cards expires into the future. Can be days, months or years.

Example:

"years"

createdAt
string

Date and time when the card was created. Written in ATOM format.

Example:

"2025-11-19T21:00:00+02:00"