POST
/
api
/
partner
/
v2
/
kyc
/
verification-link
cURL
curl --request POST \
  --url https://staging-api.capa.fi/api/partner/v2/kyc/verification-link \
  --header 'Content-Type: application/json' \
  --header 'partner-api-key: <partner-api-key>' \
  --data '{
  "personalInfo": {
    "profession": "<string>",
    "phoneNumber": "<string>",
    "birthCountry": "<string>",
    "taxId": "<string>"
  },
  "userId": "2da954cd-2fda-49c2-ad77-6208c5ab71d6",
  "country": "MX",
  "partnerRedirectUri": "https://partner.com or myapp://partner.com"
}'
{
  "status": "ok",
  "data": {
    "kycLink": "<string>"
  }
}

Headers

PartnerApiKey (string) - API key associated with the partner.
Partner API Key RequiredRequires partner-api-key for authentication to ensure only authorized partners can access this data.See 🔑 API Key Generation Guide for getting your API key

Body:

  • userId (string) - The unique identifier of the user for whom the direct link is being generated.
  • country (string) - The country code where the partner operates. Must be a valid value from SupportedCountry.
  • partnerRedirectUri (string) - URL the user gets redirected after completing the kyc
  • personalInfo (object, optional) - Personal information of the user, required only for partners in Mexico (country = “MX”).
    • profession (string) - The user’s profession. Must be a valid value from SupportedUserProfessions.
    • 📘 Possible values
      1. Employee
      2. Public Servant
      3. Entrepreneur or Contractor
      4. Student
      5. Other
    • phoneNumber (string) - The user’s phone number in international format.
    • birthCountry (string) - The user’s birth country code. Must be a valid ISO 3166-1 alpha-2 country code.
    • taxId (string) - The user taxId for Mexican users. This value is called RFC which complies with this format Link.

Example

JSON
{
  "userId": "2da954cd-2fda-49c2-ad77-6208c5ab71d6",
  "country": "MX",
  "partnerRedirectUri": "https://capa.fi"
  "personalInfo": {
    "profession": "Employee",
    "phoneNumber": "+524401234567",
    "birthCountry": "MX",
    "taxId": "LOZG7802117B9"
  }
}

Use cases

Regulatory Compliance in Mexico A partner operating in Mexico needs to verify the identity of a new user to comply with local regulations. They use this endpoint to generate a direct KYC verification link. The request includes the userId, country set to MX, and the user’s personal information such as profession, phoneNumber, and birthCountry. This link is then sent to the user to complete the KYC process.

How to implement?

Use the kycLink to create an HTML button on your website or application. Set the href attribute of the button to the generated kycLink.
<button onclick="window.location.href='https://example.com/kyc-link';">
  Complete Your KYC Verification
</button>

Webhook Verification Response

After the user completes the KYC process using the link, a verification response will be sent to your system via a our webhook system specified in this our Webhook Guide.

Headers

partner-api-key
string
required

Api key for the affiliated partner that is performing the request

Body

application/json
userId
string
required

The user id of the partner

Example:

"2da954cd-2fda-49c2-ad77-6208c5ab71d6"

country
enum<string>
required

The country code for the partner

@description The country must be a valid ISO 3166-1 alpha-2 country code, see: @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

Available options:
MX,
DO,
US,
AT,
BE,
BG,
HR,
CY,
CZ,
DK,
EE,
FI,
FR,
DE,
GR,
HU,
IE,
IT,
LV,
LT,
LU,
MT,
NL,
PL,
PT,
RO,
SK,
SI,
ES,
SE,
IS,
LI,
NO,
CH,
GB,
MC,
SM,
AD,
VA
Example:

"MX"

personalInfo
object

Personal information for regulatory purposes

partnerRedirectUri
string

The redirect URI for the partner to redirect the user after the KYC process is completed

Example:

"https://partner.com or myapp://partner.com"

Response

201 - application/json

This endpoint is used to generate a direct link to the KYC provider Only the partner should be able to access this endpoint

status
string
Example:

"ok"

data
object