Quickr API (LATEST)

API Integration Support: integration@dintero.com License: UNLICENSED

Changelog

2023-10-02

new Add support for specifying language when creating a case.

2023-10-01

2023-09-12

new Add support for exporting case events. Only supports exporting to a json file.

2023-09-11

new Add support for notifications on case details

2023-09-08

2023-09-08

new Add percent_voting_shares and percent_voting_shares_range fields to ultimate_beneficial_ownership prefill. This field will contain the percentage ownership shares of the ultimate beneficial owner.

2023-09-08

new Add support for filtering cases on case ID with the search parameter.

2023-09-07

new Add support for attachments in unsigned contracts. This field will contain the contract to be signed by the signatory.

2023-09-06

new Add branding images and company details of an account to UserAccount object.

2023-09-05

new Add unique flags for check summary when retrieving cases.

2023-09-04

new Add support for adding commitment data to subscription in Account object.

2023-09-03

new Add support for settings field in Account object. Currently only inspect_mode is supported.

2023-09-02

new Add support for filtering cases by new query parameters: country, sort_by, and sort_order. search has also been extended to support search on organization number and name of a company

2023-08-31

new Include partner.type in Account. This field contains the information about the partner type of the account.

new Include name in Account. This field will contain the name of the account. Fallback to company.name if not set. This field can be set when creating and updating a account.

2023-08-30

new Include form_submitter in Case. This field will contain the information about the user who submitted the form.

2023-08-29

new Add support for filtering accounts by new query parameters: created_by, type, company.country and status

new Add support for specifying type and status when creating new and updating account

2023-07-29

new Add support for subscription field in Account object. This field will contain the information about the subscription enabled on the account and products available for reseller accounts.

2023-06-22

new Add support for ANY_TWO_BOARD_MEMBERS as a signatory signing option.

2023-06-21

new Add support for signed_result field in signed contract object. This field will contain the information about the signee from the signing provider. Currently 'BankID' is the only supported signing provider.

2023-06-19

breaking background_color_email in branding is removed in favor of background_color_header.

2023-06-15

new Add support for COMPANY_TYPE_NOT_SUPPORTED flag in ultimate_beneficial_ownership and credit_score checks.

new Add support for pdf_logo in branding which will be used in all generated contracts.

breaking The generated contracts will no longer use the logo field in branding and will use pdf_logo instead.

new Extend notes section types to include credit_score, case_approved and case_declined.

2023-06-14

new Add declared_at field to the cases for both case lists and case details.

2023-06-07

new Add support for additional_details in sections for swedish_company, also adds industry_sectors for swedish companies.

2023-06-06

new Add support for SanctionedOrganizationRecord in sanction checks which returns a list of sanctioned organizations that match the provided information.

2023-06-01

new Add support for current_information field in case details.

2023-05-25

new Add support for details fields in case checks to provide additional information to the check flags. Currently we only support DATA_MISMATCH flag.

Documentation

The API is built around RESTful architecture utilizing predictable and resource-oriented URLs. Request bodies and responses are JSON-encoded. Standard HTTP response codes, authentication methods, and verbs are used to maintain consistency and ease of use. Authenticating an API request requires an API key provided by our dashboard, allowing the user to choose between test mode or live mode.

Authentication

Authentication is done by using a Bearer token, which can be requested by using the API key provided by your dashboard. The token is valid for 1 hour and can be refreshed by requesting a new token.

To request a token, simply send a request to /auth/token with the Authorization header set to Bearer their-api-key. In response, a unique access token will be provided which remains active for one hour.

Note: Please prefix all API requests with v1/accounts/{aid}.

Example request: Requesting access token with API key

POST /auth/token HTTP/1.1
Host: example.com
Authorization: Bearer YOUR_API_KEY_FROM_DASHBOARD

Example response:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 123

{
  "access_token": "your_access_token_here",
  "token_type": "Bearer",
  "expires_in": 3600
}

All subsequent requests to the API must include the Bearer access token in the Authorization header.

Example request using the returned access token to list cases:

