The KYC Document object

The KYC Document Object is a container to store document pages in it. There is one KYC Document Object for one Type of document

The process to send a KYC document is divided into 3 parts.

Step 1 : Creation of a KYC Document

Step 2: Creation of KYC Pages within the document. A document can have several pages.

Step 3: Submission of the KYC Document. You will have to edit the object Document and set the Status field to "VALIDATION_ASKED" (instead of "CREATED")

The documents will be validated by our compliance team.

Note that you are not allowed to store KYC documents on your side unless you have permission from the approriate authorities in your country

Parameters

UserId
string

string:

Maximum length is 255 characters

The object owner's UserId

Status
DocumentStatus

DocumentStatus:

CREATED, VALIDATION_ASKED, VALIDATED, REFUSED

The Status of the Document

The status of this KYC/Dispute document

RefusedReasonMessage
string

string:

Maximum length is 255 characters

The message accompanying a refusal

RefusedReasonType
KYCDocRefusedReasonType

KYCDocRefusedReasonType:

DOCUMENT_UNREADABLE, DOCUMENT_NOT_ACCEPTED, DOCUMENT_HAS_EXPIRED, DOCUMENT_INCOMPLETE, DOCUMENT_MISSING, DOCUMENT_DO_NOT_MATCH_USER_DATA, DOCUMENT_DO_NOT_MATCH_ACCOUNT_DATA, SPECIFIC_CASE, DOCUMENT_FALSIFIED, UNDERAGE_PERSON, SPECIFIC_CASE

The type of refusal reason

The type of reason for refusal

ProcessedDate
timestamp

timestamp

The date when the document was processed by MANGOPAY

{
"UserId": "8494514",
"Status": "CREATED",
"RefusedReasonMessage": "The document was not readable :-(",
"RefusedReasonType": "DOCUMENT_UNREADABLE",
"ProcessedDate": 1501675794
}

Create a KYC Document

Note that if you are sending several infos for the same document (eg the front and back of a document), you must send one KYC document which contains several pages since each document is processed independantly

POST .../v2.01/ClientId

The ID of your client account

/users/UserId

A Mangopay user's ID

/kyc/documents/

Parameters

Type
KYCDocumentType

KYCDocumentType:

IDENTITY_PROOF, REGISTRATION_PROOF, ARTICLES_OF_ASSOCIATION, SHAREHOLDER_DECLARATION, ADDRESS_PROOF

The type of KYC Document

required

Gives the type of the KYC document

  • View
  • Code
  • Run
  • View
  • Code
  • Run
POST .../users/:UserId/kyc/documents/ HTTP/1.1
Body Parameters :
{
"Type": "IDENTITY_PROOF"
}
require_once("mangopay.php");

try {

$UserId = 8494514;

$KycDocument = new \MangoPay\KycDocument();
$KycDocument->Type = "IDENTITY_PROOF";

$Result = $Api->Users->CreateKycDocument($UserId, $KycDocument);

} catch(MangoPay\Libraries\ResponseException $e) {
// handle/log the response exception with code $e->GetCode(), message $e->GetMessage() and error(s) $e->GetErrorDetails()

} catch(MangoPay\Libraries\Exception $e) {
// handle/log the exception $e->GetMessage()

}
POST .../users//kyc/documents/ HTTP/1.1
Body Parameters :
{
"Type": ""
}

Create a KYC Page

  • Documents have to be in "CREATED" Status
  • You can create as many pages as needed

The maximum size per page is about 7Mb (or 10Mb when base64encoded). The following formats are accepted for the documents : .pdf, .jpeg, .jpg, .gif and .png. The minimum size is 1Kb.

POST .../v2.01/ClientId

The ID of your client account

/users/UserId

A Mangopay user's ID

/kyc/documents/KYCDocumentId/pages/

Parameters

File
string

string:

base64 encoded file

required

The base64 encoded file which needs to be uploaded

You need to fill in only the binary code. Do not send the first part that some converters add into the binary code which is <img src=" data:image/png;base64..." />

If you are using the SDK. Do not send an encoded file, you have to put a "raw" file and the SDK will encode it automatically.

  • View
  • Code
  • Run
  • View
  • Code
  • Run
POST .../users/:UserId/kyc/documents/:KYCDocumentId/pages/ HTTP/1.1
Body Parameters :
{
"File": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAFAAYUDASIA AhEBAxEB/8QAHAAAAAcBAQAA"
}
require_once("mangopay.php");

