NAV
cURL Ruby

Introduction

Welcome to the Kentaa API v1 documentation.

The Kentaa API provides access (read / write) to various resources of a site on the Kentaa platform.

Authentication

# Example request using curl and authentication via header:
curl -H "X-Api-Key: your_api_key" https://api.kentaa.nl/v1/actions

All API requests must use a secure HTTP connection (HTTPS) to https://api.kentaa.nl. For authentication you need to provide the API key as header X-Api-Key. Alternatively, you can provide the API key as parameter api_key, but we strongly recommend using the header instead. If no API key or an invalid key is provided, the status code 401 is returned.

To create an API key, login to your Kentaa site and go to "Integrations" -> "API users".

Requests

The following HTTP request methods are supported:

HTTP method Meaning
GET Request to one or more resources. The result is returned as JSON.
POST Create a new resource and return the result as JSON.
PATCH Update attribute(s) of a resource and return the result as JSON.
DELETE Delete a resource.

Responses

The API returns the following HTTP status codes for a request:

Code Status Meaning
200 OK The GET or PATCH request was successful.
201 Created The POST request was successful.
204 No Content The DELETE request was successful.
400 Bad Request The request contains an invalid attribute or payload.
401 Unauthorized No valid API key was provided. See Authentication.
403 Forbidden No access to the requested resource.
404 Not Found The requested resource could not be found.
429 Too Many Requests Rate limit has been reached. See Rate limiting.
500 Server Error Something went wrong on the server side when trying to process the request.

Example response for requesting a single object or creating an object:

{
  "action": {
    "id": 1,
    ...
  }
}

Example response when requesting multiple objects:

{
  "actions": [
    {
      "id": 1,
      ...
    },
    {
      "id": 2,
      ...
    }
  ]
}

For a successful GET request, the response body includes one or more JSON objects with the requested resource(s). The key is always the resource that was requested, the singular form when one resource was requested or the plural form when requesting a multiple resources.

The response body for a successful POST includes a JSON object with the newly created resource.

The response body for a successful PATCH includes a JSON object with the updated resource.

The response body for a successful DELETE is empty.

Pagination

Sample links object:

{
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/actions?page=34",
      "next": "https://api.kentaa.nl/v1/actions?page=2"
    }
  }
}
curl -H "X-Api-Key: your_api_key" "https://api.kentaa.nl/v1/actions?per_page=100&page=1"

The response also includes the following keys to supply information about the number of available objects and the current pagination:

{
  "total_entries": 30,
  "total_pages": 3,
  "per_page": 10,
  "current_page": 1
}

Requests that return many objects (List operations) are limited to return 25 objects by default. When more results are available, the response includes a links object with URLs to the first, last, previous and next pages.

You can use the following parameters to specify pages and to customize the page size:

Rate limiting

The number of requests is limited to 100 per minute and 500 per hour per API key. When the rate limit is exceeded, the status code 429 is returned.

The following headers are included in the response:

Libraries

Changelog

All changes to the API are documented here. Updates to the API are always backwards compatible.

2024-05-13

2024-02-21

2024-02-05

2023-12-14

2023-03-06

2023-02-10

2023-01-04

2022-11-14

2022-06-22

2022-05-24

2022-04-11

2022-01-26

2021-10-26

2021-07-29

2021-05-11

Actions

An action represents a participant on a Kentaa site. Most actions also have a fundraising page, but this is optional.

Action object

Attribute Type Description
id integer Unique identifier for this action.
slug string Unique identifier for this action, used to create a nice action URL.
site_id integer Unique identifier for the site associated with the action.
segment_id integer Unique identifier for the segment associated with the action. optional
project_id integer Unique identifier for the project associated with the action. optional
company_id integer Unique identifier for the company associated with the action. optional
team_id integer Unique identifier for the team associated with the action. optional
created_at string The time (ISO 8601 format) when the action was created.
updated_at string The time (ISO 8601 format) when the action was last updated.
external_reference string External reference for the action. optional
owner object Represents the owner for the action. See Action - Owner object.
team_captain boolean Indicates whether it is the action of the team captain (only when the action is part of a team). optional
who_type string For who the action was created for (owner or other). When this value is other, the fields first_name, infix, last_name and avatar_url below will contain the data from "Someone else" and not from the action owner.
first_name string The first name of the fundraiser.
infix string The infix of the fundraiser. optional
last_name string The last name of the fundraiser.
avatar_url string The URL to the avatar image of the fundraiser. optional
fundraiser_page boolean Indicates whether the action has a fundraising page.
title string Title for the action.
description string Description for the action.
target_amount integer The target amount for the action.
total_amount string The amount that was donated to the action. (with decimals)
total_donations integer The number of donations for the action.
target_amount_achieved boolean Indicates whether the action target amount is achieved or not.
visible boolean Indicates whether the action is visible or not.
countable boolean Indicates whether the action is included in the webpages and counters of parent levels of a closed project.
closed boolean Indicates whether the action is closed or not.
ended boolean Indicates whether the action is ended or not.
end_date string The countdown date (ISO 8601 format) for this action. optional
activity object Represents the activity for the action. See Action - Activity object. optional
previous_participations integer The number of previous participations used for retention. optional
url string The URL to the fundraising page.
donate_url string The URL to directly make a donation to the action.
registration_fee object Represents the registration fee for the action. See Action - Registration fee object. optional
location object Represents the location for the action. See Action - Location object. optional
photos array List of photos associated with the action. optional
videos array List of videos associated with the action. optional
questions array List of questions, when there are any additional questions associated with the sign up form. See Action - Question object. optional
consent object The consent that is associated with the action. This attribute is deprecated, please use consents instead. deprecated
consents array List of consents associated with the action. See Action - Consent object. optional

Action - Activity object

Attribute Type Description
id integer Unique identifier for this activity.
name string The name of the activity.

This object contains information about a specific consent a fundraiser has given, for example the processing of personal data when signing up.

Some consents can also be revoked later on by the fundraiser, after which the status will change to revoked and the attribute revoked_at will be returned.

Attribute Type Description
consent_type string Type of consent. See below for possible values with their description.
consent_status string Status of the consent (granted or revoked).
granted_at string The time (ISO 8601 format) when the consent was granted.
revoked_at string The time (ISO 8601 format) when the consent was revoked. optional
consent_text string The consent text the fundraiser has agreed to.
url string The URL of the webpage where the consent was given.
terms_conditions_version string Version of the terms and conditions when the consent was given.
privacy_version string Version of the privacy statement when the consent was given. optional

Available consent types (given by fundraisers) are:

Consent type Description
terms_conditions Accepting the terms and conditions.
processing_personal_data Accepting the processing of personal data.
processing_personal_sensitive_data Accepting the processing of sensitive personal data.

Action - Location object

Attribute Type Description
zip_code string Zip code of the location.
street string Street of the location.
city string City of the location.
latitude string Latitude of the location.
longitude string Longitude of the location.

Action - Owner object

The Action - Owner object is a subset of the User object:

Attribute Type Description
id integer Unique identifier for the action owner.
first_name string The first name of the owner.
infix string The infix of the owner. optional
last_name string The last name of the owner.
email string The email address of the owner.
avatar_url string The URL to the avatar image of the owner. optional

Action - Question object

Attribute Type Description
id integer Unique identifier for this question.
created_at string The time (ISO 8601 format) when the question was created.
updated_at string The time (ISO 8601 format) when the question was last updated.
question string The question on the sign up form.
answer string The answer that was given for this question.

Action - Registration fee object

Attribute Type Description
amount string Amount of the registration fee.
title string Title of the registration fee.

List Actions

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.actions
curl https://api.kentaa.nl/v1/actions \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "actions": [
    {
      "id": 1,
      "slug": "john-doe",
      "site_id": 1,
      "created_at": "2015-08-26T14:50:14Z",
      "updated_at": "2015-10-12T16:27:43Z",
      "external_reference": "Customer Campaign 1021AA1-11",
      "owner": {
        "id": 2,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl"
      },
      "who_type": "owner",
      "first_name": "John",
      "last_name": "Doe",
      "fundraiser_page": true,
      "title": "Lorem ipsum",
      "description": "Dolorum animi qui nihil iure dolore velit. Rerum eius et quo.",
      "target_amount": 1000,
      "total_amount": "125.0",
      "total_donations": 2,
      "target_amount_achieved": false,
      "visible": true,
      "countable": true,
      "closed": false,
      "ended": false,
      "previous_participations": 1,
      "url": "https://demo1.kentaa.nl/actie/john-doe",
      "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate",
      "photos": [
        {
          "id": 2,
          "created_at": "2015-08-26T14:50:16Z",
          "updated_at": "2015-08-26T14:50:20Z",
          "url": "https://cdn.kentaa.nl/carousel/file/action_photo/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
        }
      ],
      "questions": [
        {
          "id": 2,
          "created_at": "2015-08-26T14:50:16Z",
          "updated_at": "2015-08-26T14:50:20Z",
          "question": "What is your age?",
          "answer": "42"
        }
      ]
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/actions?page=34&per_page=1",
      "next": "https://api.kentaa.nl/v1/actions?page=2&per_page=1"
    }
  },
  "total_entries": 34,
  "total_pages": 34,
  "per_page": 1,
  "current_page": 1
}

Get a list of actions for the current site, segment, project or for a user.

HTTP request

GET https://api.kentaa.nl/v1/actions
GET https://api.kentaa.nl/v1/segments/:segment_id/actions
GET https://api.kentaa.nl/v1/projects/:project_id/actions
GET https://api.kentaa.nl/v1/users/:user_id/actions

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.
include When set to owner, include the full owner object in the result.
external_reference Show results filtered on external_reference.

Get an Action

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.actions.get(1)
client.actions.get('john-doe')
curl https://api.kentaa.nl/v1/actions/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/actions/john-doe \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "action": {
    "id": 1,
    "slug": "john-doe",
    "site_id": 1,
    "created_at": "2015-08-26T14:50:14Z",
    "updated_at": "2015-10-12T16:27:43Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "owner": {
      "id": 2,
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl"
    },
    "who_type": "owner",
    "first_name": "John",
    "last_name": "Doe",
    "fundraiser_page": true,
    "title": "Lorem ipsum",
    "description": "Dolorum animi qui nihil iure dolore velit. Rerum eius et quo.",
    "target_amount": 1000,
    "total_amount": "125.0",
    "total_donations": 2,
    "target_amount_achieved": false,
    "visible": true,
    "countable": true,
    "closed": false,
    "ended": false,
    "previous_participations": 1,
    "url": "https://demo1.kentaa.nl/actie/john-doe",
    "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate",
    "registration_fee": {
      "amount": "25.0",
      "title": "Sign up fee"
    },
    "photos": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "url": "https://cdn.kentaa.nl/carousel/file/action_photo/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
      }
    ],
    "questions": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "question": "What is your age?",
        "answer": "42"
      }
    ],
    "consent": {
      "url": "https://demo1.kentaa.nl/meedoen/wie-ben-jij",
      "text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
      "version": "V2 22-06-2018 13:09"
    },
    "consents": [
      {
        "consent_type": "terms_conditions",
        "consent_status": "granted",
        "granted_at": "2015-08-26T14:50:14Z",
        "consent_text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
        "url": "https://demo1.kentaa.nl/meedoen/wie-ben-jij",
        "terms_conditions_version": "V2 22-06-2018 13:09",
        "privacy_version": "V1 10-06-2018 11:42"
      },
      {
        "consent_type": "processing_personal_data",
        "consent_status": "granted",
        "granted_at": "2015-08-26T14:50:14Z",
        "consent_text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
        "url": "https://demo1.kentaa.nl/meedoen/wie-ben-jij",
        "terms_conditions_version": "V2 22-06-2018 13:09",
        "privacy_version": "V1 10-06-2018 11:42"
      }
    ]
  }
}

Retrieve a specific action on the current site. Actions can be queried by ID or slug.

HTTP request

GET https://api.kentaa.nl/v1/actions/:id
GET https://api.kentaa.nl/v1/actions/:slug

Query parameters

Parameter Description
include When set to owner, include the full owner object in the result.

Create an Action

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.actions.create(
  owner_id: 1,
  first_name: 'John',
  last_name: 'Doe',
  active: true
)
curl https://api.kentaa.nl/v1/actions \
  -d '{ "owner_id": 1, "title": "foobar", "description": "foobar", "active": true }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "owner_id": 1,
  "title": "Lorem ipsum",
  "description": "Dolorum animi qui nihil iure dolore velit. Rerum eius et quo.",
  "active": true
}

Example response body:

{
  "action": {
    "id": 1,
    "slug": "john-doe",
    "site_id": 1,
    "created_at": "2015-08-26T14:50:14Z",
    "updated_at": "2015-10-12T16:27:43Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "owner": {
      "id": 2,
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl"
    },
    "who_type": "owner",
    "first_name": "John",
    "last_name": "Doe",
    "fundraiser_page": true,
    "title": "Lorem ipsum",
    "description": "Dolorum animi qui nihil iure dolore velit. Rerum eius et quo.",
    "target_amount": 1000,
    "total_amount": "125.0",
    "total_donations": 2,
    "target_amount_achieved": false,
    "visible": true,
    "countable": true,
    "closed": false,
    "ended": false,
    "previous_participations": 1,
    "url": "https://demo1.kentaa.nl/actie/john-doe",
    "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate",
    "registration_fee": {
      "amount": "25.0",
      "title": "Sign up fee"
    }
  }
}

Create a new action on the current site, segment or project.

HTTP request

POST https://api.kentaa.nl/v1/actions
POST https://api.kentaa.nl/v1/segments/:segment_id/actions
POST https://api.kentaa.nl/v1/projects/:project_id/actions

JSON body parameters

Parameter Required Type Description
owner_id Yes integer Owner identifier for this action.
activity_id No integer Activity identifier for the action. See also Activities.
title Yes string Title for the action.
description Yes string Description for the action.
active No boolean Indicates if the action is enabled. Default is false.
target_amount No integer The target amount for the action.
end_date No string The countdown date (ISO 8601 format) for this action.
previous_participations No integer The number of previous participations used for retention.
external_reference No string External reference for the action.
send_initial_emails No boolean When set to true, the initial emails will be sent when the action was successfully created, such as the welcome email. Please note that the action must be active in order to trigger the emails. If the action belongs to a project, make sure it is both approved and active as well. Default is false.