GET /cases HTTP/1.1
Host: example.com
Authorization: Bearer {access_token}

Core concepts

The API flow is centered around three core components:

  • Cases, which represent a unit of work within the system and contain relevant documents and information required for compliance.
  • Contracts, which are optional and serve as a formal agreement between customers and their clients or counterparts to comply with KYC and AML requirements.
  • Checks, which are the various procedures performed to verify the identity and authenticity of individuals or entities involved with a particular case.

Cases

A case is a unit of work for the Quickr API. It contains all the information required to perform a compliance check together with any documents, information, checks, and check results associated with the case.

Creating a case

A case can be created by sending a POST request to the /cases endpoint. The response will contain a unique identifier for the case, which can be used to retrieve the case at a later time.

  • prefills : Prefills in Quickr enable you to pre-populate information into the declaration form to simplify and speed up the declaration process. You can use this feature to provide information you already have about the entity or include custom information. By providing the company prefill's organization_number and country fields, Quickr can automatically fill out the related company, signatory, and ultimate_beneficial_owner prefills on your behalf.

Example request:

{
"publisher": {
  "name": "Your company name",
  "support_email": "support@company.com"
},
"prefills": [
  {
    "type": "company",
    "data": [
      {
        "organization_number": "919656395",
        "country": "NO"
      }
    ]
  }
],
"sections": [
  {
    "type": "company"
  },
  {
    "type": "ultimate_beneficial_ownership"
  },
  {
    "type": "signatory"
  }
]
}
  • sections : These are the sections that will be shown in the declaration form. You can choose which sections you want to show in the form.

  • checks : These are the checks that will be performed on the case. Note that some checks may require specific information to be provided in the case. For example signatory check requires signatory section to be present in the case.

    Available checks:

    • company : Checks a company's information provided in the declarations against the company's in the prefills section and the company status from information in the public register as well as against sanction lists.

    • signatory : Checks a signatory's information provided in the declarations against the signatory's information in the prefills section, and the received after the signatory has signed a contract.

    • individual : Checks an individual information provided in the declarations against the individual's information received after the individual has verified their identity

    • ultimate_beneficial_ownership : Checks a ultimate beneficial owner's information provided in the declarations against the ultimate beneficial owner's information in the prefills section,

    • sanctions : Checks the company , signatory and ultimate_beneficial_ownership information against the sanction and criminal lists.

    • politically_exposed_person : Checks the company , signatory and ultimate_beneficial_ownership information against the politically exposed persons lists.

    • bank_account : Requires bank_account section to be present in the case. Checks the validity of the bank account and if the entity is the owner of the bank account.

    • credit_score : Requires company section to be present in the case. Checks the credit score of the company. Also populates the discoveries field with the credit score information.

    • agreement : Requires agreement section to be present in the case. Checks if the user accepted custom agreements passed in the agreements prefill.

    Note: If a case is created with only credit_score check and prefills, the case will automatically be completed with the credit_score check result.

Case lifecycle

A case can follow one of the following life cycles:

Case with signing requirement
  sequenceDiagram
      autonumber
      participant User
      participant QuickrApi
      User->>QuickrApi: POST /cases/
      QuickrApi-->>User: Return case with `declaration_url`
      alt intent "declarations_update"
      User->>QuickrApi: PUT /cases/:cid/declarations/:did
      QuickrApi-->>User: Update result
      else intent "declarations_finished"
      User->>QuickrApi: PUT /cases/:cid/declarations/:did
      QuickrApi-->>User: Update result
      end
      User->>QuickrApi: GET cases/:cid/contracts/:contract_id/signatories/:sid/sign
      QuickrApi->>QuickrApi: Process checks asynchronously
      QuickrApi-->>User: Results available upon query
    
