Coinme Verify API

The Verify API from Coinme — 1 operation(s) for verify.

OpenAPI Specification

coinme-verify-api-openapi.yml Raw ↑
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\": \"<<UUID>>\",\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\": \"<<payfoneAliasId>>\",\n\t\t\t\"phoneNumber\": \"<<inputPhoneNumber>>\",\n\t\t\t\"lineType\": \"Landline\",\n\t\t\t\"carrier\": \"<<carrier>>\",\n\t\t\t\"countryCode\": \"US\",\n\t\t\t\"reasonCodes\": [\n\t\t\t<<List of 2-digit reason codes>>\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