KYB
A KYB application collects what Depa needs to verify a business. Creating one also creates the company's identification and account.
An application has four sections:
nature_of_business: legal identity, registration, address and activity.usage_of_account: intended use, expected volumes, countries and source of funds.business_files: corporate documents such as the certificate of incorporation.beneficiaries: shareholders and ultimate beneficial owners.
A typical flow is to create the application, fill it in with PATCH /kyb/{id}, upload
documents with POST /kyb/upload_file/{id}, and wait for Depa's review. Once
status.processed is true the application is locked and edits return 403.
/kybReturns the KYB applications in your vault, page by page.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Query Parameters
Page number, starting at 1.
1 <= value1Number of results per page. Defaults to 25.
1 <= value25Response Body
application/json
application/json
curl -X GET "https://example.com/kyb?page=1" \ -H "Authorization: <token>"{ "data": [ { "id": "6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46", "external_id": "company-123", "client_kyc": false, "internal": false, "status": { "completed": false, "processed": false }, "nature_of_business": { "legal_company_name": "Acme Trading Ltd", "comercial_name": "Acme", "different_commercial_name": true, "company_registration_id": "12345678", "country_of_incorporation": "GB", "date_of_incorporation": "2019-05-14", "description_activity": "Wholesale distribution of office equipment", "products_offered": "Office furniture and supplies", "subject_of_supervision": "Not regulated", "website": "https://acme.example", "phone": "+442098282334", "email": "compliance@acme.example", "legal_address": "1 Canada Square", "postal_code_address": "E14 5AB", "city_address": "London", "state_address": "England", "country_address": "GB", "vat_number": "GB123456789", "company_type": "Private limited company", "tax_residency_country": "GB", "directors_residency_country": "GB", "website_legal_name_check": true, "website_activity_check": true }, "business_files": { "incorporation_certificates": [ { "name": "certificate_of_incorporation.pdf", "id": "abc123def456" } ], "articles_of_association": [ { "name": "document.pdf", "id": "abc123def456" } ], "legal_structures": [ { "name": "document.pdf", "id": "abc123def456" } ], "residence_proofs": [ { "name": "document.pdf", "id": "abc123def456" } ], "shareholders_registers": [ { "name": "document.pdf", "id": "abc123def456" } ], "directors_registers": [ { "name": "document.pdf", "id": "abc123def456" } ], "good_standing_certificate": [ { "name": "document.pdf", "id": "abc123def456" } ], "internal_shareholder_register": [ { "name": "document.pdf", "id": "abc123def456" } ], "power_of_attorney": [ { "name": "document.pdf", "id": "abc123def456" } ], "signature_type": "single", "public_registry_shares": true }, "beneficiaries": { "evidence_of_ubos": [ { "name": "document.pdf", "id": "abc123def456" } ], "shareholders_confirmation": true, "beneficiaries_list": [ { "full_name": "Jane Doe", "stake_in_company": "60", "email": "jane.doe@acme.example", "politically_exposed": false, "proof_address": [ { "name": "document.pdf", "id": "abc123def456" } ], "beneficiary_identification": [ { "name": "document.pdf", "id": "abc123def456" } ], "roles": [ "director", "ubo" ], "link": "https://sandbox.depasify.com/en/7a3c9e1f-2b8d-4f6a-9c0e-5d1b3a7f2e84", "external_id": "7a3c9e1f-2b8d-4f6a-9c0e-5d1b3a7f2e84" } ] }, "usage_of_account": { "usage": "Collecting customer payments and paying suppliers", "source_of_funds": [ "revenue" ], "nesting_confirmation": false, "nesting_justification": "", "flow_of_funds_description": "Customers pay invoices by SEPA; we pay EU suppliers weekly.", "fund_origin_confirmation": true, "ubo_source_of_wealth": "business_income", "ubo_source_of_wealth_other": "", "list_of_services": [ "iban", "sepa_payments" ], "list_of_countries_operated": "GB, DE, FR", "list_of_countries_intended": "GB, DE, FR, ES", "fund_evidences": [ { "name": "document.pdf", "id": "abc123def456" } ], "proof_regulations": [ { "name": "document.pdf", "id": "abc123def456" } ], "aml_policies": [ { "name": "document.pdf", "id": "abc123def456" } ], "risky_activities": "None", "trx_count_monthly": "500", "trx_value_monthly": "250000", "introduced_to_depa": "Partner referral" } } ], "pagination": { "current_page": 1, "per_page": 80, "total_pages": 1, "total_count": 2 }}/kybStarts a KYB application for a company, creating its identification and account. The
response includes generated_password, which the company uses to open the KYB form.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/kyb" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "external_id": "company-123" }'{ "data": { "id": "6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46", "external_id": "company-123", "client_kyc": false, "internal": false, "status": { "completed": false, "processed": false }, "nature_of_business": { "legal_company_name": "Acme Trading Ltd", "comercial_name": "Acme", "different_commercial_name": true, "company_registration_id": "12345678", "country_of_incorporation": "GB", "date_of_incorporation": "2019-05-14", "description_activity": "Wholesale distribution of office equipment", "products_offered": "Office furniture and supplies", "subject_of_supervision": "Not regulated", "website": "https://acme.example", "phone": "+442098282334", "email": "compliance@acme.example", "legal_address": "1 Canada Square", "postal_code_address": "E14 5AB", "city_address": "London", "state_address": "England", "country_address": "GB", "vat_number": "GB123456789", "company_type": "Private limited company", "tax_residency_country": "GB", "directors_residency_country": "GB", "website_legal_name_check": true, "website_activity_check": true }, "business_files": { "incorporation_certificates": [ { "name": "certificate_of_incorporation.pdf", "id": "abc123def456" } ], "articles_of_association": [ { "name": "document.pdf", "id": "abc123def456" } ], "legal_structures": [ { "name": "document.pdf", "id": "abc123def456" } ], "residence_proofs": [ { "name": "document.pdf", "id": "abc123def456" } ], "shareholders_registers": [ { "name": "document.pdf", "id": "abc123def456" } ], "directors_registers": [ { "name": "document.pdf", "id": "abc123def456" } ], "good_standing_certificate": [ { "name": "document.pdf", "id": "abc123def456" } ], "internal_shareholder_register": [ { "name": "document.pdf", "id": "abc123def456" } ], "power_of_attorney": [ { "name": "document.pdf", "id": "abc123def456" } ], "signature_type": "single", "public_registry_shares": true }, "beneficiaries": { "evidence_of_ubos": [ { "name": "document.pdf", "id": "abc123def456" } ], "shareholders_confirmation": true, "beneficiaries_list": [ { "full_name": "Jane Doe", "stake_in_company": "60", "email": "jane.doe@acme.example", "politically_exposed": false, "proof_address": [ { "name": "document.pdf", "id": "abc123def456" } ], "beneficiary_identification": [ { "name": "document.pdf", "id": "abc123def456" } ], "roles": [ "director", "ubo" ], "link": "https://sandbox.depasify.com/en/7a3c9e1f-2b8d-4f6a-9c0e-5d1b3a7f2e84", "external_id": "7a3c9e1f-2b8d-4f6a-9c0e-5d1b3a7f2e84" } ] }, "usage_of_account": { "usage": "Collecting customer payments and paying suppliers", "source_of_funds": [ "revenue" ], "nesting_confirmation": false, "nesting_justification": "", "flow_of_funds_description": "Customers pay invoices by SEPA; we pay EU suppliers weekly.", "fund_origin_confirmation": true, "ubo_source_of_wealth": "business_income", "ubo_source_of_wealth_other": "", "list_of_services": [ "iban", "sepa_payments" ], "list_of_countries_operated": "GB, DE, FR", "list_of_countries_intended": "GB, DE, FR, ES", "fund_evidences": [ { "name": "document.pdf", "id": "abc123def456" } ], "proof_regulations": [ { "name": "document.pdf", "id": "abc123def456" } ], "aml_policies": [ { "name": "document.pdf", "id": "abc123def456" } ], "risky_activities": "None", "trx_count_monthly": "500", "trx_value_monthly": "250000", "introduced_to_depa": "Partner referral" } }, "generated_password": "a1b2c3d4e5f6g7h8"}/kyb/{id}Returns a KYB application with every section filled in so far.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the KYB application.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/kyb/6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46" \ -H "Authorization: <token>"{ "data": { "id": "6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46", "external_id": "company-123", "client_kyc": false, "internal": false, "status": { "completed": false, "processed": false }, "nature_of_business": { "legal_company_name": "Acme Trading Ltd", "comercial_name": "Acme", "different_commercial_name": true, "company_registration_id": "12345678", "country_of_incorporation": "GB", "date_of_incorporation": "2019-05-14", "description_activity": "Wholesale distribution of office equipment", "products_offered": "Office furniture and supplies", "subject_of_supervision": "Not regulated", "website": "https://acme.example", "phone": "+442098282334", "email": "compliance@acme.example", "legal_address": "1 Canada Square", "postal_code_address": "E14 5AB", "city_address": "London", "state_address": "England", "country_address": "GB", "vat_number": "GB123456789", "company_type": "Private limited company", "tax_residency_country": "GB", "directors_residency_country": "GB", "website_legal_name_check": true, "website_activity_check": true }, "business_files": { "incorporation_certificates": [ { "name": "certificate_of_incorporation.pdf", "id": "abc123def456" } ], "articles_of_association": [ { "name": "document.pdf", "id": "abc123def456" } ], "legal_structures": [ { "name": "document.pdf", "id": "abc123def456" } ], "residence_proofs": [ { "name": "document.pdf", "id": "abc123def456" } ], "shareholders_registers": [ { "name": "document.pdf", "id": "abc123def456" } ], "directors_registers": [ { "name": "document.pdf", "id": "abc123def456" } ], "good_standing_certificate": [ { "name": "document.pdf", "id": "abc123def456" } ], "internal_shareholder_register": [ { "name": "document.pdf", "id": "abc123def456" } ], "power_of_attorney": [ { "name": "document.pdf", "id": "abc123def456" } ], "signature_type": "single", "public_registry_shares": true }, "beneficiaries": { "evidence_of_ubos": [ { "name": "document.pdf", "id": "abc123def456" } ], "shareholders_confirmation": true, "beneficiaries_list": [ { "full_name": "Jane Doe", "stake_in_company": "60", "email": "jane.doe@acme.example", "politically_exposed": false, "proof_address": [ { "name": "document.pdf", "id": "abc123def456" } ], "beneficiary_identification": [ { "name": "document.pdf", "id": "abc123def456" } ], "roles": [ "director", "ubo" ], "link": "https://sandbox.depasify.com/en/7a3c9e1f-2b8d-4f6a-9c0e-5d1b3a7f2e84", "external_id": "7a3c9e1f-2b8d-4f6a-9c0e-5d1b3a7f2e84" } ] }, "usage_of_account": { "usage": "Collecting customer payments and paying suppliers", "source_of_funds": [ "revenue" ], "nesting_confirmation": false, "nesting_justification": "", "flow_of_funds_description": "Customers pay invoices by SEPA; we pay EU suppliers weekly.", "fund_origin_confirmation": true, "ubo_source_of_wealth": "business_income", "ubo_source_of_wealth_other": "", "list_of_services": [ "iban", "sepa_payments" ], "list_of_countries_operated": "GB, DE, FR", "list_of_countries_intended": "GB, DE, FR, ES", "fund_evidences": [ { "name": "document.pdf", "id": "abc123def456" } ], "proof_regulations": [ { "name": "document.pdf", "id": "abc123def456" } ], "aml_policies": [ { "name": "document.pdf", "id": "abc123def456" } ], "risky_activities": "None", "trx_count_monthly": "500", "trx_value_monthly": "250000", "introduced_to_depa": "Partner referral" } }}/kyb/{id}Fills in or changes a KYB application. Send only the sections and fields you want to
change; beneficiaries are matched by email, so sending an existing email updates that
person. Applications that Depa has already processed can't be changed (403).
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the KYB application.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Send only the sections and fields you want to change. Beneficiaries are matched by email.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/kyb/6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "nature_of_business": { "legal_company_name": "Acme Trading Ltd", "company_registration_id": "12345678", "country_of_incorporation": "GB", "date_of_incorporation": "2019-05-14", "website": "https://acme.example" }, "usage_of_account": { "usage": "Collecting customer payments and paying suppliers", "trx_count_monthly": "500", "trx_value_monthly": "250000", "source_of_funds": [ "revenue" ] }, "beneficiaries": { "shareholders_confirmation": true, "beneficiaries_list": [ { "full_name": "Jane Doe", "stake_in_company": "60", "email": "jane.doe@acme.example", "politically_exposed": false, "roles": [ "director", "ubo" ] } ] } }'{ "message": "KYB data updated successfully"}/kyb/upload_file/{id}Uploads a file and attaches it to one section of a KYB application, named by attribute
(for example incorporation_certificates). Send it as multipart/form-data. The response
id is the key to delete the file later. Processed applications can't be changed (403).
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the KYB application.
uuidRequest Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/kyb/upload_file/6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46" \ -H "Authorization: <token>" \ -F file="null" \ -F attribute="incorporation_certificates"{ "name": "certificate_of_incorporation.pdf", "id": "abc123def456"}/kyb/delete_file/{id}Removes a file from a KYB application. Pass the blob_key returned when it was uploaded and the attribute_key it belongs to. Processed applications can't be changed (403).
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the KYB application.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/kyb/delete_file/6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "blob_key": "abc123def456", "attribute_key": "incorporation_certificates" }'{ "message": "File deleted successfully"}/kyb/validate/{id}Returns whether a KYB application with this ID exists.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the KYB application.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/kyb/validate/6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46" \ -H "Authorization: <token>"{ "exists": true}/kyb/validate_password/{id}Checks the password of a KYB application, the generated_password returned when it was created. Used to protect access to the KYB form.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the KYB application.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/kyb/validate_password/6f2b8d1e-4a9c-4e3f-b7d2-1c8a5e0f9b46" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "password": "a1b2c3d4e5f6g7h8" }'{ "authenticate": true}Identification Documents
Identity documents attached to an identification: ID cards, passports, driver's licences, utility bills and source-of-funds evidence.
Bank Accounts
Bank accounts are the fiat accounts attached to an account, from named IBANs for your customers to the external accounts they withdraw to.