openapi: 3.1.0 info: title: MetaMap Authentication Webhooks API version: '1.4' description: MetaMap (formerly Mati) identity verification REST API. Start and manage user verifications, retrieve verification media, run watchlist, email, phone, credit, court-record, and government database checks across Latin America, Africa, and Asia. contact: name: MetaMap url: https://metamap.com license: name: MetaMap Terms of Service url: https://metamap.com/legal/terms-of-service servers: - url: https://api.prod.metamap.com description: Production security: - bearerAuth: [] tags: - name: Webhooks paths: /v2/verifications/{id}: get: summary: Retrieve Webhook Resource Data description: Use this API to retrieve Webhook Resource Data operationId: retrieve-webhook-resource-data-1 parameters: - name: id in: path description: The `id` is in the successful response to a [Verification Creation](https://docs.metamap.com/reference/verification-creation) request schema: type: string required: true responses: '200': description: '200' content: application/json: examples: Successful Webhook response: value: "{\n \"expired\": false,\n \"deviceFingerprint\": {\n \"ua\": \"Mozilla/5.0 (Linux; Android 10; SM-M305M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36\",\n \"browser\": {\n \"name\": \"Chrome\",\n \"version\": \"79.0.3945.116\",\n \"major\": \"79\"\n },\n \"engine\": {\n \"name\": \"WebKit\",\n \"version\": \"537.36\"\n },\n \"os\": {\n \"name\": \"Android\",\n \"version\": \"10\"\n },\n \"device\": {\n \"vendor\": \"Samsung\",\n \"model\": \"SM-M305M\",\n \"type\": \"mobile\"\n }\n },\n \"identity\": {\n \"status\": \"reviewNeeded\"\n },\n \"steps\": [\n {\n \"status\": 200,\n \"id\": \"selfie\",\n \"data\": {\n \"selfiePhotoUrl\": \"https://media.getmati.com/media/eyJhbGciOiJIUzI1NiIsInR5cC...\"\n },\n \"error\": null\n }, {\n \"status\": 200,\n \"id\": \"ip-validation\",\n \"data\": {\n \"country\": \"Mexico\",\n \"countryCode\": \"MX\",\n \"region\": \"Chihuahua\",\n \"regionCode\": \"CHH\",\n \"city\": \"Ciudad Juárez\",\n \"zip\": 32472,\n \"latitude\": 1.713,\n \"longitude\": 106.39,\n \"safe\": false\n }\n }\n ],\n \"documents\": [\n {\n \"country\": \"MX\",\n \"type\": \"national-id\",\n \"steps\": [\n {\n \"status\": 200,\n \"id\": \"mexican-curp-validation\",\n \"error\": {\n \"type\": \"StepError\",\n \"code\": \"curp.invalid\",\n \"message\": \"CURP number is invalid\"\n }\n },\n {\n \"status\": 200,\n \"id\": \"mexican-ine-validation\",\n \"error\": {\n \"type\": \"StepError\",\n \"code\": \"ine.notEnoughParams\",\n \"message\": \"Not enough params to get ine data\"\n }\n },\n {\n \"status\": 200,\n \"id\": \"template-matching\",\n \"error\": {\n \"type\": \"StepError\",\n \"code\": \"templateMatching.noMatchFound\",\n \"message\": \"Document did not match any valid template\"\n }\n },\n {\n \"status\": 200,\n \"id\": \"facematch\",\n \"error\": {\n \"type\": \"LegacyError\",\n \"code\": \"legacy.error\",\n \"message\": \"The face did not match the document\"\n }\n },\n {\n \"status\": 200,\n \"id\": \"document-reading\",\n \"error\": null,\n \"data\": {\n \"fullName\": {\n \"value\": null,\n \"label\": \"Name\"\n },\n \"address\": {\n \"value\": null,\n \"label\": \"Address\"\n },\n \"documentNumber\": {\n \"value\": null,\n \"label\": \"Document Number\"\n },\n \"dateOfBirth\": {\n \"value\": null,\n \"label\": \"Day of Birth\",\n \"format\": \"date\"\n },\n \"expirationDate\": {\n \"value\": null,\n \"label\": \"Date of Expiration\",\n \"format\": \"date\"\n },\n \"cde\": {\n \"value\": null,\n \"label\": \"Elector Key\"\n },\n \"curp\": {\n \"value\": null,\n \"label\": \"CURP\"\n },\n \"ne\": {\n \"value\": null,\n \"label\": \"Emission Number\"\n },\n \"ocrNumber\": {\n \"value\": null,\n \"label\": \"OCR Number\"\n }\n }\n },\n {\n \"status\": 200,\n \"id\": \"alteration-detection\",\n \"error\": {\n \"type\": \"LegacyError\",\n \"code\": \"legacy.error\",\n \"message\": \"Document is considered tempered\"\n }\n },\n {\n \"status\": 200,\n \"id\": \"watchlists\",\n \"error\": {\n \"type\": \"LegacyError\",\n \"code\": \"legacy.error\",\n \"message\": \"No data to extract information\"\n }\n }\n ],\n \"fields\": {\n \"fullName\": {\n \"value\": null,\n \"label\": \"Name\"\n },\n \"address\": {\n \"value\": null,\n \"label\": \"Address\"\n },\n \"documentNumber\": {\n \"value\": null,\n \"label\": \"Document Number\"\n },\n \"dateOfBirth\": {\n \"value\": null,\n \"label\": \"Day of Birth\",\n \"format\": \"date\"\n },\n \"expirationDate\": {\n \"value\": null,\n \"label\": \"Date of Expiration\",\n \"format\": \"date\"\n },\n \"cde\": {\n \"value\": null,\n \"label\": \"Elector Key\"\n },\n \"curp\": {\n \"value\": null,\n \"label\": \"CURP\"\n },\n \"ne\": {\n \"value\": null,\n \"label\": \"Emission Number\"\n },\n \"ocrNumber\": {\n \"value\": null,\n \"label\": \"OCR Number\"\n }\n },\n \"photos\": [\n \"https://media.getmati.com/media/eyJhbGciOiJIUzI1NiIs...\",\n \"https://media.getmati.com/media/eyJhbGciOiJIUzI1NiIs...\"\n ]\n }\n ],\n \"hasProblem\": true,\n \"computed\": {\n \"age\" : {\n \"data\" : 33\n },\n \"isDocumentExpired\" : {\n \"data\" : {\n \"national-id\" : false,\n \"passport\": true,\n \"proof-of-residency\": null\n }\n }\n },\n \"id\": \"{{_id}}\"\n}" schema: type: object properties: expired: type: boolean example: false default: true deviceFingerprint: type: object properties: ua: type: string example: Mozilla/5.0 (Linux; Android 10; SM-M305M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36 browser: type: object properties: name: type: string example: Chrome version: type: string example: 79.0.3945.116 major: type: string example: '79' engine: type: object properties: name: type: string example: WebKit version: type: string example: '537.36' os: type: object properties: name: type: string example: Android version: type: string example: '10' device: type: object properties: vendor: type: string example: Samsung model: type: string example: SM-M305M type: type: string example: mobile identity: type: object properties: status: type: string example: reviewNeeded steps: type: array items: type: object properties: status: type: integer example: 200 default: 0 id: type: string example: selfie data: type: object properties: selfiePhotoUrl: type: string example: https://media.getmati.com/media/eyJhbGciOiJIUzI1NiIsInR5cC... error: {} documents: type: array items: type: object properties: country: type: string example: MX type: type: string example: national-id steps: type: array items: type: object properties: status: type: integer example: 200 default: 0 id: type: string example: mexican-curp-validation error: type: object properties: type: type: string example: StepError code: type: string example: curp.invalid message: type: string example: CURP number is invalid fields: type: object properties: fullName: type: object properties: value: {} label: type: string example: Name address: type: object properties: value: {} label: type: string example: Address documentNumber: type: object properties: value: {} label: type: string example: Document Number dateOfBirth: type: object properties: value: {} label: type: string example: Day of Birth format: type: string example: date expirationDate: type: object properties: value: {} label: type: string example: Date of Expiration format: type: string example: date cde: type: object properties: value: {} label: type: string example: Elector Key curp: type: object properties: value: {} label: type: string example: CURP ne: type: object properties: value: {} label: type: string example: Emission Number ocrNumber: type: object properties: value: {} label: type: string example: OCR Number photos: type: array items: type: string example: https://media.getmati.com/media/eyJhbGciOiJIUzI1NiIs... hasProblem: type: boolean example: true default: true computed: type: object properties: age: type: object properties: data: type: integer example: 33 default: 0 isDocumentExpired: type: object properties: data: type: object properties: national-id: type: boolean example: false default: true passport: type: boolean example: true default: true proof-of-residency: {} id: type: string example: '{{_id}}' '400': description: '400' content: application/json: examples: Result: value: '{}' schema: type: object properties: {} deprecated: false x-readme: code-samples: - language: curl code: 'curl --location --request GET ''https://api.getmati.com/v2/verifications/'' \ --header ''Authorization: Bearer ''' samples-languages: - curl tags: - Webhooks components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: JWT obtained via POST /oauth using client_id / client_secret as HTTP Basic. basicAuth: type: http scheme: basic description: Used only on POST /oauth for the initial token exchange.