try {

$UserId = 8494514;
$KYCDocumentId = 12639185;

$KycPage = new \MangoPay\KycPage();
$KycPage->File = "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAFAAYUDASIA AhEBAxEB/8QAHAAAAAcBAQAA";

$Result = $Api->Users->CreateKycPageFromFile($UserId, $KYCDocumentId, $KycPage);

} catch(MangoPay\Libraries\ResponseException $e) {
// handle/log the response exception with code $e->GetCode(), message $e->GetMessage() and error(s) $e->GetErrorDetails()

} catch(MangoPay\Libraries\Exception $e) {
// handle/log the exception $e->GetMessage()

}
POST .../users//kyc/documents//pages/ HTTP/1.1
Body Parameters :
{
"File": ""
}

Submit a KYC Document

After submission, the object will be waiting to be VALIDATED.

Validation is on average completed within 24h by our legal compliance team.
If you wish to be notified in case of a change of status, you can setup hook notifications.

Remember to change Status to "VALIDATION_ASKED" to submit KYC documents.

PUT .../v2.01/ClientId

The ID of your client account

/users/UserId

A Mangopay user's ID

/kyc/documents/KYCDocumentId

Parameters

Status
DocumentStatus

DocumentStatus:

CREATED, VALIDATION_ASKED, VALIDATED, REFUSED

The Status of the Document

required

The status of this KYC/Dispute document

  • View
  • Code
    A code sample is not available
  • Run
    A demo is not available
  • View
  • Code
    A code sample is not available
  • Run
    A demo is not available
PUT .../users/:UserId/kyc/documents/:KYCDocumentId HTTP/1.1
Body Parameters :
{
"Status": "VALIDATION_ASKED"
}

View a KYC Document

GET .../v2.01/ClientId

The ID of your client account

/kyc/documents/KYCDocumentId/
  • View
  • Code
  • Run
  • View
  • Code
  • Run
GET .../kyc/documents/:KYCDocumentId/ HTTP/1.1
require_once("mangopay.php");

try {

$KYCDocumentId = 12639185;

$KycDocument = $Api->Users->GetKycDocument($KYCDocumentId);

} catch(MangoPay\Libraries\ResponseException $e) {
// handle/log the response exception with code $e->GetCode(), message $e->GetMessage() and error(s) $e->GetErrorDetails()

} catch(MangoPay\Libraries\Exception $e) {
// handle/log the exception $e->GetMessage()

}
GET .../kyc/documents// HTTP/1.1

List KYC Documents for a User

GET .../v2.01/ClientId

The ID of your client account

/users/UserId

A Mangopay user's ID

/kyc/documents/

Get parameters

Status
DocumentStatus

DocumentStatus:

CREATED, VALIDATION_ASKED, VALIDATED, REFUSED

The Status of the Document

optional

The status of this KYC/Dispute document

  • View
  • Code
    A code sample is not available
  • Run
  • View
  • Code
    A code sample is not available
  • Run
GET .../users/:UserId/kyc/documents/ HTTP/1.1
Get Parameters :
{
"Status": "CREATED, SUCCEEDED"
}
GET .../users//kyc/documents/ HTTP/1.1
Get Parameters :
{
"Status": ""
}

List all KYC Documents

GET .../v2.01/ClientId

The ID of your client account

/kyc/documents/

Get parameters

Status
DocumentStatus

DocumentStatus:

CREATED, VALIDATION_ASKED, VALIDATED, REFUSED

The Status of the Document

optional

The status of this KYC/Dispute document

Type
KYCDocumentType

KYCDocumentType:

IDENTITY_PROOF, REGISTRATION_PROOF, ARTICLES_OF_ASSOCIATION, SHAREHOLDER_DECLARATION, ADDRESS_PROOF

The type of KYC Document

optional

The Type of a given KYC Document

  • View
  • Code
    A code sample is not available
  • Run
  • View
  • Code
    A code sample is not available
  • Run
GET .../kyc/documents/ HTTP/1.1
Get Parameters :
{
"Status": "CREATED, SUCCEEDED",
"Type": "IDENTITY_PROOF,ADDRESS_PROOF"
}
GET .../kyc/documents/ HTTP/1.1
Get Parameters :
{
"Status": "",
"Type": ""
}
Live chat
No agent is free at the moment please send us a request through our contact form