Clym

Developers

Help

Partner API (1.0)

Download OpenAPI specification:Download

Clym Partner API allows partners to onboard and manage domains.

Let's follow an example where a partner adds a domain for one of the websites they support.

1 Create a partner domain by performing a POST request to /portal/domains

Headers:
  Authorization: YOUR_API_KEY
  Content-type: application/json
Body:
  {
    "domain": "https://mycompany.com", //  The domain to be registered (required).
    "company_name": "My Company Inc", // The company legal name (required).
    "company_trade_name": "My Company", // The company trade name if different from the company (legal) name (optional).
    "company_id_number": "333000", // Internal company ID number (optional).
    "account_email": "fifth@apple.com", // The email account of the domain owner. This email address will be used for all transactional emails (including onboarding emails) (required).
    "account_first_name": "John", //  The first name of the individual owning the domain
    "account_last_name": "Doe", // The last name of the individual owning the domain
    "phone_number": "+442071838750", //  The phone number of the individual owning the domain
    "vat_number": "GB123456789", // Company VAT number (optional).
    "registration_number": "3123245432234", // Company registration number (optional).
    "country": "UK", // Company country code in ISO 3166-1 alpha-2
    "state": "", // Company state code in ISO 3166-1 alpha-2
    "city": "London",
    "postal_code": "E1 6DB",
    "address": "1st Main Street",
    "send_intro": true, // Determine if the system will send the customized email or not (optional).
    "action": "CREATE_SILENT", // Specify the action the system will take for that domain. SCAN will perform a scan on the domain and send a scan report to the account owner. SCAN_INVITE will scan the domain and start the onboarding process. CREATE_SILENT will just create the company account and its associated domain. This can be used at a later stage to invite the account owner to onboard.
    "primary_color": "#c3c3c3", // Optional, specify the domain's primary color
    "has_scripts": true, // Optional, when disabled, the Widget will not handle any kind of consent/cookie management and will not block any scripts.
    "has_dsar": true, // Optional, when disabled, the Widget will not allow any Data Subject Request creation
    "has_docs": true, // Optional, when disabled, the Widget will not display any legal documents
    "has_accessibility": true, // Optional, when disabled, the Widget will not have any accessibility functionality enabled.
    "display_company": true, // Optional, when disabled, the Company tab in the widget will be hidden
    "display_dpo": true, // Optional, when disabled, the DPO information in the widget will be hidden
    "default_notice_type": "DISCRETE" // Optional, the default widget notification type to be used by the Widget. Values are: CLASSIC, DISCRETE, FOOTER, TOP
  }

Partner Portal API reponds with:

{
  "result": {
    "id": "aa07e325ae3e4495b6c65c445onidzsb",
    "status": "NEW",
    "instance_property_id": "07b7c4f7fe5d48708d65336ezs7vosre",
    "instance_company_id": "a135ba365ce24f54ab3b8b29mmh9cshq",
    "created_at": "2022-10-06T07:00:45.038Z",
    "updated_at": "2022-10-06T07:00:45.033Z",
    "hostname": "mydomain.com",
    "is_active": true,
    "email": "john@doe.com",
    "company_trade_name": "My Company",
    "company_id_number": "333000",
    "source": "API",
    "partner_id": "ac276ff57f9b4d2196c28927gxh25xx6",
    "has_scripts": true,
    "has_dsar": true,
    "has_docs": true,
    "has_accessibility": true,
    "display_company": true,
    "default_notice_type": "DISCRETE",
    "display_dpo": true,
    "privacy_widget":
          "<script>
          window._clymInit=window._clymInit||[];
          window._clymInit.push(['privacy','YOUR_PROPERTY_ID',{}]);
          </script>
          <script src='https://widget.clym-sdk.net/blocking.js'></script>
          <script src='https://widget.clym-sdk.net/clym.js' async></script>",
    "privacy_center_link": "<a href='#' onclick='Clym.showWidget();'>Privacy Center</a>",
    "privacy_dnt_link": "<a href='#' onclick='Clym.showWidget('/requests/new/do_not_sell_my_information');'>Do not sell my personal information</a>"
  }
}

The result.id can be then used in subsequent calls. For example to send an invite to the domain owner.

2 Invite the domain owner with POST request to /portal/domains/1f19dbcbc7b84be5b40ffcc4ya0zqbtr/invite

If suceessfull the Clym API will response with HTTP 200 and, depending on the action used on creation, the system might send an email to the domain account_email with instructions on how to set up the widget or with a scan report.