Case without signing requirement
  sequenceDiagram
      autonumber
      participant User
      participant QuickrApi
      User->>QuickrApi: POST /cases/
      QuickrApi-->>User: Return case with `declaration_url`
      alt intent "declarations_update"
      User->>QuickrApi: PUT /cases/:cid/declarations/:did
      QuickrApi-->>User: Update result
      else intent "declarations_finished"
      User->>QuickrApi: PUT /cases/:cid/declarations/:did
      QuickrApi-->>User: Update result
      end
      QuickrApi->>QuickrApi: Process checks asynchronously
      QuickrApi-->>User: Results available upon query
    
Case with credit_score check only
  sequenceDiagram
      autonumber
      participant User
      participant QuickrApi
      User->>QuickrApi: POST /cases/
      QuickrApi-->>User: Return case
      QuickrApi->>QuickrApi: Process checks asynchronously
      QuickrApi-->>User: Results available upon query
    

Contracts

Contracts are agreements between a customer and their customer, detailing the terms and conditions of their business relationship.

Checks

Checks are the various procedures performed to verify the identity and authenticity of individuals or entities involved, and(or) other custom information with a particular case. Checks are performed automatically once a case declaration is completed and the case does not require signing, after the case has completed the signing process, or immediately after the case is created if the case only requires a credit_score check.

Check scheduling

Quickr supports scheduling of checks for Ongoing Due Diligence (ODD) and Know Your Customer (KYC) processes. Checks can be scheduled to run at a specific repeating predefined interval. Currently, the following intervals are supported: R-1/P1D(Daily), R-1/P1M(Monthly) and R-1/P1Y(Yearly) intervals. The initial check intervals are determined from when the check initially runs see above. The interval is set per check type by using the schedule field in the check object. The schedule field is a string that contains the interval in ISO 8601 format.

For example adding a daily PEP check to our previous example the request would look like this:

POST /cases
Authorization: Bearer <token>
{
    "publisher": {
        "name": "Your company name",
        "support_email": "support@company.com"
    },
    "prefills": [
        {
            "type": "company",
            "data": [
                {
                    "organization_number": "919656395",
                    "country": "NO"
                }
            ]
        }
    ],
    "sections": [
        {
            "type": "company"
        },
        {
            "type": "ultimate_beneficial_ownership"
        },
        {
            "type": "signatory"
        }
    ],
    "checks": [
        {
            "type": "politically_exposed_person",
            "options": {
                "schedule": "R-1/P1D"
            }
        }
    ]
}

For all checks after the initial check has run, Quickr will also get updates on the case from public registries and other third party sources to ensure that the case is up to date, before running the check. You will receive a notification(s) when the check has been completed which will contain the results of the check and updates to the case if any. Notifications are sent via webhook if your case has a callback_url set. The notification will be sent when the checks are completed and contains changes(if any) from the check results since the last check. More information on this can be found in the Case Events section.

Adding a callback url to our previous example the request would look like this:

POST /cases
Authorization: Bearer <token>
{
    "publisher": {
        "name": "Your company name",
        "support_email": "support@company.com"
    },
    "prefills": [
        {
            "type": "company",
            "data": [
                {
                    "organization_number": "919656395",
                    "country": "NO"
                }
            ]
        }
    ],
    "sections": [
        {
            "type": "company"
        },
        {
            "type": "ultimate_beneficial_ownership"
        },
        {
            "type": "signatory"
        }
    ],
    "checks": [
        {
            "type": "politically_exposed_person",
            "options": {
                "schedule": "R-1/P1D"
            }
        }
    ],
    "urls": {
        "callback_url": "https://yourdomain.com/callback"
    }
}

Check results

Check results can be found in the checks field of the case by querying the cases/:cid endpoint. The checks field contains an array of check results one for each check performed on the case. The flags field contains an array of flags that were found during the check. The discoveries field contains an array of discoveries that were found during the check.

Available flags codes:

Some common flag codes are:

  • DECLARATION_MISSING : Which indicates that the declaration is missing.
  • PREFILL_MISSING : Which indicates that the required prefill is missing.
  • DATA_MISSING: Which indicates that required data is missing.
  • DATA_MISMATCH: Which indicates that the data provided in the declaration does not match the data in the prefill.
  • DATA_MANUAL_UPDATE: Which indicates the data provided in the declaration has been manually updated from the prefill.
  • DISCOVERY_MISSING: Which means Quickr was unable to find entity/persons information in the public register/data source.