Update an Action

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.actions.update(1, owner_id: 1)
curl -X PATCH https://api.kentaa.nl/v1/actions/1 \
  -d '{ "owner_id": 1 }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "owner_id": 1
}

Example response body:

{
  "action": {
    "id": 1,
    "slug": "john-doe",
    "site_id": 1,
    "created_at": "2015-08-26T14:50:14Z",
    "updated_at": "2015-10-12T16:27:43Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "owner": {
      "id": 2,
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl"
    },
    "who_type": "owner",
    "first_name": "John",
    "last_name": "Doe",
    "fundraiser_page": true,
    "title": "Lorem ipsum",
    "description": "Dolorum animi qui nihil iure dolore velit. Rerum eius et quo.",
    "target_amount": 1000,
    "total_amount": "125.0",
    "total_donations": 2,
    "target_amount_achieved": false,
    "visible": true,
    "countable": true,
    "closed": false,
    "ended": false,
    "previous_participations": 1,
    "url": "https://demo1.kentaa.nl/actie/john-doe",
    "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate",
    "registration_fee": {
      "amount": "25.0",
      "title": "Sign up fee"
    },
    "photos": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "url": "https://cdn.kentaa.nl/carousel/file/action_photo/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
      }
    ],
    "questions": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "question": "What is your age?",
        "answer": "42"
      }
    ]
  }
}

Update attributes of an action on the current site.

HTTP request

PATCH https://api.kentaa.nl/v1/actions/:id

JSON body parameters

Parameter Required Type Description
owner_id No integer Owner identifier for this action.
activity_id No integer Activity identifier for the action. See also Activities.
title No string Title for the action.
description No string Description for the action.
active No boolean Indicates if the action is enabled.
target_amount No integer The target amount for the action.
end_date No string The countdown date (ISO 8601 format) for this action.
previous_participations No integer The number of previous participations used for retention.
external_reference No string External reference for the action.

Activities

When signing up, a fundraiser can choose an activity to participate in, for example a certain distance or sport.

The available activities can be retrieved via this endpoint. These can then be used when creating or updating an Action.

Activity object

Attribute Type Description
id integer Unique identifier for this activity.
site_id integer Unique identifier for the site associated with the activity.
created_at string The time (ISO 8601 format) when the activity was created.
updated_at string The time (ISO 8601 format) when the activity was last updated.
name string The name of the activity.
sign_up_limit integer The number of sign ups (actions) that are allowed. optional
sign_up_count integer The current sign up count (actions) for this activity. optional

List Activities

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.activities
curl https://api.kentaa.nl/v1/activities \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "activities": [
    {
      "id": 1,
      "site_id": 1,
      "created_at": "2018-03-06T15:38:59Z",
      "updated_at": "2018-03-06T15:38:59Z",
      "name": "Walking",
      "sign_up_limit": 50,
      "sign_up_count": 0
    },
    {
      "id": 2,
      "site_id": 1,
      "created_at": "2018-03-06T15:38:54Z",
      "updated_at": "2023-05-05T07:57:14Z",
      "name": "Biking",
      "sign_up_limit": 50,
      "sign_up_count": 42
    }
  ]
}

Get a list of activities for the current site, segment or project.

HTTP request

GET https://api.kentaa.nl/v1/activities
GET https://api.kentaa.nl/v1/segments/:segment_id/activities
GET https://api.kentaa.nl/v1/projects/:project_id/activities

Get an Activity

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.activities.get(1)
curl https://api.kentaa.nl/v1/activities/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "activity": {
    "id": 1,
    "site_id": 1,
    "created_at": "2018-03-06T15:38:59Z",
    "updated_at": "2018-03-06T15:38:59Z",
    "name": "Walking",
    "sign_up_limit": 50,
    "sign_up_count": 0
  }
}

Retrieve a specific activity for the current site, segment or project.

HTTP request

GET https://api.kentaa.nl/v1/activities/:id
GET https://api.kentaa.nl/v1/segments/:segment_id/activities/:id
GET https://api.kentaa.nl/v1/projects/:project_id/activities/:id

Companies

A company represents a fundraising company page on a Kentaa site. It contains one or more company members, which are Actions.

Company object

Attribute Type Description
id integer Unique identifier for this company.
slug string Unique identifier for this company, used to create a nice company URL.
site_id integer Unique identifier for the site associated with the company.
segment_id integer Unique identifier for the segment associated with the company. optional
project_id integer Unique identifier for the project associated with the company. optional
created_at string The time (ISO 8601 format) when the company was created.
updated_at string The time (ISO 8601 format) when the company was last updated.
external_reference string External reference for the company. optional
members array List of company members in this company. See Company - Member object.
name string Name of the company.
title string Title of the company.
description string Description for the company.
commerce_number string Chamber of Commerce number of the company. This attribute is deprecated deprecated
target_amount integer The target amount for the company.
total_amount string The amount that was donated to the company (with decimals).
total_donations integer The number of donations for the company.
target_amount_achieved boolean Indicates whether the company target amount is achieved or not.
visible boolean Indicates whether the company is visible or not.
countable boolean Indicates whether the company is included in the webpages and counters of parent levels of a closed project.
closed boolean Indicates whether the company is closed or not.
ended boolean Indicates whether the company is ended or not.
activity object Represents the chosen activity. See Company - Activity object
url string The URL to the company page.
donate_url string The URL to directly make a donation to the company.
member_sign_up_url string The URL to sign up to the company.
billing object Contains billing information. See Company - Billing object.
contact object The contact that is associated with the company. See Company - Contact object. optional
photos array List of photos associated with the company. optional
videos array List of videos associated with the company. optional
questions array List of questions, when there are any additional questions associated with the company. See Company - Question object. optional
package object Represents the chosen company package.
consents array List of consents associated with the company. See Company - Consent object. optional

Company - Activity object

This object contains information related to the chosen activity.

Attribute Type Description
id integer Unique identifier for the activity.
name string Name of the activity

Company - Billing object

This object contains billing information.

Attribute Type Description
attn string Invoice to person / department optional
street string The street name of the company (only when country is NL). optional
house_number string The house number of the company (only when country is NL). optional
house_number_addition string The house number addition of the company (only when country is NL). optional
address string Address line 1 of the contact. optional
address2 string Address line 2 of the contact. optional
zipcode string The zip code of the company.
city string The city of the company.
country string The country of the company (ISO 3166-1 alpha-2 code).

This object contains information about a specific consent a company starter has given, for example the processing of personal data when signing up.

Some consents can also be revoked later on by the company starter, after which the status will change to revoked and the attribute revoked_at will be returned.

Attribute Type Description
consent_type string Type of consent. See below for possible values with their description.
consent_status string Status of the consent (granted or revoked).
granted_at string The time (ISO 8601 format) when the consent was granted.
revoked_at string The time (ISO 8601 format) when the consent was revoked. optional
consent_text string The consent text the company starter has agreed to.
url string The URL of the webpage where the consent was given.
terms_conditions_version string Version of the terms and conditions when the consent was given.
privacy_version string Version of the privacy statement when the consent was given. optional

Available consent types (given by company starter) are:

Consent type Description
terms_conditions Accepting the terms and conditions.
processing_personal_data Accepting the processing of personal data.
processing_personal_sensitive_data Accepting the processing of sensitive personal data.
contact_phone Allowing use of the phone number for tips.
contact_phone_commercial Allowing use of the phone number for marketing purposes.

Company - Contact object

Attribute Type Description
first_name string The first name of the contact.
infix string The infix of the contact. optional
last_name string The last name of the contact.
email string The email address of the contact.
address string Address line 1 of the contact. optional
address2 string Address line 2 of the contact. optional
street string The street name of the contact (only when country is NL). optional
house_number string The house number of the contact (only when country is NL). optional
house_number_addition string The house number addition of the contact (only when country is NL). optional
zipcode string The zip code of the contact. optional
city string The city of the contact. optional
country string The country of the contact (ISO 3166-1 alpha-2 code). optional
phone string The phone number of the contact. optional
birthday string The birthday (ISO 8601 format) of the contact. optional
gender string The gender of the contact (male, female, neutral). optional

Company - Member object

The Company - Member object is a subset of the Action object:

Attribute Type Description
id integer Unique identifier for the company member action.
owner object Represents the owner of the company member action. See Action - Owner object.
first_name string The first name of the fundraiser.
infix string The infix of the fundraiser. optional
last_name string The last name of the fundraiser.
avatar_url string The URL to the avatar image of the fundraiser. optional
url string The URL to the company member action.
donate_url string The URL to directly make a donation to the company member action.

Company - Package object

This represents the chosen company package.

Attribute Type Description
id integer Unique identifier for this package.
amount integer Total cost of the package.
title string Title of the package.
description string Description of the package.
created_at string The time (ISO 8601 format) when the question was created.
updated_at string The time (ISO 8601 format) when the question was last updated.

Company - Question object

Attribute Type Description
id integer Unique identifier for this question.
created_at string The time (ISO 8601 format) when the question was created.
updated_at string The time (ISO 8601 format) when the question was last updated.
question string The question on the sign up form.
answer string The answer that was given for this question.

List Companies

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.companies
curl https://api.kentaa.nl/v1/companies \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "companies": [
    {
      "id": 1,
      "slug": "asperiores-beatae-voluptate-qui",
      "segment_id": 2,
      "project_id": 3,
      "site_id": 6,
      "created_at": "2015-08-26T14:51:35Z",
      "updated_at": "2015-10-12T16:27:43Z",
      "external_reference": "Customer Campaign 1021AA1-11",
      "members": [
        {
          "id": 9,
          "owner": {
            "id": 8,
            "first_name": "Thomas",
            "last_name": "Klein",
            "email": "thomas.klein@kentaa.nl"
          },
          "first_name": "Thomas",
          "last_name": "Klein",
          "email": "thomas.klein@kentaa.nl",
          "url": "https://demo1.kentaa.nl/actie/thomas-klein",
          "donate_url": "https://demo1.kentaa.nl/actie/thomas-klein/donate"
        },
        {
          "id": 3,
          "owner": {
            "id": 2,
            "first_name": "John",
            "last_name": "Doe",
            "email": "john.doe@kentaa.nl"
          },
          "first_name": "John",
          "last_name": "Doe",
          "email": "john.doe@kentaa.nl",
          "url": "https://demo1.kentaa.nl/actie/john-doe",
          "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate"
        }
      ],
      "name": "Asperiores beatae voluptate qui.",
      "title": "Vero aspernatur dolores et excepturi.",
      "description": "Cum odio est. Consequuntur occaecati sapiente molestiae quam recusandae possimus aut. Ratione cum harum beatae ad repellat minus.",
      "commerce_number": "12345678",
      "target_amount": 2000,
      "total_amount": "225.0",
      "total_donations": 4,
      "target_amount_achieved": false,
      "visible": true,
      "countable": true,
      "closed": false,
      "ended": false,
      "activity": {
        "id": 12,
        "name": "Activity name"
      },
      "url": "https://demo1.kentaa.nl/company/asperiores-beatae-voluptate-qui",
      "donate_url": "https://demo1.kentaa.nl/company/asperiores-beatae-voluptate-qui/donate",
      "member_sign_up_url": "https://demo1.kentaa.nl/participate/companies/c9ddaa602de6b76138c4cc31534c9a14ce5404e2",
      "billing": {
        "attn": "Example text",
        "street": "Jansbuitensingel",
        "house_number": "29",
        "house_number_addition": "",
        "address": "Jansbuitensingel 29",
        "address2": "",
        "zipcode": "6811AD",
        "city": "Arnhem",
        "country": "NL"
      },
      "contact": {
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl",
        "address": "Jansbuitensingel 29",
        "street": "Jansbuitensingel",
        "house_number": "29",
        "zipcode": "6811AD",
        "city": "Arnhem",
        "country": "NL",
        "phone": "0262616240",
        "gender": "male"
      },
      "photos": [
        {
          "id": 2,
          "created_at": "2015-08-26T14:50:16Z",
          "updated_at": "2015-08-26T14:50:20Z",
          "url": "https://cdn.kentaa.nl/carousel/file/company_photo/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
        }
      ],
      "videos": [
        {
          "id": 2,
          "created_at": "2015-08-26T14:50:16Z",
          "updated_at": "2015-08-26T14:50:20Z",
          "url": "https://cdn.kentaa.nl/carousel/file/company_video/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
        }
      ],
      "questions": [
        {
          "id": 2,
          "created_at": "2015-08-26T14:50:16Z",
          "updated_at": "2015-08-26T14:50:20Z",
          "question": "What is your age?",
          "answer": "42"
        }
      ],
      "package": {
        "id": 1,
        "amount": 10,
        "title": "Package title",
        "description": "Package description",
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z"
      },
      "consents": [
        {
          "consent_type": "terms_conditions",
          "consent_status": "granted",
          "granted_at": "2015-08-26T14:49:36Z",
          "consent_text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
          "url": "https://demo1.kentaa.nl/project/projectinformatie",
          "terms_conditions_version": "V1 30-05-2018 11:53",
          "privacy_version": "V1 30-05-2018 11:53"
        },
        {
          "consent_type": "processing_personal_data",
          "consent_status": "granted",
          "granted_at": "2015-08-26T14:49:36Z",
          "consent_text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
          "url": "https://demo1.kentaa.nl/project/projectinformatie",
          "terms_conditions_version": "V1 30-05-2018 11:53",
          "privacy_version": "V1 30-05-2018 11:53"
        }
      ]
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/companies?page=8&per_page=1",
      "next": "https://api.kentaa.nl/v1/companies?page=2&per_page=1"
    }
  },
  "total_entries": 8,
  "total_pages": 8,
  "per_page": 1,
  "current_page": 1
}

Get a list of companies for the current site, segment or project.

HTTP request

GET https://api.kentaa.nl/v1/companies
GET https://api.kentaa.nl/v1/segments/:segment_id/companies
GET https://api.kentaa.nl/v1/projects/:project_id/companies

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.
include When set to members.owner, include the full owner object of members in the result.
Multiple values are allowed using a comma as separator.