Once the privacy widget is placed on branch website and Clym backend receives first page view the domain will become ACTIVE.

Add a domain to the partner account

Add a domain to the partner account

Authorizations:
bearerAuth
Request Body schema: application/json

Domain object with of the domain to be added.

domain
string <uri>

The domain to be registered (required).

company_name
string

The company legal name (required).

company_trade_name
string

The company trade name if different from the company (legal) name (optional).

company_id_number
string

Internal company ID number (optional).

account_email
integer <email>

The email account of the domain owner. This email address will be used for all transactional emails (including onboarding emails) (required).

account_first_name
string

The first name of the individual owning the domain (required).

account_last_name
string

The last name of the individual owning the domain (required).

phone_number
string

The phone number of the individual owning the domain (required).

vat_number
string

Company VAT number (optional).

registration_number
string

Company registration number (optional).

country
string

Company country code in ISO 3166-1 alpha-2

state
string

Company state code in ISO 3166-1 alpha-2

city
string
address
string
postal_code
string
primary_color
string

Domain primary color (optional)

has_scripts
boolean

Optional, when disabled, the Widget will not handle any kind of consent/cookie management and will not block any scripts.

has_dsar
boolean

Optional, when disabled, the Widget will not allow any Data Subject Request creation

has_docs
boolean

Optional, when disabled, the Widget will not display any legal documents

has_accessibility
boolean

Optional, when disabled, the Widget will not have any accessibility functionality enabled.

display_dpo
boolean

Optional, when disabled, the DPO information in the widget will be hidden

display_company
boolean

Optional, when disabled, the Company tab in the widget will be hidden

default_notice_type
any
Enum: "CLASSIC" "DISCRETE" "FOOTER" "TOP"

Optional default widget notification type to be used by the Widget

send_intro
boolean

Determine if the system will send the customized email or not (optional).

action
any
Enum: "SCAN" "SCAN_INVITE" "CREATE_SILENT"

Specify the action the system will take for that domain. SCAN will perform a scan on the domain and send a scan report to the account owner. SCAN_INVITE will scan the domain and start the onboarding process. CREATE_SILENT will just create the company account and its associated domain. This can be used at a later stage to invite the account owner to onboard.

Responses

Request samples

Content type
application/json
{
  • "domain": "mycompany.com",
  • "company_name": "My Company Inc",
  • "company_trade_name": "My Company",
  • "company_id_number": "333000",
  • "account_email": "john@mycompany.com",
  • "account_first_name": "John",
  • "account_last_name": "Doe",
  • "phone_number": "+1 980 446 8535",
  • "vat_number": "GB 493049",
  • "registration_number": "49434993",
  • "country": "US",
  • "state": "FL",
  • "city": "Stuart",
  • "address": "950 S Kanner Hwy Apt 401",
  • "postal_code": "34994",
  • "primary_color": "#c3c3c3",
  • "has_scripts": true,
  • "has_dsar": true,
  • "has_docs": true,
  • "has_accessibility": true,
  • "display_dpo": true,
  • "display_company": true,
  • "default_notice_type": "CLASSIC",
  • "send_intro": true,
  • "action": "SCAN"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Fetch all partner domains

Fetch all partner domains. Each domain object contains basic domain information. To obtain domain details please refer to /portal/domain/{domainId} endpoint.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "result": [
    ]
}

Fetch partner domain details

Fetch partner domain details

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}

Update information about a domain

Update information about a domain

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain

Request Body schema: application/json
company_name
string

The company legal name (optional).

company_trade_name
string

The company trade name if different from the company (legal) name (optional).

company_id_number
string

Internal company ID number (optional).

country
string

Company country code in ISO 3166-1 alpha-2 (optional).

state
string

Company state code in ISO 3166-1 alpha-2 (optional).

city
string

Company city name (optional).

address
string

Company address (optional).

postal_code
string

Company postal code (optional)

primary_color
string

Domain primary color (optional)

has_scripts
boolean

Optional, when disabled, the Widget will not handle any kind of consent/cookie management and will not block any scripts.

has_dsar
boolean

Optional, when disabled, the Widget will not allow any Data Subject Request creation

has_docs
boolean

Optional, when disabled, the Widget will not display any legal documents

has_accessibility
boolean

Optional, when disabled, the Widget will not have any accessibility functionality enabled.

display_dpo
boolean

Optional, when disabled, the DPO information in the widget will be hidden