Some check specific flag codes are:

  • company : A company check may contain the following flag types:
    • COMPANY_INACTIVE : Which indicates that the company is inactive from the public register.
    • COMPANY_IN_SANCTIONS : Which indicates that the company is in the sanction list.
  • signatory : A signatory check may contain the following flag types:
    • CONTRACT_NOT_SIGNED : This means that the contract has not completed the signing process.
    • SIGNATORY_MISMATCH : This means that the signatory information provided in the declaration does not match the signatory information from the signed contract information.
  • ultimate_beneficial_ownership : A ultimate beneficial ownership check may contain the following flag types:
    • PERSON_IN_SANCTIONS : Which indicates that the person is in the sanction list.
    • PERSON_IN_PEP : Which indicates that the person is/is affiliated with a politically exposed person.
    • COMPANY_TYPE_NOT_SUPPORTED : Which indicates that Quickr does not support this check for the company type. In most cases this means that the company type is a sole proprietorship.
  • politically_exposed_person : A politically exposed person check may contain the following flag types:
    • PERSON_IN_PEP : Which indicates that the person is/is affiliated with a politically exposed person.
  • sanctions : A sanctions check may contain the following flag types:
    • COMPANY_IN_SANCTIONS : Which indicates that the company is in the sanction list.
    • PERSON_IN_SANCTIONS : Which indicates that the person is in the sanction list.
  • bank_account : A bank account check may contain the following flag types:
    • BANK_ACCOUNT_NUMBER_INVALID : Which indicates that the bank account is invalid/is not owned by the entity.
    • BANK_ACCOUNT_NUMBER_UNSUPPORTED : Which indicates that Quickr cannot verify the bank account number. Currently only Norwegian bank account numbers are supported.
  • credit_score : A credit score check may contain the following flag types:
    • COMPANY_HAS_HIGH_RISK : Which indicates that the credit score is lower than Quickr's set threshold, which is 30%.
    • COMPANY_HAS_PAYMENT_REMARKS : Which indicates that the company has some negative payment remarks.
    • COMPANY_TYPE_NOT_SUPPORTED : Which indicates that Quickr does not support this check for the company type. In most cases this means that the company type is a sole proprietorship.
  • agreement : An agreement check may contain the following flag types:
    • AGREEMENT_NOT_ACCEPTED : Which indicates that the user has not accepted the agreement.

Note: Some checks flags records may contain a records field which contains an array of records that caused the flag to be raised. For example, the sanctions check flags record may contain a records field that caused the PERSON_IN_SANCTIONS flag to be raised.

Token

The token endpoint is used to get the JWT (JSON Web Token) that must be passed in every API request in the Authorization header.

  • The access token is valid for 1 hour

Get token

scopes: ["api-key:quickr","aws.cognito.signin.user.admin"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Responses

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "Bearer",
  • "expires_in": 3600
}

Exchange token

Use this endpoint exchange access_token to a sub-account

