Synctera KYC Verification API

Requests to initiate customer verification.

OpenAPI Specification

synctera-kyc-verification-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: '<h2>Let''s build something great.</h2><p>Welcome to the official reference documentation for Synctera APIs. Our APIs are the best way to automate your company''s banking needs and are designed to be easy to understand and implement.</p><p>We''re continuously growing this library and what you see here is just the start, but if you need something specific or have a question, <a class=''text-blue-600'' href=''https://synctera.com/contact'' target=''_blank'' rel=''noreferrer''>contact us</a>.</p>

    '
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: Synctera Accounts KYC Verification API
  version: 0.20.0
servers:
- description: Production
  url: https://api.synctera.com/v0
- description: Sandbox (no real world financial impact)
  url: https://api-sandbox.synctera.com/v0
security:
- bearerAuth: []
tags:
- description: Requests to initiate customer verification.
  name: KYC Verification
paths:
  /customers/{customer_id}/verifications:
    get:
      deprecated: true
      description: 'List verification results.


        This endpoint will be removed in API v1. Use `GET /v0/verifications?customer_id={customer_id}` instead.

        '
      operationId: listVerifications
      parameters:
      - $ref: '#/components/parameters/customer_id_path'
      - $ref: '#/components/parameters/include_history'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page_token'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer_verification_result_list'
          description: List of customer verification results.
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: List verification results
      tags:
      - KYC Verification
      x-external: true
      x-status: deprecated
    post:
      deprecated: true
      description: 'Create a verification result for a customer.

        This endpoint will be removed in API v1. Use `POST /v0/verifications` instead.

        '
      operationId: createCustomerVerificationResult
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      - $ref: '#/components/parameters/customer_id_path'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customer_verification_result'
        description: Customer verification result to create.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer_verification_result'
          description: Created customer verification result.
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Create a customer verification result
      tags:
      - KYC Verification
      x-external: true
      x-status: deprecated
  /customers/{customer_id}/verifications/{verification_id}:
    get:
      deprecated: true
      description: 'Get verification result by ID.


        This endpoint will be removed in API v1. Use `GET /v0/verifications/{verification_id}` instead.

        '
      operationId: getVerification
      parameters:
      - $ref: '#/components/parameters/customer_id_path'
      - $ref: '#/components/parameters/verification_id'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer_verification_result'
          description: Verification result.
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Get verification result
      tags:
      - KYC Verification
      x-external: true
      x-status: deprecated
  /customers/{customer_id}/verify:
    post:
      deprecated: true
      description: 'Initiate identity verification for a customer and run the specified identity checks.


        Verifying a personal customer requires that the following fields already be set:

        * `first_name`

        * `last_name`

        * `dob`

        * `email`

        * `phone_number`

        * `legal_address`

        * `ssn`


        This endpoint will be removed in API v1. Use `POST /v0/verifications/verify` instead.

        '
      operationId: verifyCustomer
      parameters:
      - $ref: '#/components/parameters/idempotency_key'
      - $ref: '#/components/parameters/customer_id_path'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customer_verification'
        description: Customer verification request.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer_verify_response'
          description: Customer verification result.
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/not_found'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Verify a customer's identity
      tags:
      - KYC Verification
      x-external: true
      x-status: deprecated
