Contents

GET /kyc-info/$ACCESS_TOKEN#

The /kyc-info/$ACCESS_TOKEN endpoints are created per client account hash (but access controlled via a unique target token) to return information about the state of the KYC or AML process to the KYC SPA. The SPA uses this information to show the user an appropriate dialog. The SPA should also long-poll this endpoint for changes to the AML/KYC state. Note that this is a client-facing endpoint, so it will only provide a restricted amount of information to the customer (as some laws may forbid us to inform particular customers about their true status). The endpoint will typically inform the SPA about possible choices to proceed, such as directly uploading files, contacting AML staff, or proceeding with a particular KYC process at an external provider (such as Challenger). If the user chooses to initate a KYC process at an external provider, the SPA must request the respective process to be set-up by the exchange via the /kyc-start/ endpoint.

This endpoint was introduced in protocol v20.

Request:

If-None-Match:

The client MAY provide an If-None-Match header with an ETag.

Query Parameters:
  • timeout_ms=MILLISECONDSOptional. If specified, the exchange will wait up to MILLISECONDS for a change to a more recent legitimization measure before returning a 304 Not Modified status.

Response:

Etag: Will be set to the serial ID of the measure. Used for long-polling (only for 200 OK responses).

200 OK:

The body is a KycProcessClientInformation.

202 Accepted:

The exchange is currently processing the KYC status. The request should be repeated later again.

204 No Content:

There are no open KYC requirements or possible voluntary checks the client might perform.

304 Not Modified:

The KYC requirements did not change.

Details:

interface KycProcessClientInformation {

  // Array of requirements.
  requirements: KycRequirementInformation[];

  // True if the client is expected to eventually satisfy all requirements.
  // Default (if missing) is false.
  is_and_combinator?: boolean

  // List of available voluntary checks the client could undertake.
  // @since protocol **vATTEST**.
  voluntary_measures?: KycRequirementInformation[];
}
interface KycRequirementInformation {

  // Which form should be used? Common values include "INFO"
  // (to just show the descriptions but allow no action),
  // "LINK" (to enable the user to obtain a link via
  // /kyc-start/) or any build-in form name supported
  // by the SPA.
  form: string;

  // Object with arbitrary additional context, completely depends on
  // the specific form.
  context?: Object;

  // English description of the requirement.
  description: string;

  // Map from IETF BCP 47 language tags to localized
  // description texts.
  description_i18n ?: { [lang_tag: string]: string };

  // ID of the requirement, useful to construct the
  // /kyc-upload/$ID or /kyc-start/$ID endpoint URLs.
  // Present if and only if "form" is not "INFO".  The
  // $ID value may itself contain / or ? and
  // basically encode any URL path (and optional arguments).
  id?: string;

}