Get a Company

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.companies.get(1)
client.companies.get('asperiores-beatae-voluptate-qui')
curl https://api.kentaa.nl/v1/companies/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/companies/asperiores-beatae-voluptate-qui \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "company": {
    "id": 1,
    "slug": "asperiores-beatae-voluptate-qui",
    "segment_id": 2,
    "project_id": 3,
    "site_id": 6,
    "created_at": "2015-08-26T14:51:35Z",
    "updated_at": "2015-10-12T16:27:43Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "members": [
      {
        "id": 9,
        "owner": {
          "id": 8,
          "first_name": "Thomas",
          "last_name": "Klein",
          "email": "thomas.klein@kentaa.nl"
        },
        "first_name": "Thomas",
        "last_name": "Klein",
        "email": "thomas.klein@kentaa.nl",
        "url": "https://demo1.kentaa.nl/actie/thomas-klein",
        "donate_url": "https://demo1.kentaa.nl/actie/thomas-klein/donate"
      },
      {
        "id": 3,
        "owner": {
          "id": 2,
          "first_name": "John",
          "last_name": "Doe",
          "email": "john.doe@kentaa.nl"
        },
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl",
        "url": "https://demo1.kentaa.nl/actie/john-doe",
        "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate"
      }
    ],
    "name": "Asperiores beatae voluptate qui.",
    "title": "Vero aspernatur dolores et excepturi.",
    "description": "Cum odio est. Consequuntur occaecati sapiente molestiae quam recusandae possimus aut. Ratione cum harum beatae ad repellat minus.",
    "commerce_number": "12345678",
    "target_amount": 2000,
    "total_amount": "225.0",
    "total_donations": 4,
    "target_amount_achieved": false,
    "visible": true,
    "countable": true,
    "closed": false,
    "ended": false,
    "activity": {
      "id": 12,
      "name": "Activity name"
    },
    "url": "https://demo1.kentaa.nl/company/asperiores-beatae-voluptate-qui",
    "donate_url": "https://demo1.kentaa.nl/company/asperiores-beatae-voluptate-qui/donate",
    "member_sign_up_url": "https://demo1.kentaa.nl/participate/companies/c9ddaa602de6b76138c4cc31534c9a14ce5404e2",
    "billing": {
      "attn": "Example text",
      "street": "Jansbuitensingel",
      "house_number": "29",
      "house_number_addition": "",
      "address": "Jansbuitensingel 29",
      "address2": "",
      "zipcode": "6811AD",
      "city": "Arnhem",
      "country": "NL"
    },
    "contact": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl",
      "address": "Jansbuitensingel 29",
      "street": "Jansbuitensingel",
      "house_number": "29",
      "zipcode": "6811AD",
      "city": "Arnhem",
      "country": "NL",
      "phone": "0262616240",
      "gender": "male"
    },
    "photos": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "url": "https://cdn.kentaa.nl/carousel/file/company_photo/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
      }
    ],
    "videos": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "url": "https://cdn.kentaa.nl/carousel/file/company_video/64/normal_53ca327debf5667a5efa03f3e87ba1c5b9f806a1.JPG"
      }
    ],
    "questions": [
      {
        "id": 2,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "question": "What is your age?",
        "answer": "42"
      }
    ],
    "package": {
      "id": 1,
      "amount": 10,
      "title": "Package title",
      "description": "Package description",
      "created_at": "2015-08-26T14:50:16Z",
      "updated_at": "2015-08-26T14:50:20Z"
    },
    "consents": [
      {
        "consent_type": "terms_conditions",
        "consent_status": "granted",
        "granted_at": "2015-08-26T14:49:36Z",
        "consent_text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
        "url": "https://demo1.kentaa.nl/project/projectinformatie",
        "terms_conditions_version": "V1 30-05-2018 11:53",
        "privacy_version": "V1 30-05-2018 11:53"
      },
      {
        "consent_type": "processing_personal_data",
        "consent_status": "granted",
        "granted_at": "2015-08-26T14:49:36Z",
        "consent_text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
        "url": "https://demo1.kentaa.nl/project/projectinformatie",
        "terms_conditions_version": "V1 30-05-2018 11:53",
        "privacy_version": "V1 30-05-2018 11:53"
      }
    ]
  }
}

Retrieve a specific company on the current site. Companies can be queried by ID or slug.

HTTP request

GET https://api.kentaa.nl/v1/companies/:id
GET https://api.kentaa.nl/v1/companies/:slug

Query parameters

Parameter Description
include When set to members.owner, include the full owner object of members in the result.

Donation forms

Donation forms are standalone donation pages that can be individually customized.

Use the Donations endpoint endpoint to retrieve the donations for a form.

Donation form object

Attribute Type Description
id integer Unique identifier for this donation form.
slug string Unique identifier for this donation form, used to create a nice URL.
site_id integer Unique identifier for the site associated with the donation form.
created_at string The time (ISO 8601 format) when the donation form was created.
updated_at string The time (ISO 8601 format) when the donation form was last updated.
external_reference string External reference for the donation form. optional
owner object Represents the owner for the donation form. See Donation form - Owner object.
title string Title for the donation form.
description string Description for the donation form.
total_amount string The amount that was donated to the donation form (with decimals).
total_donations integer The number of donations for the donation form.
published boolean Indicates whether the donation form is published or not.
visible boolean Indicates whether the donation form is visible or not.
banners array List of banners associated with the donation form. optional

Donation form - Owner object

The Donation form - Owner object is a subset of the User object:

Attribute Type Description
id integer Unique identifier for the action owner.
first_name string The first name of the owner.
infix string The infix of the owner. optional
last_name string The last name of the owner.
email string The email address of the owner.
avatar_url string The URL to the avatar image of the owner. optional

List Donation forms

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.donation_forms
curl https://api.kentaa.nl/v1/donation_forms \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "donation_forms": [
    {
      "id": 1,
      "slug": "form",
      "site_id": 1,
      "created_at": "2020-04-16T13:58:37Z",
      "updated_at": "2020-10-30T14:35:27Z",
      "owner": {
        "id": 2,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl"
      },
      "title": "Lorem ipsum dolor sit amet",
      "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
      "total_amount": "95.0",
      "total_donations": 4,
      "published": true,
      "visible": true,
      "url": "https://demo1.kentaa.nl/form"
    }
  ],
  "total_entries": 5,
  "total_pages": 1,
  "per_page": 25,
  "current_page": 1
}

Get a list of actions for the current site, segment or project.

HTTP request

GET https://api.kentaa.nl/v1/donation-forms

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.
include When set to owner, include the full owner object in the result.

Get a Donation form

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.donation_forms.get(1)
client.donation_forms.get('lorem-ipsum')
curl https://api.kentaa.nl/v1/donation-forms/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/donation-forms/lorem-ipsum \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "donation_form": {
    "id": 1,
    "slug": "form",
    "site_id": 1,
    "created_at": "2020-04-16T13:58:37Z",
    "updated_at": "2020-10-30T14:35:27Z",
    "owner": {
      "id": 2,
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl"
    },
    "title": "Lorem ipsum dolor sit amet",
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
    "total_amount": "95.0",
    "total_donations": 4,
    "published": true,
    "visible": true,
    "url": "https://demo1.kentaa.nl/form"
  }
}

Retrieve a specific donation form on the current site. Donation forms can be queried by ID or slug.

HTTP request

GET https://api.kentaa.nl/v1/donations-forms/:id
GET https://api.kentaa.nl/v1/donations-forms/:slug

Query parameters

Parameter Description
include When set to owner, include the full owner object in the result.

Donations

A donation is a transaction of funds to a specific entity. Donations can optionally have a registration amount for events that require a registration fee. A donation can also have a reward when offered in return for the donation (Crowdfunding).

Donation object

Attribute Type Description
id integer Unique identifier for this donation.
site_id integer Unique identifier for the site associated with the donation.
donation_form_id integer Unique identifier for the donation form associated with the donation. optional
segment_id integer Unique identifier for the segment associated with the donation. optional
project_id integer Unique identifier for the project associated with the donation. optional
company_id integer Unique identifier for the company associated with the donation. optional
team_id integer Unique identifier for the team associated with the donation. optional
action_id integer Unique identifier for the action associated with the donation. optional
recurring_donor_id integer Unique identifier for the recurring donor associated with the donation. optional
created_at string The time (ISO 8601 format) when the donation was created.
updated_at string The time (ISO 8601 format) when the donation was last updated.
first_name string The first name of the donator. optional
infix string The infix of the donator. optional
last_name string The last name of the donator. optional
company string Company name for the donator. optional
anonymous boolean Indicates whether the name of the donor is visible on the website.
contact_details_type string Indicates whether the contact details of the donor may be shared with the initiator of this fundraiser (unknown, visible or protected. When set to visible, contact details may be shared. When set to protected, contact details are only visible for site managers).
email string The email address of the donator. optional
message string The personal message of the donator. optional
newsletter boolean Indicates if the donator subscribed to the newsletter.
device_type string The device type that was used while submitting the donation form (desktop, tablet or phone). optional
locale string The locale that was used while submitting the donation form (nl, en, de, fr, etc).
frequency_type string Indicates if this was one-off donation (oneoff) or recurring (monthly, annually). When recurring, the field recurring_donor_id will be set to the associated recurring donor.
currency string The currency (ISO 4217 code) that was used when paying the donation.
amount string The donation amount (with decimals).
transaction_costs string The contribution to transaction costs (with decimals). optional
start_donation boolean Indicates if this donation was used as a "start donation" in the sign up form.
registration_fee boolean Indicates if there is a registration fee present.
registration_fee_amount string The registration fee amount (with decimals). optional
total_amount string Total amount of the donation (amount + contribution transaction costs + registration fee).
receivable_amount string The amount that the customer will receive when being payed out (total_amount minus payment processing / Kentaa fees).
countable boolean Indicates whether the donation is included in the webpages and counters of parent levels of a closed project.
invoicenumber string Unique reference to be used as invoice number.
payment_method string The payment method used to make the donation.
payment_status string The payment status of the donation (pledged, refunded, chargedback, canceled, paid, started, unknown).
payment_status_at string The time (ISO 8601 format) when the payment status was last changed.
transaction_id string The transaction ID from the PSP for the donation.
payment_id string The payment ID from the PSP for the donation.
payment_description string The payment description from the PSP for the donation.
account_iban string The IBAN of the donator. optional
account_bic string The BIC of the donator. optional
account_name string The account name of the donator. optional
target_url string The URL where the donation was made to.
questions array List of questions, when there are any additional questions associated with the donation form. See Donation - Question object. optional
reward object A reward was offered in return for the donation. See Donation - Reward object. optional
address object The address information associated to the donation and/or reward. Donation - Address object. optional
birthday string The birthday (ISO 8601 format) of the donator. optional
gender string The gender of the donator (male, female, neutral). optional
phone string The phone number of the donator. optional
consent object The consent that is associated with the donation. This attribute is deprecated, please use consents instead. deprecated
consents array List of consents associated with the donation. See Donation - Consent object. optional

Donation - Address object

Attribute Type Description
address string Address line 1.
address2 string Address line 2. optional
street string The street name (only when country is NL). optional
house_number string The house number (only when country is NL). optional
house_number_addition string The house number addition (only when country is NL). optional
zipcode string The zip code.
city string The city.
country string The country (ISO 3166-1 alpha-2 code).

This object contains information about a specific consent a donor has given, for example the processing of personal data when donating.

Some consents can also be revoked later on by the donor, after which the status will change to revoked and the attribute revoked_at will be returned.

Attribute Type Description
consent_type string Type of consent. See below for possible values with their description.
consent_status string Status of the consent (granted or revoked).
granted_at string The time (ISO 8601 format) when the consent was granted.
revoked_at string The time (ISO 8601 format) when the consent was revoked. optional
consent_text string The consent text the donor has agreed to.
url string The URL of the webpage where the consent was given.
terms_conditions_version string Version of the terms and conditions when the consent was given.
privacy_version string Version of the privacy statement when the consent was given. optional

Available consent types (given by donors) are:

Consent type Description
terms_conditions Accepting the terms and conditions.
contact_phone_commercial Allowing use of the phone number for marketing purposes.

Donation - Question object

Attribute Type Description
id integer Unique identifier for this question.
created_at string The time (ISO 8601 format) when the question was created.
updated_at string The time (ISO 8601 format) when the question was last updated.
question string The question on the donation form.
answer string The answer that was given for this question.

Donation - Reward object

Attribute Type Description
id integer Unique identifier for this reward.
type string Type for this reward (ProjectReward, SegmentReward or SiteReward).
title string The title of this reward.
description string The description of this reward.
ask_for_address boolean Indicates if address information was required for this reward and was asked on the donation form. When true, the response will also include a Donation - Address object.

List Donations

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.donations
curl https://api.kentaa.nl/v1/donations \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "donations": [
    {
      "id": 1,
      "site_id": 1,
      "created_at": "2016-03-30T14:41:48Z",
      "updated_at": "2016-03-30T14:46:25Z",
      "first_name": "John",
      "last_name": "Doe",
      "anonymous": false,
      "contact_details_type": "visible",
      "email": "john.doe@kentaa.nl",
      "newsletter": false,
      "device_type": "desktop",
      "locale": "nl",
      "frequency_type": "oneoff",
      "currency": "EUR",
      "amount": "15.0",
      "transaction_costs": "0.4",
      "start_donation": false,
      "registration_fee": true,
      "registration_fee_amount": "10.0",
      "total_amount": "25.4",
      "receivable_amount": "24.0",
      "countable": true,
      "invoicenumber": "T2016.0001.0000001",
      "payment_method": "ideal",
      "payment_status": "paid",
      "payment_status_at": "2016-03-30T14:46:25Z",
      "transaction_id": "B5C7B7BCAF1ADF6E2032C7CF56969876",
      "payment_id": "116D10DD544ECD1E2D77762C5C3E6D61",
      "payment_description": "Donatie Demo",
      "target_url": "https://demo1.kentaa.nl/",
      "questions": [
        {
          "id": 1,
          "created_at": "2015-08-26T14:50:16Z",
          "updated_at": "2015-08-26T14:50:20Z",
          "question": "Gender",
          "answer": "male"
        }
      ],
      "reward": {
        "id": 1,
        "type": "SiteReward",
        "title": "Awesome reward",
        "description": "Lorem ipsum",
        "ask_for_address": true
      },
      "address": {
        "address": "Jansbuitensingel 29",
        "street": "Jansbuitensingel",
        "house_number": "29",
        "zipcode": "6811AD",
        "city": "Arnhem",
        "country": "NL"
      }
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/donations?page=31&per_page=1",
      "next": "https://api.kentaa.nl/v1/donations?page=2&per_page=1"
    }
  },
  "total_entries": 31,
  "total_pages": 31,
  "per_page": 1,
  "current_page": 1
}

