---
title: Credit card verification
slug: eco/credit-card-verification
docTags: 
createdAt: 2025-07-11T04:29:55.398Z
---

:::ApiMethodV2
```json
{
  "name": "card",
  "method": "POST",
  "url": "https://api-sandbox.klavi.ai/data/eco/v1/verify/card",
  "description": "Verify whether the credit card is truly owned by the customer based on the last 4 digits of the user's credit card",
  "tab": "examples",
  "examples": {
    "languages": [
      {
        "id": "E66N-PxjRewHyMx7AH1Rv",
        "language": "curl",
        "code": "curl --location 'https://api-sandbox.klavi.ai/data/eco/v1/verify/card' \\\n--header 'Accept: application/json' \\\n--header 'Content-Type: application/json' \\\n--data '{\n  \"taxId\": \"String\",\n  \"institutionCode\": \"String\",\n  \"kycVerified\": \"Boolean\"\n  \"cardLast4\": \"String\"\n}'",
        "customLabel": ""
      },
      {
        "id": "hPijW9LrAfpYtR6JjFQKE",
        "language": "nodejs",
        "code": "var request = require('request');\nvar options = {\n   'method': 'POST',\n   'url': 'https://api-sandbox.klavi.ai/data/eco/v1/verify/card',\n   'headers': {\n      'Accept': 'application/json',\n      'Content-Type': 'application/json'\n   },\n   body: JSON.stringify({\n      \"taxId\": \"String\",\n      \"institutionCode\": \"String\",\n      \"kycVerified\": \"Boolean\"\n      \"cardLast4\": \"String\"\n   })\n\n};\nrequest(options, function (error, response) {\n   if (error) throw new Error(error);\n   console.log(response.body);\n});\n",
        "customLabel": ""
      },
      {
        "id": "lB2HMWRUQ_8j419dUCkp1",
        "language": "javascript",
        "code": "var myHeaders = new Headers();\nmyHeaders.append(\"Accept\", \"application/json\");\nmyHeaders.append(\"Content-Type\", \"application/json\");\n\nvar raw = JSON.stringify({\n   \"taxId\": \"String\",\n   \"institutionCode\": \"String\",\n   \"kycVerified\": \"Boolean\"\n   \"cardLast4\": \"String\"\n});\n\nvar requestOptions = {\n   method: 'POST',\n   headers: myHeaders,\n   body: raw,\n   redirect: 'follow'\n};\n\nfetch(\"https://api-sandbox.klavi.ai/data/eco/v1/verify/card\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));",
        "customLabel": ""
      },
      {
        "id": "CmMEALuWGADcAUX-Tm1yC",
        "language": "python",
        "code": "import requests\nimport json\n\nurl = \"https://api-sandbox.klavi.ai/data/eco/v1/verify/card\"\n\npayload = json.dumps({\n   \"taxId\": \"String\",\n   \"institutionCode\": \"String\",\n   \"kycVerified\": \"Boolean\"\n   \"cardLast4\": \"String\"\n})\nheaders = {\n   'Accept': 'application/json',\n   'Content-Type': 'application/json'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n",
        "customLabel": ""
      },
      {
        "id": "70OTKLwVkeXmgzm7q1kPM",
        "language": "ruby",
        "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api-sandbox.klavi.ai/data/eco/v1/verify/card\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Accept\"] = \"application/json\"\nrequest[\"Content-Type\"] = \"application/json\"\nrequest.body = JSON.dump({\n   \"taxId\": \"String\",\n   \"institutionCode\": \"String\",\n   \"kycVerified\": \"Boolean\"\n   \"cardLast4\": \"String\"\n})\n\nresponse = https.request(request)\nputs response.read_body\n",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "70OTKLwVkeXmgzm7q1kPM"
  },
  "results": {
    "languages": [
      {
        "id": "mdyZm4FgKeC5dw6Zkdy22",
        "language": "200",
        "customLabel": "",
        "code": "{\n   \"requestId\": \"c69e4cd41d360008631c6db1fb47a00c\",\n   \"status\": \"matched\"\n}"
      }
    ],
    "selectedLanguageId": "mdyZm4FgKeC5dw6Zkdy22"
  },
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [
      {
        "name": "Authorization",
        "kind": "required",
        "type": "string",
        "description": "Bearer access token, it returned by the /auth",
        "": "Bearer access token, it returned by the /auth"
      }
    ],
    "bodyDataParameters": [
      {
        "name": "taxId",
        "kind": "required",
        "type": "string",
        "description": "The CPF of the end-user, for personal accounts only",
        "": "The CPF of the end-user, for personal accounts only"
      },
      {
        "name": "institutionCode",
        "kind": "required",
        "type": "string",
        "description": "Institution participanting Open finance",
        "": "institutionCode"
      },
      {
        "name": "kycVerified",
        "kind": "required",
        "type": "boolean",
        "description": "Has the end user completed the KYC process on the partner side. Only after completing the KYC process will corresponding data be generated, this means that you must pass \"true\" in order to generate the corresponding report.",
        "": "boolean"
      },
      {
        "name": "cardLast4",
        "kind": "required",
        "type": "string",
        "description": "The last 4 digits of the credit card number",
        "": "cardLast4"
      }
    ],
    "formDataParameters": []
  },
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "response": [
    {
      "name": "requestId",
      "kind": "optional",
      "type": "string",
      "description": "The Id  for each request",
      "children": []
    },
    {
      "name": "status",
      "kind": "optional",
      "type": "string",
      "description": "status[matched, notMatched, notFound]",
      "children": []
    }
  ],
  "autoGeneratedAnchorSlug": "card",
  "legacyHash": "9pA2XL-dLsjhdDWEYsoXE"
}
```
:::

:::hint{type="info"}
The participant institution code list can be found in [Participant Institutions](docId\:KovyLvEtgKs_rhZohbKMQ).
:::

## status

| **status** | **Description**                                              |
| ---------- | ------------------------------------------------------------ |
| matched    | The last 4 digits of the user's credit card number match     |
| notMatched | The last 4 digits of the user's credit card number not match |
| notFound   | Not found                                                    |



