> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dojah.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Canada eKYC

> Verify a Canadian individual against credit-reference and telephony data sources and return a match decision.

<div className="dj-endpoint">
  <span className={`dj-method dj-method-post`}>POST</span>
  <code>/api/v1/ca/kyc</code>
</div>

Verify a Canadian individual against credit-reference and telephony data sources, returning a match decision.

## Headers

| Header          | Required | Description                                         |
| --------------- | -------- | --------------------------------------------------- |
| `Authorization` | Yes      | Your app's secret key, sent as-is — *not* `Bearer`. |
| `AppId`         | Yes      | The App ID from your dashboard.                     |
| `Content-Type`  | Yes      | `application/json`                                  |

## Body parameters

| Parameter       | Type   | Required | Description                 |
| --------------- | ------ | -------- | --------------------------- |
| `first_name`    | string | Yes      | First name.                 |
| `last_name`     | string | Yes      | Last name.                  |
| `middle_name`   | string | No       | Middle name.                |
| `date_of_birth` | string | Yes      | Date of birth (YYYY-MM-DD). |
| `gender`        | string | Yes      | `M` or `F`.                 |
| `street_name`   | string | Yes      | Street name.                |
| `house_number`  | string | Yes      | House number.               |
| `city`          | string | Yes      | City.                       |
| `post_code`     | string | Yes      | Post code.                  |

## Response

Returns an `entity` with a `summary.decisionMatrix.decision` outcome plus the `creditReference` and `telephony` data blocks. Trimmed below.

## Errors

| Code  | Meaning                                                                                       |
| ----- | --------------------------------------------------------------------------------------------- |
| `400` | Bad request — a required parameter is missing or malformed.                                   |
| `401` | Unauthorized — check your key and `AppId` (no `Bearer` prefix).                               |
| `402` | Insufficient wallet balance. [Fund your wallet](/api-reference/core-concepts/wallet-billing). |
| `404` | No record found for the supplied identifier.                                                  |
| `424` | The upstream source was unavailable — retry shortly.                                          |
| `429` | Too many requests — back off and retry.                                                       |

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.dojah.io/api/v1/ca/kyc" \
    -H "Authorization: {{secret_key}}" \
    -H "AppId: {{app_id}}" \
    -H "Content-Type: application/json" \
    -d '{
      "first_name": "John",
      "last_name": "Musa",
      "date_of_birth": "1969-12-12",
      "gender": "M",
      "street_name": "184th Street",
      "house_number": "3688",
      "city": "Edmonton",
      "post_code": "T5J 2R4"
    }'
  ```

  ```js Node.js theme={null}
  const res = await fetch("https://api.dojah.io/api/v1/ca/kyc", {
    method: "POST",
    headers: {
      Authorization: process.env.DOJAH_SECRET_KEY,
      AppId: process.env.DOJAH_APP_ID,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      first_name: "John",
      last_name: "Musa",
      date_of_birth: "1969-12-12",
      gender: "M",
      street_name: "184th Street",
      house_number: "3688",
      city: "Edmonton",
      post_code: "T5J 2R4",
    }),
  });
  const data = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.post(
      "https://api.dojah.io/api/v1/ca/kyc",
      headers={
          "Authorization": os.environ["DOJAH_SECRET_KEY"],
          "AppId": os.environ["DOJAH_APP_ID"],
      },
      json={
          "first_name": "John",
          "last_name": "Musa",
          "date_of_birth": "1969-12-12",
          "gender": "M",
          "street_name": "184th Street",
          "house_number": "3688",
          "city": "Edmonton",
          "post_code": "T5J 2R4",
      },
  )
  data = res.json()
  ```
</RequestExample>

<ResponseExample>
  ```json POST /api/v1/ca/kyc theme={null}
  {
    "entity": {
      "creditReference": {
        "creditReferenceSummary": {
          "idVerified": "1"
        },
        "summary": {
          "decision": "1"
        }
      },
      "searchRef": "37873fcc-6281-4913-b6df-5f26497abfab",
      "summary": {
        "decisionMatrix": {
          "decision": {
            "outcome": "1",
            "reason": "Individual has a full match to forename surname premise postcode with ID verified and DOB"
          }
        },
        "kycSummary": {
          "address": {
            "count": "4"
          },
          "alerts": {
            "count": "0"
          },
          "dateOfBirth": {
            "count": "3"
          },
          "fullNameAndAddress": {
            "count": "1"
          },
          "surnameAndAddress": {
            "count": "0"
          }
        }
      },
      "telephony": {
        "summary": {
          "decision": "1"
        },
        "type": "Result"
      }
    }
  }
  ```
</ResponseExample>