Get a list of donations for the current site, donation form, recurring donor, segment, project, company, team or action.

HTTP request

GET https://api.kentaa.nl/v1/donations
GET https://api.kentaa.nl/v1/donation-forms/:donation_form_id/donations
GET https://api.kentaa.nl/v1/recurring-donors/:recurring_donor_id/donations
GET https://api.kentaa.nl/v1/segments/:segment_id/donations
GET https://api.kentaa.nl/v1/projects/:project_id/donations
GET https://api.kentaa.nl/v1/companies/:company_id/donations
GET https://api.kentaa.nl/v1/teams/:team_id/donations
GET https://api.kentaa.nl/v1/actions/:action_id/donations

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.
invoicenumber Show results filtered on invoicenumber.

Get a Donation

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.donations.get(1)
curl https://api.kentaa.nl/v1/donations/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "donation": {
    "id": 1,
    "site_id": 1,
    "created_at": "2016-03-30T14:41:48Z",
    "updated_at": "2016-03-30T14:46:25Z",
    "first_name": "John",
    "last_name": "Doe",
    "anonymous": false,
    "contact_details_type": "visible",
    "email": "john.doe@kentaa.nl",
    "newsletter": false,
    "device_type": "desktop",
    "locale": "nl",
    "frequency_type": "oneoff",
    "currency": "EUR",
    "amount": "15.0",
    "transaction_costs": "0.4",
    "start_donation": false,
    "registration_fee": true,
    "registration_fee_amount": "10.0",
    "total_amount": "25.4",
    "receivable_amount": "24.0",
    "countable": true,
    "invoicenumber": "T2016.0001.0000001",
    "payment_method": "ideal",
    "payment_status": "paid",
    "payment_status_at": "2016-03-30T14:46:25Z",
    "transaction_id": "B5C7B7BCAF1ADF6E2032C7CF56969876",
    "payment_id": "116D10DD544ECD1E2D77762C5C3E6D61",
    "payment_description": "Donatie Demo",
    "target_url": "https://demo1.kentaa.nl/",
    "questions": [
      {
        "id": 1,
        "created_at": "2015-08-26T14:50:16Z",
        "updated_at": "2015-08-26T14:50:20Z",
        "question": "Gender",
        "answer": "male"
      }
    ],
    "reward": {
      "id": 1,
      "type": "SiteReward",
      "title": "Awesome reward",
      "description": "Lorem ipsum",
      "ask_for_address": true
    },
    "address": {
      "address": "Jansbuitensingel 29",
      "street": "Jansbuitensingel",
      "house_number": "29",
      "zipcode": "6811AD",
      "city": "Arnhem",
      "country": "NL"
    },
    "consent": {
      "url": "https://demo1.kentaa.nl/donate",
      "text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
      "version": "V2 22-06-2018 13:09"
    },
    "consents": [
      {
        "consent_type": "terms_conditions",
        "consent_status": "granted",
        "granted_at": "2016-03-30T14:41:48Z",
        "consent_text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
        "url": "https://demo1.kentaa.nl/donate",
        "terms_conditions_version": "V2 22-06-2018 13:09",
        "privacy_version": "V1 10-06-2018 11:42"
      }
    ]
  }
}

Retrieve a specific donation on the current site.

HTTP request

GET https://api.kentaa.nl/v1/donations/:id

Manual donations

A manual donation is a customly added amount of funds to an entity. They can be used to adjust the donations counter, with either a positive or negative amount. They are also used to add donations (e.g. to a project) which have been donated through other channels but need to be visible on the website.

A manual donation is not associated with a transaction and also does not have any other associations such as questions, rewards, profiles, etc.

Manual donation object

Attribute Type Description
id integer Unique identifier for this manual donation.
site_id integer Unique identifier for the site associated with the manual donation.
donation_form_id integer Unique identifier for the donation form associated with the manual donation. optional
segment_id integer Unique identifier for the segment associated with the manual donation. optional
project_id integer Unique identifier for the project associated with the manual donation. optional
company_id integer Unique identifier for the company associated with the donation. optional
team_id integer Unique identifier for the team associated with the manual donation. optional
action_id integer Unique identifier for the action associated with the manual donation. optional
created_at string The time (ISO 8601 format) when the manual donation was created.
updated_at string The time (ISO 8601 format) when the manual donation was last updated.
first_name string The first name of the donator. optional
infix string The infix of the donator. optional
last_name string The last name of the donator. optional
anonymous boolean Indicates whether the name of the donor is visible on the website.
email string The email address of the donator. optional
message string The personal message of the donator. optional
currency string The currency (ISO 4217 code) that was used when created the manual donation.
amount string The manual donation amount (with decimals).
countable boolean Indicates whether the manual donation is included in the webpages and counters of parent levels of a closed project.
target_url string The URL where the manual donation was created for.

List Manual donations

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.manual_donations
curl https://api.kentaa.nl/v1/manual-donations \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "manual_donations": [
    {
      "id": 1,
      "site_id": 1,
      "created_at": "2019-12-02T09:22:00Z",
      "updated_at": "2019-12-02T09:22:45Z",
      "first_name": "Beheer",
      "last_name": "Kentaa",
      "anonymous": false,
      "email": "john.doe@kentaa.nl",
      "currency": "EUR",
      "amount": "100.0",
      "countable": true,
      "target_url": "https://demo1.kentaa.nl/"
    }
  ],
  "total_entries": 4,
  "total_pages": 1,
  "per_page": 25,
  "current_page": 1
}

Get a list of manual donations for the current site, donation form, segment, project, team, action or company.

HTTP request

GET https://api.kentaa.nl/v1/manual-donations
GET https://api.kentaa.nl/v1/donation-forms/:donation_form_id/manual-donations
GET https://api.kentaa.nl/v1/segments/:segment_id/manual-donations
GET https://api.kentaa.nl/v1/projects/:project_id/manual-donations
GET https://api.kentaa.nl/v1/teams/:team_id/manual-donations
GET https://api.kentaa.nl/v1/actions/:action_id/manual-donations
GET https://api.kentaa.nl/v1/companies/:company_id/manual-donations

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Manual donation

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.manual_donations.get(1)
curl https://api.kentaa.nl/v1/manual-donations/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "manual_donation": {
    "id": 1,
    "site_id": 1,
    "created_at": "2019-12-02T09:22:00Z",
    "updated_at": "2019-12-02T09:22:45Z",
    "first_name": "John",
    "last_name": "Doe",
    "anonymous": false,
    "email": "john.doe@kentaa.nl",
    "currency": "EUR",
    "amount": "100.0",
    "countable": true,
    "target_url": "https://demo1.kentaa.nl/"
  }
}

Retrieve a specific manual donation on the current site.

HTTP request

GET https://api.kentaa.nl/v1/manual-donations/:id

Create a Manual donation

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.manual_donations.create(
  first_name: 'John',
  last_name: 'Doe',
  amount: '12.50'
)
curl https://api.kentaa.nl/v1/manual-donations \
  -d '{ "first_name": "John", "last_name": "Doe", "amount": "12.50" }'
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "first_name": "John",
  "last_name": "Doe",
  "amount": "12.50"
}

Example response body:

{
  "manual_donation": {
    "id": 1,
    "site_id": 1,
    "created_at": "2019-12-02T09:22:00Z",
    "updated_at": "2019-12-02T09:22:45Z",
    "first_name": "John",
    "last_name": "Doe",
    "anonymous": false,
    "email": "john.doe@kentaa.nl",
    "currency": "EUR",
    "amount": "12.50",
    "countable": true,
    "target_url": "https://demo1.kentaa.nl/"
  }
}

Create a new manual donation on the current site, donation form, segment, project, team or action.

HTTP request

POST https://api.kentaa.nl/v1/manual-donations
POST https://api.kentaa.nl/v1/donation-forms/:donation_form_id/manual-donations
POST https://api.kentaa.nl/v1/segments/:segment_id/manual-donations
POST https://api.kentaa.nl/v1/projects/:project_id/manual-donations
POST https://api.kentaa.nl/v1/teams/:team_id/manual-donations
POST https://api.kentaa.nl/v1/actions/:action_id/manual-donations

JSON body parameters

Parameter Required Type Description
first_name Yes string The first name of the donator.
infix No string The infix of the donator.
last_name Yes string The last name of the donator.
anonymous No boolean Indicates whether the name of the donor is visible on the website. Default is false.
email No string The email address of the donator.
amount Yes string The manual donation amount (with decimals).
message No string The personal message of the donator.
matching No boolean When match funding is enabled, then match this donation. Default is false.

Update a Manual donation

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.manual_donations.update(1, amount: 50)
curl -X PATCH https://api.kentaa.nl/v1/manual-donations/1 \
  -d '{ "amount": 50 }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "amount": 50
}

Example response body:

{
  "manual_donation": {
    "id": 1,
    "site_id": 1,
    "created_at": "2019-12-02T09:22:00Z",
    "updated_at": "2019-12-02T09:22:45Z",
    "first_name": "John",
    "last_name": "Doe",
    "anonymous": false,
    "email": "john.doe@kentaa.nl",
    "currency": "EUR",
    "amount": "50.0",
    "countable": true,
    "target_url": "https://demo1.kentaa.nl/"
  }
}

Update attributes of a manual donation on the current site.

HTTP request

PATCH https://api.kentaa.nl/v1/manual-donations/:id

JSON body parameters

Parameter Required Type Description
first_name No string The first name of the donator.
infix No string The infix of the donator.
last_name No string The last name of the donator.
anonymous No boolean Indicates whether the name of the donor is visible on the website.
email No string The email address of the donator.
amount No string The manual donation amount (with decimals).
message No string The personal message of the donator.

Delete a Manual donation

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.manual_donations.delete(1)
curl -X DELETE https://api.kentaa.nl/v1/manual-donations/1 \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Delete a manual donation on the current site.

HTTP request

DELETE https://api.kentaa.nl/v1/manual-donations/:id

On success, the response status code will be 204 with an empty body.

Newsletter subscriptions

A newsletter subscription is be made by filling in the email address in the form on the homepage, or by selecting the checkbox "I want to subscribe to the newsletter" on the donation form.

Newsletter subscription object

Attribute Type Description
id integer Unique identifier for this newsletter subscription.
site_id integer Unique identifier for the site associated with the newsletter subscription.
donation_form_id integer Unique identifier for the donation form associated with the donation. optional
segment_id integer Unique identifier for the segment associated with the newsletter subscription. optional
project_id integer Unique identifier for the project associated with the newsletter subscription. optional
created_at string The time (ISO 8601 format) when the newsletter subscription was created.
updated_at string The time (ISO 8601 format) when the newsletter subscription was last updated.
first_name string The first name of the subscription. optional
infix string The infix of the subscription. optional
last_name string The last name of the subscription. optional
email string The email address of the subscription.
locale string The locale that was used while submitting the subscription form (nl, en, de, fr, etc).
subscription_url string The URL that was used when the subscription form was submitted.
consent object The consent that is associated with the subscription. This attribute is deprecated, please use consents instead. deprecated
consents array List of consents associated with the subscription. See Newsletter subscription - Consent object. optional

This object contains information about a specific consent a user has given.

Some consents can also be revoked later on by the user, after which the status will change to revoked and the attribute revoked_at will be returned.

Attribute Type Description
consent_type string Type of consent. See below for possible values with their description.
consent_status string Status of the consent (granted or revoked).
granted_at string The time (ISO 8601 format) when the consent was granted.
revoked_at string The time (ISO 8601 format) when the consent was revoked. optional
consent_text string The consent text the user has agreed to.
url string The URL of the webpage where the consent was given.
terms_conditions_version string Version of the terms and conditions when the consent was given.
privacy_version string Version of the privacy statement when the consent was given. optional

Available consent types are:

Consent type Description
newsletter_subscription Accepting to receive the newsletter.

List Newsletter subscriptions

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.newsletter_subscriptions
curl https://api.kentaa.nl/v1/newsletter-subscriptions \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "newsletter_subscriptions": [
    {
      "id": 1,
      "site_id": 1,
      "created_at": "2016-03-07T13:55:43Z",
      "updated_at": "2016-03-07T13:55:43Z",
      "email": "john.doe@kentaa.nl",
      "locale": "nl",
      "subscription_url": "https://demo1.kentaa.nl"
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/newsletter-subscriptions?page=5&per_page=1",
      "next": "https://api.kentaa.nl/v1/newsletter-subscriptions?page=2&per_page=1"
    }
  },
  "total_entries": 5,
  "total_pages": 5,
  "per_page": 1,
  "current_page": 1
}

Get a list of newsletter subscriptions for the current site, donation form, segment or project.

HTTP request

GET https://api.kentaa.nl/v1/newsletter-subscriptions
GET https://api.kentaa.nl/v1/donation-forms/:donation_form_id/newsletter-subscriptions
GET https://api.kentaa.nl/v1/segments/:segment_id/newsletter-subscriptions
GET https://api.kentaa.nl/v1/projects/:project_id/newsletter-subscriptions

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Newsletter subscription

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.newsletter_subscriptions.get(1)
curl https://api.kentaa.nl/v1/newsletter-subscriptions/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "newsletter_subscription": {
    "id": 1,
    "site_id": 1,
    "created_at": "2016-03-07T13:55:43Z",
    "updated_at": "2016-03-07T13:55:43Z",
    "email": "john.doe@kentaa.nl",
    "locale": "nl",
    "subscription_url": "https://demo1.kentaa.nl",
    "consent": {
      "url": "https://demo1.kentaa.nl",
      "text": "Ja, ik wil de nieuwsbrief ontvangen",
      "version": "V2 22-06-2018 13:09"
    },
    "consents": [
      {
        "consent_type": "newsletter_subscription",
        "consent_status": "granted",
        "granted_at": "2016-03-07T13:55:43Z",
        "consent_text": "Ja, ik wil de nieuwsbrief ontvangen",
        "url": "https://demo1.kentaa.nl/",
        "terms_conditions_version": "V2 22-06-2018 13:09",
        "privacy_version": "V1 10-06-2018 11:42"
      }
    ]
  }
}

