Cancellation Flows

Listing and searching or organizations and products are supported. As soon as a user wants to submit a cancellation request, the user must accept GoCancel terms and conditions first and a “Partner User” account must be created.

Picture

Search organizations and products

Retreiving available cancellable organizations is supported by two flows:

Drill down

  1. Use GET /categories to retrieve a list of available categories.

  2. Use GET /organizations?categoryId={categoryId} to retrieve all organizations for given categoryId.

  3. Use GET /organizations/{organizationId}/products to retrieve a list of available cancellable products for given organizationId.

  1. Use GET /search?searchQuery={keyword} to run a full text search on organizations and/or products

 

Sample request categories:

GET {{baseUrl}}/categories 
-- header 'Authorization: Bearer <access_token>'

Sample response categories:

{  
"data": {
"categories": [
{
"id": "f1ecf7a7-6e72-497c-9e30-a636d7d269b0",
"name": "Broadcaster"
},
{
"id": "0bb8560f-00ef-4fa7-83c6-7e60055362d8",
"name": "Charities"
},
{
"id": "b4c78ce9-efc2-476d-b7d9-1e4aecca090d",
"name": "Energy"
},
{
"id": "f4a02634-0d0b-4c6d-bc59-2536f9bdab2e",
"name": "Fitness"
},
{
"id": "13bbb868-28ca-4223-896c-741e587ec0ea",
"name": "Generic"
},
{
"id": "f936cd55-8fc8-4823-a733-32f8a36cf092",
"name": "Insurances"
},
{
"id": "6e2ef056-5410-4e70-b28e-57b11ede27ed",
"name": "Lottery"
},
{
"id": "edaa9be8-8d22-4a0e-94a0-64b82fa011f7",
"name": "Online Services"
},
{
"id": "c6e04461-4aa1-47d0-80fc-ba776f1f85c7",
"name": "Others"
},
{
"id": "bed7e6c7-ac1e-4bbc-89e0-a666becb5605",
"name": "Paper & Magazine"
},
{
"id": "7656ab58-637d-4022-9acc-2cdffc2da00b",
"name": "Payments & Loans"
},
{
"id": "388fd6c6-c1fe-4688-b661-231d6b4ca3fa",
"name": "Political Party"
},
{
"id": "55ce1334-f737-40d6-8d23-771b0831f99c",
"name": "Telephone, Internet & Television"
}
]
},
"meta": {
"pagination": {}
}
}

Sample request organizations:

GET {{baseUrl}}/organizations?locale=nl-NL&limit=50 
-- header 'Authorization: Bearer <access_token>'

Sample response organizations:

{ 
"data": {
"organizations": [
{
"id": "eef2b631-bfdf-4e0c-a8fe-f24696cfd722",
"categoryId": "bed7e6c7-ac1e-4bbc-89e0-a666becb5605",
"name": "100% NL Magazine",
"extraConsent": false,
"url": "",
"locales": [
"nl-NL"
]
},
{
"id": "605a4016-5297-49f7-9007-e8d364bde926",
"categoryId": "f4a02634-0d0b-4c6d-bc59-2536f9bdab2e",
"name": "123 FIT",
"extraConsent": false,
"url": "",
"locales": [
"nl-NL"
]
}
]
},
"meta": {
"pagination": {
"nextToken": "M_-BAwEBCVBhZ2VUb2tlbgH_ggABAgEJUHJldlRva2VuAQwAAQlOZXh0VG9rZW4BDAAAAFH_ggJMWVdOMGFYWmxYMjl5WjJGdWFYcGhkR2x2Ym5NNMAA="
}
}
}

Sample request products for organizations:

GET {{baseUrl}}/organizations/eef2b631-bfdf-4e0c-a8fe-f24696cfd722/products' 
-- header 'Authorization: Bearer <access_token>'


Sample response products for organizations:

{ 
"data": {
"products": [
{
"productId": "0c1b7ca0-df5f-41c3-9953-2865297a4806",
"organizationId": "eef2b631-bfdf-4e0c-a8fe-f24696cfd722",
"name": "Generic",
"locales": [
"nl-NL"
]
}
]
},
"meta": {
"pagination": {}
}
}

Retrieve product details

GET /organizations/{organizationId}/products/{productId} will return a cancellation template, specifying all properties required to cancel the given product.

Sample response:

{ 
"data": {
"product": {
"productId": "0c1b7ca0-df5f-41c3-9953-2865297a4806",
"organizationId": "19c8450a-c846-46be-9ab4-c1c9e60419fb",
"name": "Generic",
"template": [
{
"fieldKey": "ADDRESS",
"label": "Straatnaam en huisnummer",
"format": ""
},
{
"fieldKey": "CITY",
"label": "Woonplaats",
"format": ""
},
{
"fieldKey": "DATA_DELETE_REQUEST",
"label": "Verwijder mijn persoonsgegevens",
"format": "^(true|false)$"
},
{
"fieldKey": "EMAIL",
"label": "E-mailadres (zoals bekend bij Prime)",
"format": "^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$"
},
{
"fieldKey": "NAME",
"label": "Voor- en achternaam",
"format": ""
},
{
"fieldKey": "PHONE_NUMBER",
"label": "Telefoonnummer (zoals bekend bij Prime)",
"format": ""
},
{
"fieldKey": "ZIP",
"label": "Postcode",
"format": "^[a-zA-Z0-9 ]{1,20}$"
}
]
}
}
}

Cancel product

Populate the template model based on the retrieved product details, and submit the cancellation request on POST /cancellations. The X-User-id header is required (see Create a user segment).

This will trigger creation and sending of the cancellation letter by e-mail, mail, registered mail or fax.

In some cases the cancellation request requires an indicator to confirm the user provided an ‘extra’ consent. Specifically in case of cancelation request for political organizations.

Example request:

POST 'https://api.acc.sniptech.com/cancellations/v1/cancellations' \ 
--header 'X-User-Id: {previously created user guid' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"externalCancellationRequestIdentifier": "Your ID",
"organizationId": "eef2b631-bfdf-4e0c-a8fe-f24696cfd722",
"productId": "0c1b7ca0-df5f-41c3-9953-2865297a4806",
"locale": "nl-NL",
"parameters": [{
"fieldKey": "ADDRESS",
"fieldValue": "Joan Muyskenweg 37"
},{
"fieldKey": "CITY",
"fieldValue": "Amsterdam"
},{
"fieldKey": "DATA_DELETE_REQUEST",
"fieldValue": "true"
},{
"fieldKey": "EMAIL",
"fieldValue": "erik@sniptech.nl"
},{
"fieldKey": "NAME",
"fieldValue": "E. van Dongen"
},{
"fieldKey": "ZIP",
"fieldValue": "1114 AN"
}],
"signature": {
"data": "E. van Dongen",
"type": "TEXT"
}
}'

Cancellation status 

After submitting the cancellation request, the status can be retrieved by requesting GET /cancellations . The X-User-Id header is required on this request.