display_company
boolean

Optional, when disabled, the Company tab in the widget will be hidden

default_notice_type
any
Enum: "CLASSIC" "DISCRETE" "FOOTER" "TOP"

Optional default widget notification type to be used by the Widget

Responses

Request samples

Content type
application/json
{
  • "company_name": "My Company Inc",
  • "company_trade_name": "My Company",
  • "company_id_number": "333000",
  • "country": "US",
  • "state": "FL",
  • "city": "Stuart",
  • "address": "950 S Kanner Hwy Apt 401",
  • "postal_code": "34994",
  • "primary_color": "#c3c3c3",
  • "has_scripts": true,
  • "has_dsar": true,
  • "has_docs": true,
  • "has_accessibility": true,
  • "display_dpo": true,
  • "display_company": true,
  • "default_notice_type": "CLASSIC"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

Deactivate a domain

Deactivate a domain. Deactivate an ACTIVE domain. The domain state will change to INACTIVE. The domain will be excluded from the list of partner domains.

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain to deactivate

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Activate a domain

Activate a domain. Activate an INACTIVE domain. The domain state will change to ACTIVE. The domain will be included in the list of partner domains.

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain to activate

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Send an invitation to start the onboarding process

Send an invitation to start the onboarding process for a domain. The invitation will be sent to the email address of the account owner. The domain state will change to INVITED and once we start receiving first page views the domain state will change to ACTIVE.

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain to invite

Request Body schema: application/json

Determine if the system will send the customized intro email or not.

send_invite
boolean

Responses

Request samples

Content type
application/json
{
  • "send_invite": true
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Add a subdomain to the partner account

Add a subdomain to the partner account

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain to add the subdomain to

Request Body schema: application/json

Subdomain object with of the subdomain to be added.

subdomain
string

Responses

Request samples

Content type
application/json
{
  • "subdomain": "shop"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Delete a subdomain from the partner account

Delete a subdomain from the partner account

Authorizations:
bearerAuth
path Parameters
domainId
required
string

Id of the domain to delete the subdomain from

Request Body schema: application/json

Subdomain object with of the subdomain to be deleted.

subdomain
string

Responses

Request samples

Content type
application/json
{
  • "subdomain": "shop"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Add a new merchant to your partner account

Add a new merchant to your partner account

Authorizations:
bearerAuth
Request Body schema: application/json

Merchant object with of the merchant to be added.

merchant_id
string [ 1 .. 32 ] characters

The external merchant ID from the partner's system

company_name
string

An optional company name attached to this merchant

description
string

An optional description of the merchant

created_at
string <date-time>
partner_id
string

Responses

Request samples

Content type
application/json
{
  • "merchant_id": "1234567890a",
  • "company_name": "Acme Inc",
  • "description": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "partner_id": "string"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Fetch all partner merchants

Fetch all partner merchants

Authorizations:
bearerAuth
query Parameters
page
integer
Default: 1

Current page in pagination

limit
integer
Default: 10

Limit the number of results

search
string

Search text to filter

is_registered
boolean

Include only registered merchants

merchant_id
string

Filter by external merchant id

created_at_start
string <date-time>

Retrieve merchants created after the specified date

created_at_end
string <date-time>

Retrieve merchants created before the specified date

Responses

Response samples

Content type
application/json
{
  • "result": [
    ],
  • "meta": {
    }
}

Fetch information about individual merchants

Fetch information about individual merchants

Authorizations:
bearerAuth
path Parameters
merchantId
required
string

Id of the merchant entity to be updated

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "merchant_id": "string",
  • "company_name": "string",
  • "description": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "partner_id": "string",
  • "domain": {
    }
}

Update a merchant's information

Update a merchant's information

Authorizations:
bearerAuth
path Parameters
merchantId
required
string

Id of the merchant entity to be updated

Request Body schema: application/json

Merchant information that needs to be updated

merchant_id
string [ 1, .. 32 ] characters

The new external merchant id to use, optional

company_name
string <= 100 characters

The company name to set, optional

description
string <= 500 characters

Description of this merchant, optional

Request samples

Content type
application/json
{
  • "merchant_id": "string",
  • "company_name": "string",
  • "description": "string"
}

Delete a merchant from the partner account

Delete a merchant from the partner account

Authorizations:
bearerAuth
path Parameters
merchantId
required
string

Id of the merchant entity to be deleted

Responses

Response samples

Content type
application/json
{
  • "result": {
    }
}