Retrieve a specific newsletter subscription on the current site.

HTTP request

GET https://api.kentaa.nl/v1/newsletter-subscriptions/:id

Orders

An order consists of a list of products purchased by the customer.

Order object

Attribute Type Description
id integer Unique identifier for this order.
site_id integer Unique identifier for the site associated with the order.
action_id integer Unique identifier for the action associated with the order.
created_at string The time (ISO 8601 format) when the order was created.
pdated_at string The time (ISO 8601 format) when the order was last updated.
invoicenumber string Unique reference to be used as invoice number.
total_amount string Total amount of the order.
currency string The currency (ISO 4217 code) that was used when paying the order.
payment_status string The payment status of the order (refunded, chargedback, canceled, paid, started, unknown).
first_name string The first name of the customer. optional
infix string The infix of the customer. optional
last_name string The last name of the customer. optional
company string Company name for the customer. optional
email string The email address of the customer. optional
address object The address information associated to the order. See Order - Address object. optional
phone string The phone number of the customer. optional
items array List of items associated with the order. See Order - Item object.

Order - Address object

Attribute Type Description
address string Address line 1.
address2 string Address line 2. optional
street string The street name (only when country is NL). optional
house_number string The house number (only when country is NL). optional
house_number_addition string The house number addition (only when country is NL). optional
zipcode string The zip code.
city string The city.
country string The country (ISO 3166-1 alpha-2 code).

Order - Item object

Attribute Type Description
product object The product information associated to the item. See Order - Product object.
quantity integer The quantity of the product.
amount string The product price based on the quantity.
currency string The amount currency (ISO 4217 code).

Order - Product object

Attribute Type Description
id integer Unique identifier of the product. optional
variant_id integer Unique identifier of the product variant. optional
title string Title of the product.
variant_title string Variant of the product. optional
price string Price of the product variant or product.
currency string The price currency (ISO 4217 code).

List Orders

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.orders
curl https://api.kentaa.nl/v1/orders \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "orders": [
    {
      "id": 21059,
      "site_id": 4,
      "action_id": 8755,
      "created_at": "2021-03-30T14:41:48Z",
      "updated_at": "2021-03-30T14:46:25Z",
      "invoicenumber": "T2021.0004.0000001",
      "total_amount": "65.0",
      "currency": "EUR",
      "payment_status": "paid",
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl",
      "address": {
        "address": "Jansbuitensingel 29",
        "street": "Jansbuitensingel",
        "house_number": "29",
        "zipcode": "6811AD",
        "city": "Arnhem",
        "country": "NL"
      },
      "items": [
        {
          "product": {
            "id": 26,
            "variant_id": 3,
            "title": "Sweater",
            "variant_title": "XL",
            "price": "25.0",
            "currency": "EUR"
          },
          "quantity": 2,
          "amount": "50.0",
          "currency": "EUR"
        },
        {
          "product": {
            "id": 25,
            "variant_id": 2,
            "title": "T-shirt",
            "variant_title": "L",
            "price": "15.0",
            "currency": "EUR"
          },
          "quantity": 1,
          "amount": "15.0",
          "currency": "EUR"
        }
      ]
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/orders?page=31&per_page=1",
      "next": "https://api.kentaa.nl/v1/orders?page=2&per_page=1"
    }
  },
  "total_entries": 31,
  "total_pages": 31,
  "per_page": 1,
  "current_page": 1
}

Get a list of orders for the current site or action.

HTTP request

GET https://api.kentaa.nl/v1/orders
GET https://api.kentaa.nl/v1/actions/:action_id/orders

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get an Order

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.orders.get(1)
curl https://api.kentaa.nl/v1/orders/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "order": {
    "id": 21059,
    "site_id": 4,
    "action_id": 8755,
    "created_at": "2021-03-30T14:41:48Z",
    "updated_at": "2021-03-30T14:46:25Z",
    "invoicenumber": "T2021.0004.0000001",
    "total_amount": "65.0",
    "currency": "EUR",
    "payment_status": "paid",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@kentaa.nl",
    "address": {
      "address": "Jansbuitensingel 29",
      "street": "Jansbuitensingel",
      "house_number": "29",
      "zipcode": "6811AD",
      "city": "Arnhem",
      "country": "NL"
    },
    "items": [
      {
        "product": {
          "id": 26,
          "variant_id": 3,
          "title": "Sweater",
          "variant_title": "XL",
          "price": "25.0",
          "currency": "EUR"
        },
        "quantity": 2,
        "amount": "50.0",
        "currency": "EUR"
      },
      {
        "product": {
          "id": 25,
          "variant_id": 2,
          "title": "T-shirt",
          "variant_title": "L",
          "price": "15.0",
          "currency": "EUR"
        },
        "quantity": 1,
        "amount": "15.0",
        "currency": "EUR"
      }
    ]
  }
}

Retrieve a specific order on the current site.

HTTP request

GET https://api.kentaa.nl/v1/orders/:id

Payments

Represents a payment on a Kentaa site, which can contain one or more Donations and Orders.

Payment object

Attribute Type Description
id integer Unique identifier for this payment.
site_id integer Unique identifier for the site associated with the payment.
created_at string The time (ISO 8601 format) when the payment was created.
updated_at string The time (ISO 8601 format) when the payment was last updated.
currency string The currency (ISO 4217 code) that was used in the payment.
amount string The charged amount (with decimals).
invoicenumber string Unique reference to be used as invoice number.
payment_method string The payment method used to make the payment.
payment_status string The payment status of the payment (refunded, chargedback, canceled, paid, started, unknown).
transaction_id string The transaction ID from the PSP for the payment.
payment_id string The payment ID from the PSP for the payment.
account_iban string The IBAN of the consumer. optional
account_bic string The BIC of the consumer. optional
account_name string The account name of the consumer. optional
description string The payment description from the PSP for the payment.
donations array List of donations associated with the payment.
orders array List of orders associated with the payment.

Get a Payment

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.payments.get(1)
curl https://api.kentaa.nl/v1/payments/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/payments/T2021.0004.0000001 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "payment": {
    "id": 1,
    "site_id": 4,
    "created_at": "2021-03-30T14:41:48Z",
    "updated_at": "2021-03-30T14:46:25Z",
    "currency": "EUR",
    "amount": "90.4",
    "invoicenumber": "T2021.0004.0000001",
    "payment_method": "ideal",
    "payment_status": "paid",
    "transaction_id": "B5C7B7BCAF1ADF6E2032C7CF56969876",
    "payment_id": "116D10DD544ECD1E2D77762C5C3E6D61",
    "account_iban": "NL44RABO0123456789",
    "account_bic": "RABONL2U",
    "account_name": "J. de Tester",
    "description": "Example payment",
    "donations": [
      {
        "id": 1,
        "site_id": 4,
        "created_at": "2021-03-30T14:41:48Z",
        "updated_at": "2021-03-30T14:46:25Z",
        "first_name": "John",
        "last_name": "Doe",
        "anonymous": false,
        "contact_details_type": "visible",
        "email": "john.doe@kentaa.nl",
        "newsletter": false,
        "device_type": "desktop",
        "locale": "nl",
        "frequency_type": "oneoff",
        "currency": "EUR",
        "amount": "15.0",
        "transaction_costs": "0.4",
        "start_donation": false,
        "registration_fee": true,
        "registration_fee_amount": "10.0",
        "total_amount": "25.4",
        "receivable_amount": "24.0",
        "countable": true,
        "invoicenumber": "T2021.0004.0000001",
        "payment_method": "ideal",
        "payment_status": "paid",
        "payment_status_at": "2016-03-30T14:46:25Z",
        "transaction_id": "B5C7B7BCAF1ADF6E2032C7CF56969876",
        "payment_id": "116D10DD544ECD1E2D77762C5C3E6D61",
        "payment_description": "Donatie Demo",
        "target_url": "https://demo1.kentaa.nl/",
      }
    ],
    "orders": [
      {
        "id": 21059,
        "site_id": 4,
        "action_id": 8755,
        "created_at": "2021-03-30T14:41:48Z",
        "updated_at": "2021-03-30T14:46:25Z",
        "invoicenumber": "T2021.0004.0000001",
        "total_amount": "65.0",
        "currency": "EUR",
        "payment_status": "paid",
        "first_name": "John",
        "last_name": "Doe",
        "address": {
          "address": "Jansbuitensingel 29",
          "street": "Jansbuitensingel",
          "house_number": "29",
          "zipcode": "6811AD",
          "city": "Arnhem",
          "country": "NL"
        },
        "items": [
          {
            "product": {
              "id": 26,
              "variant_id": 3,
              "title": "Sweater",
              "variant_title": "XL",
              "price": "25.0",
              "currency": "EUR"
            },
            "quantity": 2,
            "amount": "50.0",
            "currency": "EUR"
          },
          {
            "product": {
              "id": 25,
              "variant_id": 2,
              "title": "T-shirt",
              "variant_title": "L",
              "price": "15.0",
              "currency": "EUR"
            },
            "quantity": 1,
            "amount": "15.0",
            "currency": "EUR"
          }
        ]
      }
    ]
  }
}

Retrieve a specific payment on the current site. A payment can be queried by ID or invoicenumber.

All associated donations and orders will be included in the response without pagination.

HTTP request

GET https://api.kentaa.nl/v1/payments/:id
GET https://api.kentaa.nl/v1/payments/:invoicenumber

Performances

With performances, fundraisers can add sporting performances to their fundraising page. The covered distance will be added up and displayed on the fundraising page.

Performance object

Attribute Type Description
id integer Unique identifier for this performance.
action_id integer Unique identifier for the action associated with the performance.
created_at string The time (ISO 8601 format) when the performance was created.
updated_at string The time (ISO 8601 format) when the performance was last updated.
title string The title of the performance.
description string The description of the performance. optional
source_type string The source of this performance (strava, manual).
performance_type string The type of the performance (running, walking, biking, swimming, ice_skating, roller_skating or other).
performance_at string The time (ISO 8601 format) of the performance.
distance string The distance of the performance (with decimals). Will be converted to km when unit is m on creation.
unit string The distance unit of the performance (m or km). Default is km. Will be converted to km when unit is m on creation.

List Performances

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
action.performances
curl https://api.kentaa.nl/v1/actions/1/performances \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "performances": [
    {
      "id": 1,
      "action_id": 1,
      "created_at": "2021-05-03T08:00:00Z",
      "updated_at": "2021-05-03T08:00:00Z",
      "title": "First tour",
      "description": "The first tour on my new bike.",
      "source_type": "manual",
      "performance_type": "biking",
      "performance_at": "2021-05-02T09:22:00Z",
      "distance": "65.25",
      "unit": "km"
    }
  ],
  "total_entries": 1,
  "total_pages": 1,
  "per_page": 25,
  "current_page": 1
}

Get a list of performances for the action.

HTTP request

GET https://api.kentaa.nl/v1/actions/:action_id/performances

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Performance

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
action.performances.get(1)
curl https://api.kentaa.nl/v1/actions/1/performances/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "performance": {
    "id": 1,
    "action_id": 1,
    "created_at": "2021-05-03T08:00:00Z",
    "updated_at": "2021-05-03T08:00:00Z",
    "title": "First tour",
    "description": "The first tour on my new bike.",
    "source_type": "manual",
    "performance_type": "biking",
    "performance_at": "2021-05-02T09:22:00Z",
    "distance": "65.25",
    "unit": "km"
  }
}

Retrieve a specific performance for the action.

HTTP request

GET https://api.kentaa.nl/v1/actions/:action_id/performances/:id

Create a Performance

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
action.performances.create(
  title: 'First tour',
  performance_type: 'biking',
  performance_at_: '2021-05-02T09:22:00Z',
  distance: '65.25'
)
curl https://api.kentaa.nl/v1/actions/1/performances \
  -d '{ "title": "First tour", "performance_type": "biking", "performance_at": "2021-05-02T09:22:00Z", "distance": "65.25"}'
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "title": "First tour",
  "performance_type": "biking",
  "performance_at": "2021-05-02T09:22:00Z",
  "distance": "65.25"
}

Example response body:

{
  "performance": {
    "id": 1,
    "action_id": 1,
    "created_at": "2021-05-03T08:00:00Z",
    "updated_at": "2021-05-03T08:00:00Z",
    "title": "First tour",
    "source_type": "manual",
    "performance_type": "biking",
    "performance_at": "2021-05-02T09:22:00Z",
    "distance": "65.25",
    "unit": "km"
  }
}

Create a new performance for the action.

HTTP request

POST https://api.kentaa.nl/v1/actions/:action_id/performances

JSON body parameters

Parameter Required Type Description
title Yes string The title of the performance.
description No string The description of the performance.
performance_type Yes string The type of the performance (running, walking, biking, swimming, ice_skating, roller_skating or other).
performance_at Yes string The time (ISO 8601 format) of the performance.
distance Yes string The distance of the performance (with decimals). Will be converted to km when unit is m.
unit No string The distance unit of the performance. Default is km. Will be converted to km when unit is m.

Update a Performance

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
action.performances.update(1, description: 'Updated description')
curl -X PATCH https://api.kentaa.nl/v1/actions/1/performances/1 \
  -d '{ "description": "Updated description" }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "description": "Updated description"
}

Example response body:

{
  "performance": {
    "id": 1,
    "action_id": 1,
    "created_at": "2021-05-03T08:00:00Z",
    "updated_at": "2021-05-03T08:00:00Z",
    "title": "First tour",
    "description": "Updated description",
    "source_type": "manual",
    "performance_type": "biking",
    "performance_at": "2021-05-02T09:22:00Z",
    "distance": "65.25",
    "unit": "km"
  }
}

