openapi: 3.1.0 info: title: Coinme Crypto-as-a-Service AuthLinkResult Verify API version: '1.2' description: 'Coinme Crypto-as-a-Service (CaaS) API. Harvested from provider-published per-endpoint OpenAPI blocks at docs.coinme.com/reference. Modular crypto infrastructure: KYC onboarding, quotes, buy/sell orders, wallets, sends, cash on/off-ramp, payment methods, and webhooks.' servers: - url: https://caas.coinme.com/services description: production - url: https://caas-staging.coinme.com/services description: staging tags: - name: Verify paths: /verify: post: summary: Initiate Verify description: This endpoint can be called to verify that the submitted data correctly matches the customer associated with it. The more data input, the more accurate of a result can be returned. In order to keep the information confidential, Coinme uses a third party, VeryGoodSecurity, as a reverse proxy to create a token for the ssn upon the request and then decrypt the token on the request to Prove’s pre-fill service. operationId: verify parameters: - name: Authorization in: header description: Bearer token {authorize} endpoint required: true schema: type: string default: Bearer ****** - name: User-Agent in: header description: Partner User Agent ID (provided by Coinme) required: true schema: type: string requestBody: content: application/json: schema: type: object required: - ssn - phoneNumber properties: ssn: type: string description: Social security number token from VGS API call phoneNumber: type: integer description: 10-digit phone number format: int32 consentStatus: type: string description: enum of optedIn, optedOut, notCollected, unknown enum: - optedIn - optedOut - notCollected - unknown firstName: type: string description: First name of customer lastName: type: string description: Last name of customer address: type: string description: Line 1 of customer home address extendedAddress: type: string description: Line 2 of customer home address city: type: string description: City of customer home address region: type: string description: State of customer home address postalCode: type: string description: Postal code of customer home address dob: type: string description: Date of birth of customer in format YYYY-MM-DD format: date responses: '200': description: '200' content: application/json: examples: Result: value: "{\n\t\"data\": {\n\t\t\"requestId\": \"<>\",\n\t\t\"status\": 0,\n\t\t\"description\": \"Success.\",\n\t\t\"additionalInfo\": null,\n\t\t\"response\": {\n\t\t\t\"verified\": true, //boolean to say if the data matches\n\t\t\t\"transactionId\": \"12228136833\",\n\t\t\t\"payfoneAlias\": \"<>\",\n\t\t\t\"phoneNumber\": \"<>\",\n\t\t\t\"lineType\": \"Landline\",\n\t\t\t\"carrier\": \"<>\",\n\t\t\t\"countryCode\": \"US\",\n\t\t\t\"reasonCodes\": [\n\t\t\t<>\n\t\t\t],\n\t\t\t\"address\": {\n\t\t\t\t\"distance\": 0.0,\n\t\t\t\t\"addressScore\": 100, //0-100 on matching of address\n\t\t\t\t\"streetNumber\": 100, //0-100 on matching of street number\n\t\t\t\t\"street\": false, // boolean on street match\n\t\t\t\t\"city\": true, //boolean on city match\n\t\t\t\t\"region\": true, //boolean on region match\n\t\t\t\t\"postalCode\": true //boolean on postal code match\n\t\t\t},\n\t\t\t\"name\": {\n\t\t\t\t\"nameScore\": 100, //0-100 on matching of full name\n\t\t\t\t\"firstName\": 100, //0-100 on matching of first name\n\t\t\t\t\"lastName\": 100 //0-100 on matching of last name\n\t\t\t},\n\t\t\t\"identifiers\": {\n\t\t\t\t\"last4\": false, //if last4 used instead of full ssn (should always be false in this case)\n\t\t\t\t\"dob\": true, //boolean on dob matches\n\t\t\t\t\"driversLicenseState\": false, //boolean on drivers license state match (not supported at this time)\n\t\t\t\t\"driversLicenseNumber\": false, //boolean on drivers license number match (not supported at this time)\n\t\t\t\t\"ssn\": true //boolean on ssn match\n\t\t\t},\n\t\t\t\"knowYourCustomer\": { //AML or Sanctions hits\n\t\t\t\t\"totalHits\": 1, \n\t\t\t\t\"amlTypeLists\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"amlType\": \"pep-class-1\",\n\t\t\t\t\t\t\"listHits\": 1,\n\t\t\t\t\t\t\"fields\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"source\": \"europe-sanction-list\",\n\t\t\t\t\t\t\t\t\"name\": \"TestName\",\n\t\t\t\t\t\t\t\t\"value\": \"TestValue\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"matchDataType\": null //not suported at this time\n\t\t}\n\t},\n\t\"errorResponse\": null\n}" '400': description: '400' content: application/json: examples: Result: value: "{\n\t\"data\": null,\n\t\"errorResponse\": {\n\t\t\"timestamp\": \"2023-08-30T04:43:56.286644803Z\",\n\t\t\"httpStatus\": 200,\n\t\t\"errorData\": [\n\t\t\t{\n\t\t\t\t\"errorCode\": \"131-400-110-004\",\n\t\t\t\t\"message\": \"Subscriber is not found on the required whitelist. - \"\n\t\t\t}\n\t\t],\n\t\t\"path\": \"POST /services/identity\"\n\t}\n}" schema: type: object properties: data: {} errorResponse: type: object properties: timestamp: type: string example: '2023-08-30T04:43:56.286644803Z' httpStatus: type: integer example: 200 default: 0 errorData: type: array items: type: object properties: errorCode: type: string example: 131-400-110-004 message: type: string example: 'Subscriber is not found on the required whitelist. - ' path: type: string example: POST /services/identity deprecated: false security: - x-api-key: [] tags: - Verify components: securitySchemes: basic: type: http scheme: basic x-api-key: type: apiKey in: header name: x-api-key