scopes: ["admin:quickr","write:quickr","read:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Content-Type
required
string
Example: application/json

The content type must be application/json

Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Request Body schema: application/json
account_id
required
string (AccountId) = 9 characters ^[PT]Q\d{7}$

The account id

scope
Array of strings

Specify desired scope of the token issue. If the scope is unspecified, the issued token scope will match the authorization

Responses

Request samples

Content type
application/json
{
  • "account_id": "PQ1230483",
  • "scope": [
    ]
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "Bearer",
  • "expires_in": 3600
}

Accounts

As an partner you can create additional Quickr customer accounts associated with you partner account.

You must use separate Quickr accounts for customers that operate independently from one another. When you activate a new account, it is subject to Quickr's standard policies and pricing.

Create account

Create customer accounts for a partner account

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
object

Set of key-value pairs that you can attach to an object. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata

object

Subscription for the account

type
string (AccountType)
Enum: "customer" "partner" "reseller"
status
string (AccountStatus)
Enum: "ACTIVE" "INACTIVE" "PENDING"
object (Branding)

Customize the look and feel of pages and templates, such as the Quickr declaration page and email templates

object (AccountCompanyDetails)
object (AccountBillingDetails)
Array of objects (AccountContact)
object (AccountUrls)
Array of objects (AccountEmailUserData)

Users to invite access to

actions
Array of strings
Items Value: "send_invite"

The action to perform when the account is created

  • send_invite: Send invite to users
Array of objects

The account's representative acceptances to agreements and policies

Array of objects

Account managers responsible for the account

name
string

The name of the account

object (AccountSettings)

Responses

Request samples

Content type
application/json
{
  • "metadata": {
    },
  • "subscription": {
    },
  • "type": "customer",
  • "status": "ACTIVE",
  • "branding": {
    },
  • "company": {
    },
  • "billing": {
    },
  • "contacts": [
    ],
  • "urls": {},
  • "invites": [],
  • "actions": [
    ],
  • "acceptances": [],
  • "managers": [
    ],
  • "name": "string",
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "object": "account",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "metadata": {
    },
  • "subscription": {
    },
  • "type": "customer",
  • "status": "ACTIVE",
  • "branding": {
    },
  • "company": {
    },
  • "billing": {
    },
  • "contacts": [
    ],
  • "urls": {},
  • "invites": [],
  • "actions": [
    ],
  • "acceptances": [],
  • "managers": [
    ],
  • "name": "string",
  • "settings": {
    },
  • "id": "Q1230483",
  • "account_id": "PQ1230483",
  • "partner": {
    }
}

Get accounts

Get the accounts for an partner account

scopes: ["read:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

query Parameters
starting_after
string

A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects ending with id 1234, your subsequent call can include starting_after=1234 in order to fetch the next page of the list

limit
integer [ 1 .. 100 ]
Default: 10

A limit on the number of objects to be returned

search
string

Search for accounts by filter on company name, organization number and account id

status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "PENDING"

Filter data by status property

type
Array of strings
Items Enum: "customer" "partner" "reseller"

Filter data by type property

country
Array of strings
Items Enum: "NO" "SE"

Filter data by country property

created_by
Array of strings

Filter data by created_by property

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update account

Update customer accounts or partner account

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
object

Set of key-value pairs that you can attach to an object. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata

object (Branding)

Customize the look and feel of pages and templates, such as the Quickr declaration page and email templates

object (AccountCompanyDetails)
object (AccountBillingDetails)
Array of objects (AccountContact)
object (AccountUrls)
Array of objects

Account managers responsible for the account

name
string

The name of the account

Responses

Request samples

Content type
application/json
{
  • "metadata": {
    },
  • "branding": {
    },
  • "company": {
    },
  • "billing": {
    },
  • "contacts": [
    ],
  • "urls": {},
  • "managers": [
    ],
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "object": "account",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "metadata": {
    },
  • "subscription": {
    },
  • "type": "customer",
  • "status": "ACTIVE",
  • "branding": {
    },
  • "company": {
    },
  • "billing": {
    },
  • "contacts": [
    ],
  • "urls": {},
  • "invites": [],
  • "actions": [
    ],
  • "acceptances": [],
  • "managers": [
    ],
  • "name": "string",
  • "settings": {
    },
  • "id": "Q1230483",
  • "account_id": "PQ1230483",
  • "partner": {
    }
}

Administrate the account

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
object

Subscription for the account

type
string (AccountType)
Enum: "customer" "partner" "reseller"
status
string (AccountStatus)
Enum: "ACTIVE" "INACTIVE" "PENDING"

Responses

Request samples

Content type
application/json
{
  • "subscription": {
    },
  • "type": "customer",
  • "status": "ACTIVE"
}

Response samples

Content type
application/json
{
  • "object": "account",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "metadata": {
    },
  • "subscription": {
    },
  • "type": "customer",
  • "status": "ACTIVE",
  • "branding": {
    },
  • "company": {
    },
  • "billing": {
    },
  • "contacts": [
    ],
  • "urls": {},
  • "invites": [],
  • "actions": [
    ],
  • "acceptances": [],
  • "managers": [
    ],
  • "name": "string",
  • "settings": {
    },
  • "id": "Q1230483",
  • "account_id": "PQ1230483",
  • "partner": {
    }
}

Users

You can invite members of you team to access your Quickr account.

Get the authenticated user

Retrieve details about the logged-in user

scopes: ["aws.cognito.signin.user.admin"]
Authorizations:
JWT
header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "object": "userinfo",
  • "email": "user@example.com",
  • "accounts": [
    ]
}

Create user

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
type
required
string
scope
required
Array of strings
name
string

Responses

Request samples

Content type
application/json
Example
{
  • "name": "my-api-key",
  • "type": "api_key",
  • "scope": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "name": "my-api-key",
  • "type": "api_key",
  • "scope": [
    ],
  • "id": "api.WDVBZEX",
  • "object": "user",
  • "account_id": "PQ1230483",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "api_key": "string"
}

Get users

scopes: ["read:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

query Parameters
starting_after
string

A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects ending with id 1234, your subsequent call can include starting_after=1234 in order to fetch the next page of the list

limit
integer [ 1 .. 100 ]
Default: 10

A limit on the number of objects to be returned

type
Array of strings

Type of the user object to return. If not specified, all types of users will be returned. If specified, the value must be one of the following: email or api_key.

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update user data

scopes: ["write:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

uid
required
string <uuid>
Example: email.WDVBZEX

An id that uniquely identifies the user of an account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
name
string
scope
Array of strings

Updating the scope requires admin:quickr scope

phone_number
string <E.123> (PhoneNumber)

Phone number, ITU/E.123 format with international prefix (+PPNNNNNNNNN...)

object (AvatarInput)

An avatar image for the resource

Responses

Request samples

Content type
application/json
Example
{
  • "name": "John Doe",
  • "scope": [
    ],
  • "phone_number": "string",
  • "avatar": {
    },
  • "type": "email"
}

Response samples

Content type
application/json
Example
{
  • "name": "my-api-key",
  • "type": "api_key",
  • "scope": [
    ],
  • "id": "api.WDVBZEX",
  • "object": "user",
  • "account_id": "PQ1230483",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "api_key": "string"
}

Delete user

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

uid
required
string <uuid>
Example: email.WDVBZEX

An id that uniquely identifies the user of an account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
Example
{
  • "name": "my-api-key",
  • "type": "api_key",
  • "scope": [
    ],
  • "id": "api.WDVBZEX",
  • "object": "user",
  • "account_id": "PQ1230483",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "last_seen_at": "2019-08-24T14:15:22Z",
  • "api_key": "string"
}

Templates

Case template management

Create template

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
type
required
string
Value: "case"
name
required
string
required
object

Case template configuration

description
string
object

Set of key-value pairs that you can attach to an object. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata

Responses

Request samples

Content type
application/json
{
  • "type": "case",
  • "name": "string",
  • "description": "string",
  • "case": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "object": "template",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "id": "PQ1230483.template.493019345",
  • "account_id": "PQ1230483",
  • "type": "case",
  • "name": "string",
  • "description": "string",
  • "case": {
    },
  • "metadata": {
    }
}

Get templates

scopes: ["read:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

query Parameters
starting_after
string

A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects ending with id 1234, your subsequent call can include starting_after=1234 in order to fetch the next page of the list

limit
integer [ 1 .. 100 ]
Default: 10

A limit on the number of objects to be returned

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get template

scopes: ["read:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

tid
required
string^[PT]Q\d{7}\.template.*$
Example: PQ1230483.template.493019345

An id that uniquely identifies the template

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "object": "template",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "id": "PQ1230483.template.493019345",
  • "account_id": "PQ1230483",
  • "type": "case",
  • "name": "string",
  • "description": "string",
  • "case": {
    },
  • "metadata": {
    }
}

Update template

Updating a template will not update existing cases created by the template

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

tid
required
string^[PT]Q\d{7}\.template.*$
Example: PQ1230483.template.493019345

An id that uniquely identifies the template

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
type
required
string
Value: "case"
name
required
string
required
object

Case template configuration

description
string
object

Set of key-value pairs that you can attach to an object. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata

Responses

Request samples

Content type
application/json
{
  • "type": "case",
  • "name": "string",
  • "description": "string",
  • "case": {
    },
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "object": "template",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "id": "PQ1230483.template.493019345",
  • "account_id": "PQ1230483",
  • "type": "case",
  • "name": "string",
  • "description": "string",
  • "case": {
    },
  • "metadata": {
    }
}

Delete template

Deleting a template will not delete cases create by the template

scopes: ["admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

tid
required
string^[PT]Q\d{7}\.template.*$
Example: PQ1230483.template.493019345

An id that uniquely identifies the template

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Responses

Response samples

Content type
application/json
{
  • "object": "template",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "id": "PQ1230483.template.493019345",
  • "account_id": "PQ1230483",
  • "type": "case",
  • "name": "string",
  • "description": "string",
  • "case": {
    },
  • "metadata": {
    }
}

Cases

Seamless and automatic Customer Due Diligence (CDD) checks and Ongoing Die Diligence (ODD) checks.

Create case

scopes: ["write:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
object

Template configuration

object (PublisherCreateData)
reference
string (CaseReference)

Reference specified by the creator to identify the case in external systems

Array of objects (Prefill)

Prefills provided by case creator to prefill the declaration form

Array of objects (Section) non-empty

Sections to include in the declaration form

Array of objects non-empty

Checks to perform

object (CaseUrls)

The URLs object containing the urls used for this case

object

Set of key-value pairs that you can attach to an object. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata

Responses

Request samples

Content type
application/json
{
  • "template": {
    },
  • "publisher": {
    },
  • "reference": "REF-CASE-321",
  • "prefills": [
    ],
  • "sections": [
    ],
  • "checks": [
    ],
  • "urls": {},
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "object": "case",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "template": {
    },
  • "publisher": {
    },
  • "reference": "REF-CASE-321",
  • "prefills": [
    ],
  • "sections": [
    ],
  • "checks": [
    ],
  • "urls": {},
  • "metadata": {
    },
  • "id": "PQ1230485.493019345",
  • "account_id": "PQ1230483",
  • "status": "FORM_NOT_STARTED",
  • "assignees": [
    ],
  • "risk_level": "LOW",
  • "agent_determined_risk_level": "LOW",
  • "agent_determined_status": "ACTIVE",
  • "status_updated_at": "2019-08-24T14:15:22Z",
  • "discoveries": [
    ],
  • "declared_at": "2019-08-24T14:15:22Z",
  • "form_submitter": {
    }
}

Get cases

scopes: ["read:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

query Parameters
starting_after
string

A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects ending with id 1234, your subsequent call can include starting_after=1234 in order to fetch the next page of the list

limit
integer [ 1 .. 100 ]
Default: 10

A limit on the number of objects to be returned

search
string

A query to filter cases by case reference, case ID, company name or organization number

status
Array of strings

A query to filter cases by status. Available values include FORM_NOT_STARTED,FORM_IN_PROGRESS,PROCESSING_DETAILS,PROCESSING_DETAILS_FAILED,WAITING_FOR_SIGNATURES,READY_FOR_REVIEW,REVIEW_IN_PROGRESS,WAITING_FOR_DETAILS,ODD_WARNING,ACTIVE,DECLINED,SUSPENDED,ARCHIVED

agent_determined_risk_level
Array of strings

A query to filter cases by risk level. Available values include LOW, MEDIUM, HIGH

assignee
Array of strings
Example: assignee=email.WDVBZEX

A query to filter cases by the assignee id.

failed_checks
Array of strings

A query to filter cases by failed checks. Available values include company,bank_account,ultimate_beneficial_ownership,politically_exposed_person,sanction,signatory,agreement,credit_score

country
Array of strings
Items Enum: "NO" "SE"

Filter data by country property

sort_by
string
Default: "status_updated_at"
Enum: "status_updated_at" "created_at"

Sort data by given field

sort_order
string
Default: "DESC"
Enum: "DESC" "ASC"

Sort data by given order

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get case

scopes: ["read:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

cid
required
string = 19 characters ^[PT]Q\d{7}\.\S{9}$
Example: PQ1234567.ABCDEFGHI

An id that uniquely identifies the case

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Responses

Response samples

Content type
application/json
{
  • "prefills": [
    ],
  • "sections": [
    ],
  • "metadata": {
    },
  • "object": "case",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "id": "PQ1230485.493019345",
  • "template": {
    },
  • "account_id": "PQ1230483",
  • "urls": {},
  • "publisher": {
    },
  • "status": "FORM_NOT_STARTED",
  • "assignees": [
    ],
  • "risk_level": "LOW",
  • "agent_determined_risk_level": "LOW",
  • "agent_determined_status": "ACTIVE",
  • "status_updated_at": "2019-08-24T14:15:22Z",
  • "discoveries": [
    ],
  • "declared_at": "2019-08-24T14:15:22Z",
  • "contracts": [
    ],
  • "declarations": [
    ],
  • "attachments": [
    ],
  • "checks": [
    ],
  • "current_information": [
    ],
  • "notifications": [
    ]
}

Set case

Update case before declaration

scopes: ["write:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

cid
required
string = 19 characters ^[PT]Q\d{7}\.\S{9}$
Example: PQ1234567.ABCDEFGHI

An id that uniquely identifies the case

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Request Body schema: application/json
object

Template configuration

object (PublisherCreateData)
reference
string (CaseReference)

Reference specified by the creator to identify the case in external systems

Array of objects (Prefill)

Prefills provided by case creator to prefill the declaration form

Array of objects (Section) non-empty

Sections to include in the declaration form

Array of objects non-empty

Checks to perform

object (CaseUrls)

The URLs object containing the urls used for this case

object

Set of key-value pairs that you can attach to an object. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata

Responses

Request samples

Content type
application/json
{
  • "template": {
    },
  • "publisher": {
    },
  • "reference": "REF-CASE-321",
  • "prefills": [
    ],
  • "sections": [
    ],
  • "checks": [
    ],
  • "urls": {},
  • "metadata": {
    }
}

Response samples

Content type
application/json
{
  • "object": "case",
  • "created_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "updated_by": "473643b2-f1e4-4b23-81a7-af20b922f509",
  • "template": {
    },
  • "publisher": {
    },
  • "reference": "REF-CASE-321",
  • "prefills": [
    ],
  • "sections": [
    ],
  • "checks": [
    ],
  • "urls": {},
  • "metadata": {
    },
  • "id": "PQ1230485.493019345",
  • "account_id": "PQ1230483",
  • "status": "FORM_NOT_STARTED",
  • "assignees": [
    ],
  • "risk_level": "LOW",
  • "agent_determined_risk_level": "LOW",
  • "agent_determined_status": "ACTIVE",
  • "status_updated_at": "2019-08-24T14:15:22Z",
  • "discoveries": [
    ],
  • "declared_at": "2019-08-24T14:15:22Z",
  • "form_submitter": {
    }
}

Delete case

scopes: ["write:quickr","admin:quickr"]
Authorizations:
JWT
path Parameters
aid
required
string = 9 characters ^[PT]Q\d{7}$
Example: PQ1230482

An id that uniquely identifies the account

cid
required
string = 19 characters ^[PT]Q\d{7}\.\S{9}$
Example: PQ1234567.ABCDEFGHI

An id that uniquely identifies the case

header Parameters
Authorization
required
string
Example: Bearer eyJhbGciOiJIUzI1...

The access token is a base64-encoded string that is required for all API calls.

Content-Type
required
string
Example: application/json

The content type must be application/json

Responses

Response samples

Content type
application/json
{
  • "prefills": [