Update the attributes of a performance for the action.

HTTP request

PATCH https://api.kentaa.nl/v1/actions/:action_id/performances/:id

JSON body parameters

Parameter Required Type Description
title No string The title of the performance.
description No string The description of the performance.
performance_type No string The type of the performance (running, walking, biking, swimming, ice_skating, roller_skating or other).
performance_at No string The time (ISO 8601 format) of the performance.
distance No string The distance of the performance (with decimals). Will be converted to km when unit is m.
unit No string The distance unit of the performance. Default is km. Will be converted to km when unit is m.

Delete a Performance

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
action.performances.delete(1)
curl -X DELETE https://api.kentaa.nl/v1/actions/1/performances/1 \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Delete a performance for the action.

HTTP request

DELETE https://api.kentaa.nl/v1/actions/:action_id/performances/:id

On success, the response status code will be 204 with an empty body.

Performance photos

Photos can be associated with a performance.

Photo object

Attribute Type Description
id integer Unique identifier for this photo.
created_at string The time (ISO 8601 format) when the photo was created.
updated_at string The time (ISO 8601 format) when the photo was last updated.
image_url string The URL to the photo.

List Photos

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
performance = action.performances.get(1)
performance.photos
curl https://api.kentaa.nl/v1/actions/1/performances/1/photos \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "photos": [
    {
      "id": 1,
      "created_at": "2021-05-03T08:00:00Z",
      "updated_at": "2021-05-03T08:00:00Z",
      "image_url": "https://cdn.kentaa.nl/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
    }
  ],
  "total_entries": 1,
  "total_pages": 1,
  "per_page": 25,
  "current_page": 1
}

Get a list of photos for the performance.

HTTP request

GET https://api.kentaa.nl/v1/actions/:action_id/performances/:performance_id/photos

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Photo

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
action = client.actions.get(1)
performance = action.performances.get(1)
performance.photos.get(1)
curl https://api.kentaa.nl/v1/actions/1/performances/1/photos/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "photo": {
    "id": 1,
    "created_at": "2021-05-03T08:00:00Z",
    "updated_at": "2021-05-03T08:00:00Z",
    "image_url": "https://cdn.kentaa.nl/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
  }
}

Retrieve a specific photo for the performance.

HTTP request

GET https://api.kentaa.nl/v1/actions/:action_id/performances/:performance_id/photos/:id

Create a Photo

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
performances = client.actions.get(1)
performance = action.performances.get(1)
performance.photos.create(
  io: File.open("photo.jpeg"),
  content_type: "image/jpeg"
)
curl https://api.kentaa.nl/v1/actions/1/performances \
  -d 'iVBORw0KGgoAAAANSUhEUgAAARUAAABPCAYAAADFjFHHAAAAGX.....'
  -H "Content-Type: image/jpeg" -H "X-Api-Key: your_api_key"

Example request body:

iVBORw0KGgoAAAANSUhEUgAAARUAAABPCAYAAADFjFHHAAAAGX.....

Example response body:

{
  "photo": {
    "id": 1,
    "created_at": "2021-05-03T08:00:00Z",
    "updated_at": "2021-05-03T08:00:00Z",
    "image_url": "https://cdn.kentaa.nl/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
  }
}

Create a new photo for the performance.

The Content-Type header should be set to the type of image you want to send (e.g. "image/jpeg"). The photo should be submitted as raw data in the HTTP request body.

HTTP request

POST https://api.kentaa.nl/v1/actions/:action_id/performances/:performance_id/photos

Projects

A project represents a campaign with a certain goal. It can be an event, a crowdfunding project or a customer specific goal. A project usually has an end date and can have multiple Teams and Actions.

Project object

Attribute Type Description
id integer Unique identifier for this project.
slug string Unique identifier for this project, used to create a nice project URL.
site_id integer Unique identifier for the site associated with the project.
segment_id integer Unique identifier for the segment associated with the project. optional
created_at string The time (ISO 8601 format) when the team was created.
updated_at string The time (ISO 8601 format) when the team was last updated.
external_reference string External reference for the project. optional
title string Title for the project.
description string Description for the project.
target_amount integer The target amount for the project.
total_amount string The amount that was donated to the project (with decimals).
total_donations integer The number of donations for the project.
target_amount_achieved boolean Indicates whether the project target amount is achieved or not.
visible boolean Indicates whether the project is visible or not.
countable boolean Indicates whether the project is included in the webpages and counters of parent levels when project is closed.
closed boolean Indicates whether the project is closed or not.
ended boolean Indicates whether the project is ended or not.
end_date string The countdown date (ISO 8601 format) for this project. optional
url string The URL to the project.
donate_url string The URL to directly make a donation to the project.
location object Represents the location for the project. See Project - Location object. optional
photos array List of photos associated with the project. optional
videos array List of videos associated with the project. optional
questions array List of questions, when there are any additional questions associated with the project. See Project - Question object. optional
contact object The contact that is associated with the project. See Project - Contact object. optional
consent object The consent that is associated with the project. This attribute is deprecated, please use consents instead. deprecated
consents array List of consents associated with the project. See Project - Consent object. optional

This object contains information about a specific consent a project starter has given, for example the processing of personal data when signing up.

Some consents can also be revoked later on by the project starter, after which the status will change to revoked and the attribute revoked_at will be returned.

Attribute Type Description
consent_type string Type of consent. See below for possible values with their description.
consent_status string Status of the consent (granted or revoked).
granted_at string The time (ISO 8601 format) when the consent was granted.
revoked_at string The time (ISO 8601 format) when the consent was revoked. optional
consent_text string The consent text the project starter has agreed to.
url string The URL of the webpage where the consent was given.
terms_conditions_version string Version of the terms and conditions when the consent was given.
privacy_version string Version of the privacy statement when the consent was given. optional

Available consent types (given by project starter) are:

Consent type Description
terms_conditions Accepting the terms and conditions.
processing_personal_data Accepting the processing of personal data.
processing_personal_sensitive_data Accepting the processing of sensitive personal data.
contact_phone Allowing use of the phone number for tips.
contact_phone_commercial Allowing use of the phone number for marketing purposes.

Project - Contact object

Attribute Type Description
first_name string The first name of the contact.
infix string The infix of the contact. optional
last_name string The last name of the contact.
email string The email address of the contact.
address string Address line 1 of the contact. optional
address2 string Address line 2 of the contact. optional
street string The street name of the contact (only when country is NL). optional
house_number string The house number of the contact (only when country is NL). optional
house_number_addition string The house number addition of the contact (only when country is NL). optional
zipcode string The zip code of the contact. optional
city string The city of the contact. optional
country string The country of the contact (ISO 3166-1 alpha-2 code). optional
phone string The phone number of the contact. optional
birthday string The birthday (ISO 8601 format) of the contact. optional
gender string The gender of the contact (male, female, neutral). optional

Project - Location object

Attribute Type Description
zip_code string Zip code of the location. optional
street string Street of the location. optional
city string City of the location.
latitude string Latitude of the location.
longitude string Longitude of the location.

Project - Question object

Attribute Type Description
id integer Unique identifier for this question.
created_at string The time (ISO 8601 format) when the question was created.
updated_at string The time (ISO 8601 format) when the question was last updated.
question string The question on the sign up form.
answer string The answer that was given for this question.

List Projects

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.projects
curl https://api.kentaa.nl/v1/projects \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "projects": [
    {
      "id": 1,
      "slug": "dignissimos-provident",
      "site_id": 1,
      "created_at": "2015-08-26T14:49:36Z",
      "updated_at": "2015-10-12T16:27:43Z",
      "external_reference": "Customer Campaign 1021AA1-11",
      "title": "Dignissimos provident rerum enim alias magni asperna...",
      "description": "Fugiat et nulla mollitia. Ut omnis adipisci et. Consequatur voluptatibus est dicta rem.",
      "target_amount": 250000,
      "total_amount": "1250.0",
      "total_donations": 18,
      "target_amount_achieved": false,
      "visible": true,
      "countable": true,
      "closed": false,
      "ended": true,
      "end_date": "2015-10-28T00:00:00Z",
      "url": "https://demo1.kentaa.nl/project/dignissimos-provident",
      "donate_url": "https://demo1.kentaa.nl/project/dignissimos-provident/donate",
      "contact": {
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl",
        "address": "Jansbuitensingel 29",
        "street": "Jansbuitensingel",
        "house_number": "29",
        "zipcode": "6811AD",
        "city": "Arnhem",
        "country": "NL",
        "phone": "0262616240"
      }
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/projects?page=5&per_page=1",
      "next": "https://api.kentaa.nl/v1/projects?page=2&per_page=1"
    }
  },
  "total_entries": 5,
  "total_pages": 5,
  "per_page": 1,
  "current_page": 1
}

Get a list of projects for the current site or segment.

HTTP request

GET https://api.kentaa.nl/v1/projects
GET https://api.kentaa.nl/v1/segments/:segment_id/projects

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Project

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.projects.get(1)
client.projects.get('dignissimos-provident')
curl https://api.kentaa.nl/v1/projects/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/projects/dignissimos-provident \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "project": {
    "id": 1,
    "slug": "dignissimos-provident",
    "site_id": 1,
    "created_at": "2015-08-26T14:49:36Z",
    "updated_at": "2015-10-12T16:27:43Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "title": "Dignissimos provident rerum enim alias magni asperna...",
    "description": "Fugiat et nulla mollitia. Ut omnis adipisci et. Consequatur voluptatibus est dicta rem.",
    "target_amount": 250000,
    "total_amount": "1250.0",
    "total_donations": 18,
    "target_amount_achieved": false,
    "visible": true,
    "countable": true,
    "closed": false,
    "ended": true,
    "end_date": "2015-10-28T00:00:00Z",
    "url": "https://demo1.kentaa.nl/project/dignissimos-provident",
    "donate_url": "https://demo1.kentaa.nl/project/dignissimos-provident/donate",
    "contact": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl",
      "address": "Jansbuitensingel 29",
      "street": "Jansbuitensingel",
      "house_number": "29",
      "zipcode": "6811AD",
      "city": "Arnhem",
      "country": "NL",
      "phone": "0262616240"
    },
    "consent": {
      "url": "https://demo1.kentaa.nl/project/projectinformatie",
      "text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
      "version": "V1 30-05-2018 11:53"
    },
    "consents": [
      {
        "consent_type": "terms_conditions",
        "consent_status": "granted",
        "granted_at": "2015-08-26T14:49:36Z",
        "consent_text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
        "url": "https://demo1.kentaa.nl/project/projectinformatie",
        "terms_conditions_version": "V1 30-05-2018 11:53",
        "privacy_version": "V1 30-05-2018 11:53"
      },
      {
        "consent_type": "processing_personal_data",
        "consent_status": "granted",
        "granted_at": "2015-08-26T14:49:36Z",
        "consent_text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
        "url": "https://demo1.kentaa.nl/project/projectinformatie",
        "terms_conditions_version": "V1 30-05-2018 11:53",
        "privacy_version": "V1 30-05-2018 11:53"
      }
    ]
  }
}

Retrieve a specific project on the current site. Projects can be queried by ID or slug.

HTTP request

GET https://api.kentaa.nl/v1/projects/:id
GET https://api.kentaa.nl/v1/projects/:slug

Recurring donors

When a donor agrees to make periodic (e.g. monthly or annually) donations, he/she becomes a recurring donor. Currently, a recurring donor is always associated with a Donation form.

Use the Donations endpoint to retrieve the donations for a recurring donor.

Recurring donor object

Attribute Type Description
id integer Unique identifier for this recurring donor.
site_id integer Unique identifier for the site associated with the recurring donor.
donation_form_id integer Unique identifier for the donation form associated with the recurring donor.
created_at string The time (ISO 8601 format) when the recurring donor was created.
updated_at string The time (ISO 8601 format) when the recurring donor was last updated.
first_name string The first name of the recurring donor. optional
infix string The infix of the recurring donor. optional
last_name string The last name of the recurring donor. optional
company string Company name for the recurring donor. optional
anonymous boolean Indicates whether the name of the recurring donor is visible on the website.
email string The email address of the recurring donor.
locale string The locale that was used while submitting the donation form (nl, en, de, fr, etc).
frequency_type string The frequency that will be used to do recurring donations (monthly, annually).
start_date string Date (ISO 8601 format) when recurring donations have been started.
end_date string Date (ISO 8601 format) when recurring donations have been stopped. optional
active boolean Indicates whether this donor is active and recurring donations will be done.
currency string The currency (ISO 4217 code) that will be used for recurring donations.
amount string The donation amount (with decimals).
transaction_costs string The contribution to transaction costs (with decimals). optional
total_amount string Total amount of the donation (amount + contribution transaction costs).

List Recurring donors

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.recurring_donors
curl https://api.kentaa.nl/v1/recurring-donors \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "recurring_donors": [
    {
      "id": 1,
      "site_id": 1,
      "donation_form_id": 1,
      "created_at": "2020-10-01T09:39:50Z",
      "updated_at": "2020-10-01T09:39:50Z",
      "first_name": "John",
      "last_name": "Doe",
      "anonymous": false,
      "email": "john.doe@kentaa.nl",
      "frequency_type": "monthly",
      "start_date": "2020-10-01",
      "active": true,
      "currency": "EUR",
      "amount": "50.0",
      "transaction_costs": "0.4",
      "total_amount": "50.4"
    }
  ],
  "total_entries": 1,
  "total_pages": 1,
  "per_page": 25,
  "current_page": 1
}

Get a list of recurring donors for the current site or donation form.

HTTP request

GET https://api.kentaa.nl/v1/recurring-donors
GET https://api.kentaa.nl/v1/donation-forms/:donation_form_id/recurring-donors

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Recurring donor

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.recurring_donors.get(1)
curl https://api.kentaa.nl/v1/recurring-donors/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "recurring_donor": {
    "id": 1,
    "site_id": 10,
    "donation_form_id": 1,
    "created_at": "2020-10-01T09:39:50Z",
    "updated_at": "2020-10-01T09:39:50Z",
    "first_name": "John",
    "last_name": "Doe",
    "anonymous": false,
    "email": "john.doe@kentaa.nl",
    "frequency_type": "monthly",
    "start_date": "2020-10-01",
    "active": true,
    "currency": "EUR",
    "amount": "50.0",
    "transaction_costs": "0.4",
    "total_amount": "50.4"
  }
}