components:
  schemas:
    raw_response:
      deprecated: true
      properties:
        provider:
          $ref: '#/components/schemas/provider_type'
        raw_data:
          description: Raw data from an external provider, as a JSON string.
          example: '{}'
          type: string
      title: Raw response from providers.
      type: object
    verification_vendor_info:
      description: 'The information provided to Synctera from the vendor. Interpretation of this object is up to the client.

        '
      discriminator:
        mapping:
          application/json: '#/components/schemas/verification_vendor_json'
          text/xml: '#/components/schemas/verification_vendor_xml'
        propertyName: content_type
      oneOf:
      - $ref: '#/components/schemas/verification_vendor_json'
      - $ref: '#/components/schemas/verification_vendor_xml'
      type: object
    customer_verify_response:
      allOf:
      - properties:
          kyc_status:
            $ref: '#/components/schemas/customer_kyc_status'
          verifications:
            description: Array of verification results.
            items:
              $ref: '#/components/schemas/customer_verification_result'
            type: array
        required:
        - kyc_status
        - verifications
        type: object
      - $ref: '#/components/schemas/paginated_response'
    verification_type:
      description: The type of check run on the customer.
      enum:
      - fraud
      - synthetic
      - emailrisk
      - phonerisk
      - addressrisk
      - kyc
      - social
      - watchliststandard
      - watchlistpremier
      - watchlistplus
      - documentverification
      - alertlist
      - decision
      example: kyc
      type: string
    customer_verification:
      example:
        customer_consent: true
        customer_ip_address: 66.152.213.183
      properties:
        customer_consent:
          description: 'Whether this customer has consented to a KYC check.

            '
          type: boolean
        customer_ip_address:
          description: IP address of the customer being verified.
          example: 75.216.112.104
          pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
          type: string
        document_id:
          description: 'The ID of the uploaded government-issued identification document provided by the Socure SDK.

            '
          example: 1ab2c3de-fg45-6789-a01b-23c45678defg
          type: string
        verification_type:
          description: 'List of possible checks to run on a customer. This is a legacy field that is now ignored.

            '
          items:
            $ref: '#/components/schemas/verification_type'
          type: array
      required:
      - customer_consent
      title: PersonVerification
      type: object
    customer_verification_result_list:
      allOf:
      - properties:
          verifications:
            description: Array of verification results.
            items:
              $ref: '#/components/schemas/customer_verification_result'
            type: array
        required:
        - verifications
        type: object
      - $ref: '#/components/schemas/paginated_response'
    provider_type:
      description: Name of the organization that provided this data.
      enum:
      - IDOLOGY
      - SOCURE
      example: SOCURE
      type: string
    customer_verification_result:
      description: Verification result
      properties:
        id:
          description: Unique ID for this verification result.
          example: 54cb1031-4a63-4dee-b6f7-458f267d4676
          format: uuid
          readOnly: true
          type: string
        issues:
          deprecated: true
          description: 'List of potential problems found. These are subject to change.

            '
          items:
            example: 'R186: Global Watchlist sources selected are correlated with the input identifiers'
            type: string
          readOnly: true
          type: array
        raw_response:
          $ref: '#/components/schemas/raw_response'
        result:
          description: The determination of this verification.
          enum:
          - ACCEPTED
          - REJECTED
          - REVIEW
          - PROVIDER_FAILURE
          - PROVISIONAL
          example: ACCEPTED
          type: string
        vendor_info:
          $ref: '#/components/schemas/verification_vendor_info'
        verification_time:
          description: The date and time the verification was completed.
          format: date-time
          type: string
        verification_type:
          $ref: '#/components/schemas/verification_type'
      required:
      - verification_type
      - result
      - verification_time
      title: CustomerVerificationResult
      type: object
    customer_kyc_status:
      description: Customer's KYC status
      enum:
      - UNVERIFIED
      - REVIEW
      - PROVIDER_FAILURE
      - ACCEPTED
      - REJECTED
      - PROVISIONAL
      type: string
    verification_vendor_json:
      properties:
        content_type:
          description: Describes the content-type encoding received from the vendor.
          enum:
          - application/json
          type: string
        details:
          description: Array of vendor specific information.
          items:
            $ref: '#/components/schemas/verification_vendor_info_detail'
          readOnly: true
          type: array
        json:
          description: Data representation in JSON.
          type: object
        vendor:
          description: Name of the vendor used.
          example: SOCURE
          type: string
      required:
      - vendor
      - content_type
      - json
    error:
      properties:
        detail:
          description: a human-readable string explaining this particular error
          example: 'missing required fields: first_name, dob'
          type: string
        status:
          description: the HTTP status code for this response
          example: 400
          type: integer
        title:
          description: a human-readable string for this general category of error
          example: Bad Request Body
          type: string
        type:
          description: a URI that identifies this general category of error
          example: https://dev.synctera.com/errors/bad-request-body
          type: string
      title: Standard error response (RFC 7807 problem report)
      type: object
    verification_vendor_info_detail:
      properties:
        code:
          description: Vendor specific code.
          example: R186
          type: string
        description:
          description: Description of vendor specific code.
          example: Global Watchlist sources selected are correlated with the input identifiers
          type: string
      type: object
    paginated_response:
      properties:
        next_page_token:
          description: If returned, use the next_page_token to query for the next page of results. Not returned if there are no more rows.
          example: d61grelm5f
          type: string
      title: Paginated List response
      type: object
    customer_id:
      example: 4605deb4-3f8d-4566-9bf1-0dc558b63258
      format: uuid
      type: string
    verification_vendor_xml:
      properties:
        content_type:
          description: Describes the content-type encoding received from the vendor.
          enum:
          - text/xml
          type: string
        details:
          description: Array of vendor specific information.
          items:
            $ref: '#/components/schemas/verification_vendor_info_detail'
          readOnly: true
          type: array
        vendor:
          description: Name of the vendor used.
          example: IDOLOGY
          type: string
        xml:
          description: Data representaion in XML.
          type: string
      required:
      - vendor
      - content_type
      - xml
  parameters:
    page_token:
      in: query
      name: page_token
      required: false
      schema:
        description: Optional pagination token to be provided to retrieve subsequent pages, returned from previous get
        example: h50ffqz9q5
        type: string
      x-external: true
    verification_id:
      description: Unique identifier for the verification.
      in: path
      name: verification_id
      required: true
      schema:
        example: 50653b5a-fba5-4e95-aef3-819414206d61
        format: uuid
        type: string
    customer_id_path:
      description: The customer's unique identifier
      in: path
      name: customer_id
      required: true
      schema:
        $ref: '#/components/schemas/customer_id'
    limit:
      in: query
      name: limit
      required: false
      schema:
        default: 100
        description: 'Maximum number of objects to return per page. If the limit is greater than 100, then it will be set to 100.

          '
        example: 100
        minimum: 1
        type: integer
      x-external: true
    include_history:
      description: If true, include old (inactive) records as well.
      in: query
      name: include_history
      required: false
      schema:
        default: false
        type: boolean
      x-external: true
    idempotency_key:
      description: An idempotency key is an arbitrary unique value generated by client to detect subsequent retries of the same request. It is recommended that a UUID or a similar random identifier be used as an idempotency key
      in: header
      name: Idempotency-Key
      required: false
      schema:
        example: df122e6f-2ba8-48a5-9508-4350bba5f27e
        type: string
      x-external: true
  responses:
    not_found:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Resource not found
    bad_request:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: BadRequest
    forbidden:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Forbidden error
    internal_server_error:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Internal server error
    unauthorized:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Unauthorized
  securitySchemes:
    bearerAuth:
      bearerFormat: api_key
      scheme: bearer
      type: http
x-readme:
  explorer-enabled: true
  proxy-enabled: true
  samples-enabled: true