View Categories

Finalize External Identification API

👥 Enrollment — Finalize External Identification API #

Gateway Path: /Enrollment/finalize-external-identification
Service: Customer Relationship Management (CRM)
Method: POST
Auth: Bearer token in Authorization header


1) 📖 Overview & Purpose #

Finalizes the external KYC session with Borica after both polling phases have completed, i.e.:

  • Phase A: you reached SIGN_SESSION_ID_SUCCESSFULLY_CREATED and opened the provided URL to start 10nPayments document signing.

  • Phase B: after signing, polling returned DOCUMENT_SIGN_SUCCESS.

Calling this endpoint records the final outcome in CRM and returns identifiers you will use downstream.


2) 🔗 Endpoint Definition #

HTTP: POST /Enrollment/finalize-external-identification

Headers #

  • Authorization: Bearer <token> — valid access token

  • Content-Type: application/json

Request Body (example) #

{
    "userId": 2083,
    "bTrustAppCallBackId": null,
    "correlationType": 0
}

Fields #

  • userId (integer, required, int32) — User identifier. Range: 1..2147483647.

  • bTrustAppCallBackId (string | null, optional) — Callback identifier returned by B-Trust (if applicable in your flow).

  • correlationType (integer, optional, enum: 0, 1) — CRM correlation flag for tracking/reporting.


3) 📡 Responses #

✅ 3.1 Success — 200 OK #

{
    "correlationId": "834d03b9-d24f-4d7b-950f-69aadff41599",
    "individualId": 989
}

Response fields

  • correlationId (string, GUID) — Server-side correlation for audit/tracing.

  • individualId (integer) — Internal CRM individual identifier linked to the user.

❌ 3.2 Server Error — 500 #

Unexpected failure (body usually empty or problem-details per gateway policy).


4) 🛡 Preconditions & Validation #

  • KYC flow must have reached DOCUMENT_SIGN_SUCCESS (post-sign polling).

  • userId: required; 1..2147483647.

  • correlationType: if provided, must be 0 or 1.

  • bTrustAppCallBackId: string or null (when available from B-Trust callback).


5) 💻 Examples #

5.1 cURL #

curl -X POST "https://api-test.10npay.com/Enrollment/finalize-external-identification" \ -H "Authorization: Bearer <YOUR_SECRET_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "userId": 2083, "bTrustAppCallBackId": null, "correlationType": 0 }' -i

5.2 C# (.NET) #

using System.Net.Http; using System.Net.Http.Headers; var http = new HttpClient(); var req = new HttpRequestMessage(HttpMethod.Post, "https://api-test.10npay.com/Enrollment/finalize-external-identification"); req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<YOUR_SECRET_TOKEN>"); req.Content = new StringContent(@"{ ""userId"": 2083, ""bTrustAppCallBackId"": null, ""correlationType"": 0 }"); req.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using var res = await http.SendAsync(req); res.EnsureSuccessStatusCode(); // 200 OK expected var body = await res.Content.ReadAsStringAsync(); // parse correlationId & individualId

5.3 JavaScript (fetch) #

await fetch("https://api-test.10npay.com/Enrollment/finalize-external-identification", { method: "POST", headers: { Authorization: "Bearer <YOUR_SECRET_TOKEN>", "Content-Type": "application/json" }, body: JSON.stringify({ userId: 2083, bTrustAppCallBackId: null, correlationType: 0 }) }); // Expect 200 OK with correlationId & individualId


6) 🔄 Sequence (end-to-end recap) #

  1. Initiate external identification → receive videoIdentificationUrl.

  2. Borica flow #1 (ID scan + liveness) → Success redirect.

  3. Poll status (Phase A) until SIGN_SESSION_ID_SUCCESSFULLY_CREATED → open returned URL to start 10nPayments signing.

  4. Borica flow #2 (document signing) → Success redirect.

  5. Poll status (Phase B) until DOCUMENT_SIGN_SUCCESS.

  6. Finalize: POST /Enrollment/finalize-external-identification → receive correlationId and individualId for CRM records.

  7. Proceed with post-KYC onboarding (limits, product enabling, etc.).

Powered by BetterDocs