Retrieve a specific recurring donor on the current site.

HTTP request

GET https://api.kentaa.nl/v1/recurring-donors/:id

Segments

A segment is a subsite within a Kentaa site. It can have multiple Projects, Teams and Actions.

Segment object

Attribute Type Description
id integer Unique identifier for this segment.
site_id integer Unique identifier for the site associated with the segment.
created_at string The time (ISO 8601 format) when the segment was created.
updated_at string The time (ISO 8601 format) when the segment was last updated.
external_reference string External reference for the segment. optional
subdomain string The unique subdomain for the segment.
name string Then name for the segment.
title string Title for the segment.
description string Description for the segment.
target_amount integer The target amount for the segment.
total_amount string The amount that was donated to the segment (with decimals).
total_donations integer The number of donations for the segment.
url string The URL to the segment.
donate_url string The URL to directly make a donation to the segment.
end_date string The countdown date (ISO 8601 format) for this project. optional
banners array List of banners associated with the segment. optional

List Segments

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.segments
curl https://api.kentaa.nl/v1/segments \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "segments": [
    {
      "id": 1,
      "site_id": 1,
      "created_at": "2015-11-17T16:32:03Z",
      "updated_at": "2015-11-17T16:32:27Z",
      "external_reference": "Customer Campaign 1021AA1-11",
      "subdomain": "segment-2",
      "name": "Segment 2",
      "title": "Aut est maxime nostrum.",
      "description": "Maiores ut velit fugiat eos. Quae est nostrum rerum aut et nihil. Sequi eveniet occaecati et est corporis et enim.",
      "target_amount": 2685,
      "total_amount": "0.0",
      "total_donations": 0,
      "url": "https://segment-2.demo1.kentaa.nl/",
      "donate_url": "https://segment-2.demo1.kentaa.nl/donate",
      "banners": [
        {
          "id": 14,
          "created_at": "2015-11-17T16:32:11Z",
          "updated_at": "2015-11-17T16:32:11Z",
          "url": "https://cdn.kentaa.nl/carousel/file/segment_banners/banner/14/normal_93be693da7ec2dde1a85ea4aec3832a8dfc60330.JPG",
          "text": "example",
          "link": "http://www.example.com/",
          "locale": "nl"
        }
      ]
    }
  ],
  "links": {
    "pages": {
      "first": "https://api.kentaa.nl/v1/segments?page=1&per_page=1",
      "last": "https://api.kentaa.nl/v1/segments?page=3&per_page=1",
      "prev": "https://api.kentaa.nl/v1/segments?page=1&per_page=1",
      "next": "https://api.kentaa.nl/v1/segments?page=3&per_page=1"
    }
  },
  "total_entries": 3,
  "total_pages": 3,
  "per_page": 1,
  "current_page": 2
}

Get a list of segments for the current site.

HTTP request

GET https://api.kentaa.nl/v1/segments

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a Segment

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.segments.get(1)
curl https://api.kentaa.nl/v1/segments/1 \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "segment": {
    "id": 1,
    "site_id": 1,
    "created_at": "2015-11-17T16:32:03Z",
    "updated_at": "2015-11-17T16:32:27Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "subdomain": "segment-2",
    "name": "Segment 2",
    "title": "Aut est maxime nostrum.",
    "description": "Maiores ut velit fugiat eos. Quae est nostrum rerum aut et nihil. Sequi eveniet occaecati et est corporis et enim.",
    "target_amount": 2685,
    "total_amount": "0.0",
    "total_donations": 0,
    "url": "https://segment-2.demo1.kentaa.nl/",
    "donate_url": "https://segment-2.demo1.kentaa.nl/donate",
    "banners": [
      {
        "id": 14,
        "created_at": "2015-11-17T16:32:11Z",
        "updated_at": "2015-11-17T16:32:11Z",
        "url": "https://cdn.kentaa.nl/carousel/file/segment_banners/banner/14/normal_93be693da7ec2dde1a85ea4aec3832a8dfc60330.JPG",
        "text": "example",
        "link": "http://www.example.com/",
        "locale": "nl"
      }
    ]
  }
}

Retrieve a specific segment on the current site.

HTTP request

GET https://api.kentaa.nl/v1/segments/:id

Sites

The current Kentaa site. It can have multiple Segments, Projects, Teams and Actions.

Site object

Attribute Type Description
id integer Unique identifier for this site.
created_at string The time (ISO 8601 format) when the site was created.
updated_at string The time (ISO 8601 format) when the site was last updated.
external_reference string External reference for this site. optional
host string The hostname for this site.
name string Name for the site.
title string Title displayed on the homepage of the site.
description string Description for the site.
target_amount integer The target amount for the site.
total_amount string The amount that was donated to the site (with decimals).
total_donations integer The number of donations for the site.
default_currency string The default currency (ISO 4217 code) on this site.
url string The URL to the site.
donate_url string The URL to directly make a donation to the site.
video_url string The video showed on the homepage.
owner_name string The name of the owner of the site.
owner_email string The email address of the owner of the site.
end_date string The countdown date (ISO 8601 format) for this site. optional
banners array List of banners associated with the site. optional
logos array List of logos associated with the site. optional
background_image_url string The URL to the background image of the site. optional
sign_up_flow_background_image_url string The URL to the sign up flow background image of the site. optional
theme object The theme settings of the site (such as primary and contrast colors).

Get current Site

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.sites.current
curl https://api.kentaa.nl/v1/sites/current \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "site": {
    "id": 1,
    "created_at": "2015-11-17T16:32:03Z",
    "updated_at": "2015-11-17T16:32:27Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "host": "demo1.kentaa.nl",
    "name": "Demo",
    "title": "Aut est maxime nostrum.",
    "description": "Maiores ut velit fugiat eos. Quae est nostrum rerum aut et nihil. Sequi eveniet occaecati et est corporis et enim.",
    "target_amount": 5000,
    "total_amount": "0.0",
    "total_donations": 0,
    "video_url": "https://www.youtube.com/watch?v=VLv1jKC39jGQk",
    "owner_name": "John doe",
    "owner_email": "johndoe@example.com",
    "default_currency": "EUR",
    "url": "https://demo1.kentaa.nl/",
    "donate_url": "https://demo1.kentaa.nl/donate",
    "banners": [
      {
        "id": 14,
        "created_at": "2015-11-17T16:32:11Z",
        "updated_at": "2015-11-17T16:32:11Z",
        "url": "https://cdn.kentaa.nl/carousel/file/site_banners/banner/1/normal_93be693da7ec2dde1a85ea4aec3832a8dfc60330.JPG",
        "text": "example",
        "link": "http://www.example.com/",
        "locale": "nl"
      }
    ],
    "logos": [
        {
          "locale": "nl",
          "url": "https://cdn.kentaa.nl/header_logos/logo/site_logo/2528/116c9a3acc4a88f9e14bb0b6319045f987f4c160.jpeg"

        },
        {
          "locale": "en",
          "url": "https://cdn.kentaa.nl/header_logos/logo/site_logo/2529/2fe74604b1554b6a3f1fb0fc0f0b80efaab9437a.png"
        }
    ],
    "background_image_url": "https://cdn.kentaa.nl/background_images/site_theme/background_image/2238/c84048633c78cd54cf3000a244738d8005d265c1.jpg",
    "sign_up_flow_background_image_url": "https://cdn.kentaa.nl/background_images/site_setting/sign_up_flow_background_image/3804/0afc0d7f0932b5f8f4ed49b06e768a6eb36e31b3.jpg",
    "theme": {
        "primary_color": "#6b0a0a",
        "contrast_color": "#400b0b"
    }
  }
}

Retrieve details of the current site.

HTTP request

GET https://api.kentaa.nl/v1/sites/current

Teams

A team represents a fundraising teampage on a Kentaa site. It contains one or more team members, which are Actions.

Team object

Attribute Type Description
id integer Unique identifier for this team.
slug string Unique identifier for this team, used to create a nice team URL.
site_id integer Unique identifier for the site associated with the team.
segment_id integer Unique identifier for the segment associated with the team. optional
project_id integer Unique identifier for the project associated with the team. optional
created_at string The time (ISO 8601 format) when the team was created.
updated_at string The time (ISO 8601 format) when the team was last updated.
external_reference string External reference for the team. optional
name string Name for the team.
owner object Represents the owner for the team. See Team - Owner object.
members array List of team members in this team. See Team - Member object.
title string Title for the team.
description string Description for the team.
target_amount integer The target amount for the team.
total_amount string The amount that was donated to the team (with decimals).
total_donations integer The number of donations for the team.
target_amount_achieved boolean Indicates whether the team target amount is achieved or not.
visible boolean Indicates whether the team is visible or not.
countable boolean Indicates whether the team is included in the webpages and counters of parent levels of a closed project.
closed boolean Indicates whether the team is closed or not.
ended boolean Indicates whether the team is ended or not.
end_date string The countdown date (ISO 8601 format) for this team. optional
url string The URL to the teampage.
donate_url string The URL to directly make a donation to the team.
photos array List of photos associated with the team. optional
videos array List of videos associated with the team. optional
questions array List of questions, when there are any additional questions associated with the team. See Team - Question object. optional

Team - Member object

The Team - Member object is a subset of the Action object:

Attribute Type Description
id integer Unique identifier for the team member action.
owner object Represents the owner of the team action. See Action - Owner object.
team_captain boolean Indicates whether the team member is a team captain.
first_name string The first name of the fundraiser.
infix string The infix of the fundraiser. optional
last_name string The last name of the fundraiser.
avatar_url string The URL to the avatar image of the fundraiser. optional
url string The URL to the team member action.
donate_url string The URL to directly make a donation to the team member action.

Team - Owner object

The Team - Owner object is a subset of the User object:

Attribute Type Description
id integer Unique identifier for the team owner.
first_name string The first name of the owner.
infix string The infix of the owner. optional
last_name string The last name of the owner.
email string The email address of the owner.
avatar_url string The URL to the avatar image of the owner. optional

Team - Question object

Attribute Type Description
id integer Unique identifier for this question.
created_at string The time (ISO 8601 format) when the question was created.
updated_at string The time (ISO 8601 format) when the question was last updated.
question string The question on the sign up form.
answer string The answer that was given for this question.

List Teams

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.teams
curl https://api.kentaa.nl/v1/teams \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "teams": [
    {
      "id": 1,
      "slug": "asperiores-beatae-voluptate-qui",
      "site_id": 1,
      "created_at": "2015-08-26T14:51:35Z",
      "updated_at": "2015-10-12T16:27:43Z",
      "external_reference": "Customer Campaign 1021AA1-11",
      "owner": {
        "id": 2,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl"
      },
      "members": [
        {
          "id": 9,
          "owner": {
            "id": 8,
            "first_name": "Thomas",
            "last_name": "Klein",
            "email": "thomas.klein@kentaa.nl"
          },
          "team_captain": false,
          "first_name": "Thomas",
          "last_name": "Klein",
          "email": "thomas.klein@kentaa.nl",
          "url": "https://demo1.kentaa.nl/actie/thomas-klein",
          "donate_url": "https://demo1.kentaa.nl/actie/thomas-klein/donate"
        },
        {
          "id": 3,
          "owner": {
            "id": 2,
            "first_name": "John",
            "last_name": "Doe",
            "email": "john.doe@kentaa.nl"
          },
          "team_captain": true,
          "first_name": "John",
          "last_name": "Doe",
          "email": "john.doe@kentaa.nl",
          "url": "https://demo1.kentaa.nl/actie/john-doe",
          "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate"
        }
      ],
      "name": "Asperiores beatae voluptate qui.",
      "title": "Vero aspernatur dolores et excepturi.",
      "description": "Cum odio est. Consequuntur occaecati sapiente molestiae quam recusandae possimus aut. Ratione cum harum beatae ad repellat minus.",
      "target_amount": 2000,
      "total_amount": "225.0",
      "total_donations": 4,
      "target_amount_achieved": false,
      "visible": true,
      "countable": true,
      "closed": false,
      "ended": false,
      "url": "https://demo1.kentaa.nl/team/asperiores-beatae-voluptate-qui",
      "donate_url": "https://demo1.kentaa.nl/team/asperiores-beatae-voluptate-qui/donate"
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/teams?page=8&per_page=1",
      "next": "https://api.kentaa.nl/v1/teams?page=2&per_page=1"
    }
  },
  "total_entries": 8,
  "total_pages": 8,
  "per_page": 1,
  "current_page": 1
}

Get a list of teams for the current site, segment or project.

HTTP request

GET https://api.kentaa.nl/v1/teams
GET https://api.kentaa.nl/v1/segments/:segment_id/teams
GET https://api.kentaa.nl/v1/projects/:project_id/teams

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.
include When set to owner, include the full owner object in the result.
When set to members.owner, include the full owner object of members in the result.
Multiple values are allowed using a comma as separator.

Get a Team

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.teams.get(1)
client.teams.get('asperiores-beatae-voluptate-qui')
curl https://api.kentaa.nl/v1/teams/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/teams/asperiores-beatae-voluptate-qui \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "team": {
    "id": 1,
    "slug": "asperiores-beatae-voluptate-qui",
    "site_id": 1,
    "created_at": "2015-08-26T14:51:35Z",
    "updated_at": "2015-10-12T16:27:43Z",
    "external_reference": "Customer Campaign 1021AA1-11",
    "owner": {
      "id": 2,
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl"
    },
    "members": [
      {
        "id": 9,
        "owner": {
          "id": 8,
          "first_name": "Thomas",
          "last_name": "Klein",
          "email": "thomas.klein@kentaa.nl"
        },
        "team_captain": false,
        "first_name": "Thomas",
        "last_name": "Klein",
        "email": "thomas.klein@kentaa.nl",
        "url": "https://demo1.kentaa.nl/actie/thomas-klein",
        "donate_url": "https://demo1.kentaa.nl/actie/thomas-klein/donate"
      },
      {
        "id": 3,
        "owner": {
          "id": 2,
          "first_name": "John",
          "last_name": "Doe",
          "email": "john.doe@kentaa.nl"
        },
        "team_captain": true,
        "first_name": "John",
        "last_name": "Doe",
        "email": "john.doe@kentaa.nl",
        "url": "https://demo1.kentaa.nl/actie/john-doe",
        "donate_url": "https://demo1.kentaa.nl/actie/john-doe/donate"
      }
    ],
    "name": "Asperiores beatae voluptate qui.",
    "title": "Vero aspernatur dolores et excepturi.",
    "description": "Cum odio est. Consequuntur occaecati sapiente molestiae quam recusandae possimus aut. Ratione cum harum beatae ad repellat minus.",
    "target_amount": 2000,
    "total_amount": "225.0",
    "total_donations": 4,
    "target_amount_achieved": false,
    "visible": true,
    "countable": true,
    "closed": false,
    "ended": false,
    "url": "https://demo1.kentaa.nl/team/asperiores-beatae-voluptate-qui",
    "donate_url": "https://demo1.kentaa.nl/team/asperiores-beatae-voluptate-qui/donate"
  }
}

Retrieve a specific team on the current site. Teams can be queried by ID or slug.

HTTP request

GET https://api.kentaa.nl/v1/teams/:id
GET https://api.kentaa.nl/v1/teams/:slug

Query parameters

Parameter Description
include When set to owner, include the full owner object in the result.
When set to members.owner, include the full owner object of members in the result.
Multiple values are allowed using a comma as separator.

Users

A user represents a user account on a Kentaa site.

User object

Attribute Type Description
id integer Unique identifier for this user.
site_id integer Unique identifier for the site associated with the user.
created_at string The time (ISO 8601 format) when the user was created.
updated_at string The time (ISO 8601 format) when the user was last updated.
first_name string The first name of the user.
infix string The infix of the user. optional
last_name string The last name of the user.
email string The email address of the user.
avatar_url string The URL to the avatar image of the user. optional
address string Address line 1 of the user. optional
address2 string Address line 2 of the user. optional
street string The street name of the user (only when country is NL). optional
house_number string The house number of the user (only when country is NL). optional
house_number_addition string The house number addition of the user (only when country is NL). optional
zipcode string The zip code of the user. optional
city string The city of the user. optional
country string The country of the user (ISO 3166-1 alpha-2 code). optional
phone string The phone number of the user. optional
birthday string The birthday (ISO 8601 format) of the user. optional
gender string The gender of the user (male, female, neutral). optional
locale string The locale when the user was created (nl, en, de, fr, etc).
consent object The consent that is associated with the user. This attribute is deprecated, please use consents instead. deprecated
consents array List of consents associated with the user. See User - Consent object. optional

This object contains information about a specific consent a user has given, for example the processing of personal data when signing up.

Some consents can also be revoked later on by the user, after which the status will change to revoked and the attribute revoked_at will be returned.

Attribute Type Description
consent_type string Type of consent. See below for possible values with their description.
consent_status string Status of the consent (granted or revoked).
granted_at string The time (ISO 8601 format) when the consent was granted.
revoked_at string The time (ISO 8601 format) when the consent was revoked. optional
consent_text string The consent text the user has agreed to.
url string The URL of the webpage where the consent was given.
terms_conditions_version string Version of the terms and conditions when the consent was given.
privacy_version string Version of the privacy statement when the consent was given. optional

Available consent types are:

Consent type Description
terms_conditions Accepting the terms and conditions.
processing_personal_data Accepting the processing of personal data.
processing_personal_sensitive_data Accepting the processing of sensitive personal data.
contact_phone Allowing use of the phone number for tips.
contact_phone_commercial Allowing use of the phone number for marketing purposes.

List Users

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.users
curl https://api.kentaa.nl/v1/users \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "users": [
    {
      "id": 2,
      "site_id": 1,
      "created_at": "2018-07-18T13:58:11Z",
      "updated_at": "2018-08-17T03:00:03Z",
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@kentaa.nl",
      "address": "Jansbuitensingel 29",
      "street": "Jansbuitensingel",
      "house_number": "29",
      "zipcode": "6811AD",
      "city": "Arnhem",
      "country": "NL",
      "phone": "0262616240",
      "gender": "male",
      "locale": "nl"
    }
  ],
  "links": {
    "pages": {
      "last": "https://api.kentaa.nl/v1/users?page=31&per_page=1",
      "next": "https://api.kentaa.nl/v1/users?page=2&per_page=1"
    }
  },
  "total_entries": 31,
  "total_pages": 31,
  "per_page": 1,
  "current_page": 1
}

Get a list of users for the current site.

HTTP request

GET https://api.kentaa.nl/v1/users

Query parameters

Parameter Description
page Page number to show. Default is 1.
per_page Number of results to return per page. Default is 25.
created_after Show results created after the given ISO 8601 datetime, ordered by created_at.
updated_after Show results updated after the given ISO 8601 datetime, ordered by updated_at.
created_before Show results created before the given ISO 8601 datetime, ordered by created_at.
updated_before Show results updated before the given ISO 8601 datetime, ordered by updated_at.

Get a User

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.users.get(1)
client.users.get('john.doe@kentaa.nl')
curl https://api.kentaa.nl/v1/users/1 \
  -H "X-Api-Key: your_api_key"
curl https://api.kentaa.nl/v1/users/john.doe%40kentaa.nl \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "user": {
    "id": 2,
    "site_id": 1,
    "created_at": "2018-07-18T13:58:11Z",
    "updated_at": "2018-08-17T03:00:03Z",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@kentaa.nl",
    "address": "Jansbuitensingel 29",
    "street": "Jansbuitensingel",
    "house_number": "29",
    "zipcode": "6811AD",
    "city": "Arnhem",
    "country": "NL",
    "phone": "0262616240",
    "gender": "male",
    "locale": "nl",
    "consent": {
      "url": "https://demo1.kentaa.nl/meedoen/wie-ben-jij",
      "text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
      "version": "V2 22-06-2018 13:09"
    },
    "consents": [
      {
        "consent_type": "terms_conditions",
        "consent_status": "granted",
        "granted_at": "2018-07-18T13:58:11Z",
        "consent_text": "Ik accepteer de <a href='/algemene-voorwaarden' class='theme-text-color' target='_blank'>Algemene voorwaarden</a>.",
        "url": "https://demo1.kentaa.nl/meedoen/wie-ben-jij",
        "terms_conditions_version": "V2 22-06-2018 13:09",
        "privacy_version": "V1 10-06-2018 11:42"
      },
      {
        "consent_type": "processing_personal_data",
        "consent_status": "granted",
        "granted_at": "2018-07-18T13:58:11Z",
        "consent_text": "Ja, ik geef uitdrukkelijk toestemming voor de verwerking van mijn persoonsgegevens.",
        "url": "https://demo1.kentaa.nl/meedoen/wie-ben-jij",
        "terms_conditions_version": "V2 22-06-2018 13:09",
        "privacy_version": "V1 10-06-2018 11:42"
      }
    ]
  }
}

Retrieve a specific user on the current site. Users can be queried by ID or email address.

HTTP request

GET https://api.kentaa.nl/v1/users/:id
GET https://api.kentaa.nl/v1/users/:email

Create a User

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.users.create(
  first_name: 'John',
  last_name: 'Doe',
  email: 'john.doe@kentaa.nl'
)
curl https://api.kentaa.nl/v1/users \
  -d '{ "first_name": "John", "last_name": "Doe", "email": "john.doe@kentaa.nl" }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "first_name": "John",
  "last_name": "Doe",
  "email": "john.doe@kentaa.nl"
}

Example response body:

{
  "user": {
    "id": 2,
    "site_id": 1,
    "created_at": "2018-07-18T13:58:11Z",
    "updated_at": "2018-08-17T03:00:03Z",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@kentaa.nl",
    "address": "Jansbuitensingel 29",
    "street": "Jansbuitensingel",
    "house_number": "29",
    "zipcode": "6811AD",
    "city": "Arnhem",
    "country": "NL",
    "phone": "0262616240",
    "gender": "male",
    "locale": "nl"
  }
}

Create a new user account on the current site.

HTTP request

POST https://api.kentaa.nl/v1/users

JSON body parameters

Parameter Required Type Description
email Yes string The email address of the user. unique
first_name Yes string The first name of the user.
infix No string The infix of the user.
last_name Yes string The last name of the user.
address No string Address line 1 of the user.
address2 No string Address line 2 of the user.
street No string The street name of the user (only when country is NL).
house_number No string The house number of the user (only when country is NL).
house_number_addition No string The house number addition of the user (only when country is NL).
zipcode No string The zip code of the user.
city No string The city of the user.
country No string The country of the user (ISO 3166-1 alpha-2 code).
phone No string The phone number of the user.
birthday No string The birthday (ISO 8601 format) of the user.
gender No string The gender of the user (male, female, neutral).
send_reset_password_email No boolean When set to true, the reset password email will be sent when the user was successfully created. Default is false.

Update a User

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.users.update(1, first_name: 'Jane')
curl -X PATCH https://api.kentaa.nl/v1/users/1 \
  -d '{ "first_name": "Jane", "last_name": "Doe" }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "first_name": "Jane",
  "last_name": "Doe"
}

Example response body:

{
  "user": {
    "id": 2,
    "site_id": 1,
    "created_at": "2018-07-18T13:58:11Z",
    "updated_at": "2018-08-17T03:00:03Z",
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "john.doe@kentaa.nl",
    "address": "Jansbuitensingel 29",
    "street": "Jansbuitensingel",
    "house_number": "29",
    "zipcode": "6811AD",
    "city": "Arnhem",
    "country": "NL",
    "phone": "0262616240",
    "gender": "male",
    "locale": "nl"
  }
}

Update attributes of a user on the current site.

HTTP request

PATCH https://api.kentaa.nl/v1/users/:id

JSON body parameters

Parameter Required Type Description
email No string The email address of the user. unique
first_name No string The first name of the user.
infix No string The infix of the user.
last_name No string The last name of the user.
address No string Address line 1 of the user.
address2 No string Address line 2 of the user.
street No string The street name of the user (only when country is NL).
house_number No string The house number of the user (only when country is NL).
house_number_addition No string The house number addition of the user (only when country is NL).
zipcode No string The zip code of the user.
city No string The city of the user.
country No string The country of the user (ISO 3166-1 alpha-2 code).
phone No string The phone number of the user.
birthday No string The birthday (ISO 8601 format) of the user.
gender No string The gender of the user (male, female, neutral).

Authenticate a User

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
client.users.auth(
  email: 'john.doe@kentaa.nl',
  password: 'secret'
)
curl https://api.kentaa.nl/v1/users/auth \
  -d '{ "email": "john.doe@kentaa.nl", "password": "secret" }' \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Example request body:

{
  "email": "john.doe@kentaa.nl",
  "password": "secret"
}

Example response body (200):

{
  "user": {
    "id": 2,
    "site_id": 1,
    "created_at": "2018-07-18T13:58:11Z",
    "updated_at": "2018-08-17T03:00:03Z",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@kentaa.nl",
    "address": "Jansbuitensingel 29",
    "street": "Jansbuitensingel",
    "house_number": "29",
    "zipcode": "6811AD",
    "city": "Arnhem",
    "country": "NL",
    "phone": "0262616240",
    "gender": "male",
    "locale": "nl"
  }
}

Example response body (403):

{
  "message": "Invalid email or password."
}

Authenticate a user by using email address and password.

All users returned from the List Users endpoint can be authenticated, with the exception of users that have OTP enabled.

HTTP request

POST https://api.kentaa.nl/v1/users/auth

JSON body parameters

Parameter Required Type Description
email Yes string The email address of the user.
password Yes string The password of the user.

User avatars

Avatars can be associated with a user.

Avatar object

Attribute Type Description
id integer Unique identifier for this avatar.
created_at string The time (ISO 8601 format) when the avatar was created.
updated_at string The time (ISO 8601 format) when the avatar was last updated.
avatar_url string The URL to the avatar.

Get the User avatar

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
user = client.users.get(1)
user.avatar.avatar_url
curl https://api.kentaa.nl/v1/users/1/avatar \
  -H "X-Api-Key: your_api_key"

Example response body:

{
  "avatar": {
    "id": 1,
    "created_at": "2023-05-03T08:00:00Z",
    "updated_at": "2023-05-03T08:00:00Z",
    "avatar_url": "https://cdn.kentaa.nl/avatars/avatar/1/thumb_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
  }
}

Retrieve the current user's avatar.

HTTP request

GET https://api.kentaa.nl/v1/users/:id/avatar

Create / update the User avatar

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
user = client.users.get(1)
user.avatar.create(
  io: File.open("photo.jpeg"),
  content_type: "image/jpeg"
)
curl https://api.kentaa.nl/v1/users/1/avatar \
  -d 'iVBORw0KGgoAAAANSUhEUgAAARUAAABPCAYAAADFjFHHAAAAGX.....'
  -H "Content-Type: image/jpeg" -H "X-Api-Key: your_api_key"

Example request body:

iVBORw0KGgoAAAANSUhEUgAAARUAAABPCAYAAADFjFHHAAAAGX.....

Example response body:

{
  "avatar": {
    "id": 1,
    "created_at": "2023-05-03T08:00:00Z",
    "updated_at": "2023-05-03T08:00:00Z",
    "avatar_url": "https://cdn.kentaa.nl/avatars/avatar/1/thumb_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
  }
}

Add or update an avatar for the user.

The Content-Type header should be set to the type of image you want to send (e.g. "image/jpeg"). The avatar should be submitted as raw data in the HTTP request body.

HTTP request

POST https://api.kentaa.nl/v1/users/:id/avatar

Delete the User avatar

require 'kentaa/api'

client = Kentaa::Api::Client.new(api_key: 'your_api_key')
user = client.users.get(1)
user.avatar.delete
curl -X DELETE https://api.kentaa.nl/v1/users/1/avatar \
  -H "Content-Type: application/json" -H "X-Api-Key: your_api_key"

Delete the avatar of a user.

HTTP request

DELETE https://api.kentaa.nl/v1/users/:id/avatar

On success, the response status code will be 204 with an empty body.