> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synctera.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a verification

> Upload evidence of an externally performed KYC/KYB. 

You may use your own KYC/KYB provider and upload evidence of those results instead of using one of Synctera's providers.

Verifying a personal customer requires that the following fields already be set:
* `first_name`
* `last_name`
* `dob`
* `email` or `phone_number`
* `legal_address`
* `shippings_address`
* `ssn` or at least one other identifier in `personal_ids`

Verifying a business customer requires that the following fields already be set:
* `entity_name`
* `legal_address`
* `email` or `phone_number`
* `ein` not required for sole proprietorships

Please refer to https://learn.synctera.com/docs/using-your-own-kyc-vendor for more details using external KYC/KYB.




## OpenAPI

````yaml openapi-v2.json post /verifications
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 API
  version: v2
servers:
  - description: Production
    url: https://api.synctera.com/v2
  - description: Sandbox (no real world financial impact)
    url: https://api-sandbox.synctera.com/v2
security:
  - bearerAuth: []
tags:
  - description: Request to create and manage statements
    name: Statements
  - description: Create and manage Cash Order and Cash Deposit transfers
    name: Cash Orders and Deposits (alpha)
  - description: Create and manage sweep configurations
    name: Configs
  - description: Requests to generate simulated transactions
    name: Cash Transaction Simulations (alpha)
  - description: >-
      Testing endpoints to simulate in-store cash deposits. Available in sandbox
      environments only.
    name: In-Store Cash Deposit Simulations
  - description: Create and manage barcodes for in-store cash deposits
    name: In-Store Cash Deposits
  - description: Request to create and manage edd
    name: Trust
  - description: Requests to calculate and manage CRR
    name: CRR
  - description: Requests to issue and manage cards
    name: Cards
  - description: Push and pull from cards
    name: External Cards
  - description: Bulk card issuance
    name: Bulk Issuance
  - description: Requests to generate simulated transactions
    name: Card Transaction Simulations
  - description: Requests to generate simulated webhooks
    name: Card Webhook Simulations
  - description: Requests to create and manage card disputes
    name: Card Disputes
  - description: Requests to simulate card payments
    name: Card Simulations
  - description: Create and manage accounts
    name: Accounts
  - description: Create and manage holds
    name: Hold
  - description: Create and manage transactions
    name: Transactions
  - description: Create and manage transactions
    name: Transactions (internal)
  - description: Create and manage scheduled transactions
    name: Scheduled Transactions (internal)
  - description: Create and manage spending controls
    name: Spend Controls
  - description: Create and manage tenant configurations
    name: Tenant Configs
  - description: Lookup merchant information
    name: Merchants
  - description: See balance history
    name: BalanceHistory
  - description: API for effective balances
    name: effective_balances
  - description: Transaction lines API
    name: transactions
  - description: Create and manage transactions
    name: Transactions (beta)
  - description: Create and manage spending controls
    name: Spend Controls (beta)
  - description: |
      Requests to create and manage fees
    name: Fees (beta)
  - description: |
      Requests to create and manage Rewards
    name: Rewards (beta)
  - description: Create and manage disputes
    name: Disputes
  - description: Create and manage tenant-level transaction limits
    name: Tenant Limits (beta)
  - description: |
      Requests to create and manage batch payments
    name: Batch Payments (alpha)
  - description: Manage negative balance processes
    name: Negative Balance
  - description: |
      Manage fee products and fee configs for automated fee collection
    name: Fee Products
  - description: |
      Manage reward products and reward configs for automated cashback rewards
    name: Reward Products
  - description: Request to create and manage deposits using remote deposit capture
    name: Remote Check Deposit
  - description: Request to create and manage rdc configurations
    name: RDC Config
  - description: Create and manage Synctera Pay templates
    name: SyncteraPay
  - description: Apple Pay APIs
    name: Apple Pay
  - description: Create a credit application.
    name: Applications (beta)
  - description: Billing period summaries
    name: Billing Period Summaries
  - description: Customer Service Details for disputes and billing inquiries
    name: Customer Service Details
  - description: Billing rates
    name: Billing Rates
  - description: Rates
    name: Rates
  - description: Lending Config
    name: Lending Config
  - description: Manage credit disputes
    name: Credit Disputes
  - description: Payments related to lending accounts
    name: Payments
  - description: Tenant Config
    name: Tenant Config
  - description: Bank Delinquency Configuration
    name: Bank Delinquency Configuration
  - description: >-
      Per bank/partner account-type mapping to FFIEC collateral codes used for
      regulatory call report furnishment.
    name: Collateral Code Configuration
  - description: >-
      Rules that map a posted payment transaction (bank/partner + transaction
      attributes) to a regulatory payment code. NULL match columns act as
      wildcards.
    name: Payment Code Configuration
  - description: Autopay configuration management for lending accounts
    name: Autopay Configs
  - description: Autopay payment records for billing periods
    name: Autopays
  - description: Configuration for mapping LoanPro events to Payola transaction parameters
    name: LoanPro Transaction Event Config
  - description: >-
      Aggregated write-off amounts for lending accounts, computed from posted
      transactions.
    name: Write Off Amounts
  - description: Create and manage wire transfers
    name: Wires
  - description: Simulate receiving Wire transactions and returns
    name: Wire Transaction Simulations
  - description: >-
      Create and manage same currency and multi-currency international wire
      transfers
    name: International Wires (alpha)
  - description: Requests for risk evaluation and decisioning
    name: Risk Evaluations
  - description: Requests for transaction risk detection
    name: Transaction risk
  - description: Configuration and management of transaction monitoring rules
    name: Transaction Monitoring
  - description: Request to create and manage payment_schedules
    name: Cronut
  - description: Create and manage EFT Canada transfers
    name: EFT Canada (Beta)
  - description: FDX authentication and data transfer using Plaid Core Exchange
    name: Plaid Core Exchange (beta)
  - description: Configure vendor secrets for egress requests
    name: Egress Gateway Vendor Secret CRUD API
  - description: Configure webhook secrets for egress requests
    name: Egress Gateway Webhook Secret CRUD API
  - description: Account Template
    name: Account Templates
  - description: >-
      Account programs define configurations for payment rails and transaction
      capabilities across different account types.
    name: Account Programs
  - description: Requests to create and manage account products, including fees, interest.
    name: Account Products
  - description: |
      The internal account resource is used for managing links to internal
      accounts where the funds are managed by integrators.
    name: Internal Accounts
  - description: Requests to create and manage API keys
    name: API Keys
  - description: Requests to manage banks
    name: Banks
  - description: Requests to create and manage customers
    name: Customers
  - description: >
      A natural person (individual human) that is relevant to the Synctera
      platform in some way: e.g. a personal customer or a director/officer/owner
      of a business.
    name: Persons
  - description: >
      A legal entity (corporation, partnership, etc.) that is relevant to the
      Synctera platform in some way: a business customer or some other
      organization that has an ownership share in such a business customer.
    name: Businesses
  - description: >
      The fintech profile document resource is used to track the approval status
      of any documents

      which must be reviewed by a bank. This includes regulatory documents which
      will be presented

      to the fintech's end users, and also any documents that help the bank
      understand the

      fintech's fitness for duty.
    name: Fintech Profile
  - description: |
      The disclosures resource is used to track the status of disclosures and
      ensure that all parties have been shown the necessary disclosures to meet
      regulatory obligations.
    name: Disclosures
  - description: |
      The Disclosures resource is used to track the status of disclosures and
      ensure that customers have been shown the necessary disclosures to meet
      regulatory obligations.
    name: Disclosures (deprecated)
  - description: |
      The External Account resource is used for managing links to accounts
      that operate outside of the Synctera ecosystem.
    name: External Accounts
  - description: History
    name: History
  - description: Requests to initiate customer verification.
    name: KYC Verification (deprecated)
  - description: Requests to initiate customer verification.
    name: KYC/KYB Verifications
  - description: Requests to screen parties against sanctions watchlists
    name: Sanctions Screening
  - description: Requests to manage monitoring subscriptions and alerts for customers.
    name: Monitoring
  - description: Requests to manage partners
    name: Partners
  - description: Request to create and manage party groups and party group members
    name: Party Groups
  - description: Requests to create and manage roles
    name: Roles
  - description: >
      Represents the relationships between parties. A relationship can exist
      between personal customers, business customers, or non-customer
      persons/organizations.
    name: Relationships
  - description: Request to create and manage users
    name: Users
  - description: Request to enroll, renew, or cancel watchlist monitors
    name: Watchlist (deprecated)
  - description: Retrieve user identity information
    name: Identity
  - description: Endpoints for modifying or fetching posting dates
    name: Posting Dates
  - description: Admin API for Middesk configuration using the tenants API keys.
    name: Middesk
  - description: Requests to search and manage compliance searches
    name: Compliance Searches
  - description: Requests to configure vendors.
    name: Vendor Configurations
  - description: Requests to create and manage notes
    name: Notes
  - description: >
      Represents the compliance rules that are used to verify certain kinds of
      money movement.
    name: Compliance Rules
  - description: Requests to create licenses
    name: Licenses
  - description: >-
      Used to configure bank accounts for which synctera accounts are considered
      a "subledger" to
    name: Bank Account
  - description: Requests to search financial institutions
    name: Institutions (Beta)
  - description: Requests to manage addresses
    name: Addresses
  - description: Requests to Admins to grant permissions to user
    name: Request Permissions
  - description: Manage contacts for bank and fintech partners
    name: Contacts
  - description: Requests to create and manage personal ID configurations
    name: Personal ID Configuration
  - description: >-
      Migration mappings associate resources from an old tenant identity with a
      new tenant identity.
    name: Migration Mappings
  - description: Create and manage payments
    name: ACH
  - description: Simulate receiving ACH transactions and returns
    name: ACH Transaction Simulations
  - description: Requests to create and manage webhooks
    name: Webhooks
  - description: Create and manage documents.
    name: Documents
paths:
  /verifications:
    post:
      tags:
        - KYC/KYB Verifications
      summary: Create a verification
      description: >
        Upload evidence of an externally performed KYC/KYB. 


        You may use your own KYC/KYB provider and upload evidence of those
        results instead of using one of Synctera's providers.


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

        * `first_name`

        * `last_name`

        * `dob`

        * `email` or `phone_number`

        * `legal_address`

        * `shippings_address`

        * `ssn` or at least one other identifier in `personal_ids`


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

        * `entity_name`

        * `legal_address`

        * `email` or `phone_number`

        * `ein` not required for sole proprietorships


        Please refer to
        https://learn.synctera.com/docs/using-your-own-kyc-vendor for more
        details using external KYC/KYB.
      operationId: createVerification
      parameters:
        - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/verification'
        description: Verification result to create.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/verification'
          description: Created verification.
        '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'
components:
  parameters:
    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. A
        different key must be used for each request, unless it is a retry.
      in: header
      name: Idempotency-Key
      schema:
        example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
        type: string
  schemas:
    verification:
      allOf:
        - required:
            - verification_type
            - verification_time
            - result
        - properties:
            business_id:
              $ref: '#/components/schemas/business_id'
            creation_time:
              description: The date and time the resource was created.
              example: '2010-05-06T12:23:34.321Z'
              format: date-time
              readOnly: true
              type: string
            customer_initiated:
              description: >
                Indicates whether the verification was initiated by the
                customer.
              readOnly: true
              type: boolean
            details:
              $ref: '#/components/schemas/details'
            id:
              description: Unique ID for this verification result.
              example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
              format: uuid
              readOnly: true
              type: string
            last_updated_time:
              description: The date and time the resource was last updated.
              example: '2010-05-06T12:23:34.321Z'
              format: date-time
              readOnly: true
              type: string
            metadata:
              $ref: '#/components/schemas/metadata'
            person_id:
              $ref: '#/components/schemas/person_id'
            result:
              $ref: '#/components/schemas/verification_result'
            vendor_info:
              $ref: '#/components/schemas/vendor_info3'
            verification_time:
              description: The date and time the verification was completed.
              format: date-time
              type: string
            verification_type:
              $ref: '#/components/schemas/verification_type'
          type: object
      description: Verification result.
      type: object
    business_id:
      description: >
        Unique ID for the business. Exactly one of `business_id` or `person_id`
        must be set.
      example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
      format: uuid
      type: string
    details:
      description: >
        A list of individual checks done as part of the due diligence process
        for the verification type.
      items:
        $ref: '#/components/schemas/detail'
      type: array
    metadata:
      description: >
        Optional field to store additional information about the resource.
        Intended to be used by the integrator to store non-sensitive data.
      type: object
    person_id:
      description: >
        Unique ID for the person. Exactly one of `person_id` or `business_id`
        must be set.
      example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
      format: uuid
      type: string
    verification_result:
      description: >
        The determination of this verification. One of the following:

        * `UNVERIFIED` – record representing the absence of a verification.

        * `PENDING` – verification is in progress for this customer.

        * `PROVISIONAL` – partially verified or verified with restrictions.

        * `ACCEPTED` – the customer has been verified.

        * `REVIEW` – verification has run and issues have been identified and
        require review.

        * `VENDOR_ERROR` – verification did not successfully run due to an
        unexpected error or failure.

        * `REJECTED` – the customer was rejected and should not be allowed to
        take certain actions e.g., open an account.
      enum:
        - UNVERIFIED
        - PENDING
        - PROVISIONAL
        - ACCEPTED
        - REVIEW
        - VENDOR_ERROR
        - REJECTED
      example: ACCEPTED
      type: string
    vendor_info3:
      description: >
        The information provided to Synctera from the vendor. Interpretation of
        this object is up to the client.
      discriminator:
        mapping:
          application/json:
            $ref: '#/components/schemas/vendor_json'
          text/xml:
            $ref: '#/components/schemas/vendor_xml'
        propertyName: content_type
      oneOf:
        - $ref: '#/components/schemas/vendor_json'
        - $ref: '#/components/schemas/vendor_xml'
      title: Vendor Info
      type: object
    verification_type:
      description: |
        The verification run on the customer. One the following:
          * `IDENTITY` – verify that the information provided is associated with the identity of a real person or business.
          * `WATCHLIST` – checks watchlists for known fraud, money laundering, and other suspicious activity.
          * `DOCUMENT_VERIFICATION` – verifies the authenticity of a document, such as a driver's license, or other government-issued identification document.
          * `RELATED_ENTITIES` – represents dependent verification checks for related parties (e.g. all beneficial owners must pass KYC for a business to pass KYB).
          * `MANUAL_REVIEW` – represents the outcome of a manual review of the verification done on a party (note: overrides the outcome of other verification types).
          * `LICENSE` – represents the outcome of a license verification.
      enum:
        - IDENTITY
        - WATCHLIST
        - DOCUMENT_VERIFICATION
        - RELATED_ENTITIES
        - MANUAL_REVIEW
        - LICENSE
      example: IDENTITY
      type: string
    error:
      description: >-
        Synctera error responses in API v0 follow [RFC
        7807](https://datatracker.ietf.org/doc/html/rfc7807). Following that
        standard, the field for a machine-readable "error code" in API v0 is
        `type`.

        In our future API v1, we are phasing out RFC 7807 and adopting a custom
        error format. That format will be documented in our API v1 spec. But you
        may see some v0 error responses with a machine-readable `code` field
        while we are making the transition from v0 to v1.
      properties:
        code:
          description: >-
            An optional “sneak preview” of our future API v1 error responses.
            This is provided to give integrators a chance to work with our
            future error codes. Error codes for the same error may change
            between v0 and v1.
          example: BAD_REQUEST_BODY
          type: string
        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, which
            corresponds 1-to-1 with error types (`title` is the human-readable
            version of `type`). There can be multiple distinct titles for the
            same HTTP status code, and the same `title` can result in many
            different `detail` strings.

            This field will be removed in API v1.
          example: Bad Request Body
          type: string
        type:
          description: >
            A machine-readable string that identifies the error for programmatic
            use. This is a URI, i.e. a globally unique identifier. It is _not_
            necessarily a URL, so do not expect it to resolve to a web page. You
            can use this whole string as an error code, or just everything after
            the last slash.

            This field will be removed in API v1.
          example: https://dev.synctera.com/errors/bad-request-body
          type: string
      title: Standard error response (RFC 7807 problem report)
      type: object
    detail:
      description: An object containing information about an individual check performed.
      properties:
        category:
          description: >
            Machine-readable identifier to allow grouping details into subsets.


            Checks for the following categories should typcially be provided
            when onboarding personal customers:

            * `CIP` – Checks relating to a Customer Identification Program (CIP)
            including name, ID verification, and date of birth.

            * `ADDRESS` – Address check done either through a bureau or document
            verification.

            * `PHONE` – Phone checks, including verifying number and other
            correlation methods.

            * `EMAIL` – Email checks, including verifying email address and
            other correlation methods.

            * `FRAUD` – Checks relating to elements of fraud.

            * `SYNTHETIC` – Check relating to elements of synthetic identity.

            * `DEVICE` – Checks relating to elements of device risk. Can include
            SDK or IP screening.

            * `DOC_VERIFICATION` – Document Verification checks, where ID
            documents are submitted for verification, including liveness test,
            or other anti-forgery verification.

            * `SELFIE_CAPTURE` – Selfie capture check, including liveness test,
            or other anti-fake verification.

            * `SELFIE_DOCUMENT` – Check if selfie matches with photo on
            document.

            * `DOC_DETAILS` – Check if details on ID documents matches with
            supplied information.

            * `WATCHLIST` – Outcome from watchlist screenings (especially
            OFAC/SDN and other sanctions lists).


            Checks for the following categories should typcially be provided
            when onboarding businesses customers:

            * `BUSINESS_NAME` – Business name check done against a bureau.

            * `OFFICE_ADDRESS` – Address check done either through a bureau or
            document verification.

            * `SOS_FILINGS` – Findings from a Secretary of State (SOS) filings
            check.

            * `WEBSITE` – Business website check.

            * `TIN_MATCH` – Taxpayer Identification Number (TIN) check from tax
            bureau.

            * `BANKRUPTCIES` – Check for any bankruptcy filings.

            * `SOS_DOMESTIC` – Outcome from a Domestic Secretary of State (SOS)
            filings check

            * `LICENSE` –

            * `WATCHLIST` – Outcome from watchlist screenings (especially
            OFAC/SDN and other sanctions lists).


            If you would like to provide additional information that doesn't fit
            with an existing category you may provide:

            * `OTHER` – A category for miscellaneous or uncategorized checks.
          enum:
            - WATCHLIST
            - CIP
            - ADDRESS
            - PHONE
            - EMAIL
            - FRAUD
            - SYNTHETIC
            - DEVICE
            - DOC_VERIFICATION
            - SELFIE_CAPTURE
            - SELFIE_DOCUMENT
            - DOC_DETAILS
            - BUSINESS_NAME
            - OFFICE_ADDRESS
            - SOS_FILINGS
            - WEBSITE
            - TIN_MATCH
            - BANKRUPTCIES
            - SOS_DOMESTIC
            - LICENSE
            - OTHER
          type: string
        description:
          description: Human-readable description explaining the individual check.
          example: Email address is correlated with the individual's name
          type: string
        label:
          description: >-
            Human-readable grouping describing the aspect of the customer's
            identity examined by this check.
          example: Email
          readOnly: true
          type: string
        result:
          description: >
            The result of the individual check. One of the following:

            * `PASS` – the check passed contributing to a positive outcome (or
            accepted verification result).

            * `INFO` – the check returned neutral information which may or may
            not explain a negative result.

            * `WARN` – the check was inconclusive and might require review.

            * `FAIL` – the check failed and might result in a failing outcome
            (or rejected verification_result).
          enum:
            - PASS
            - INFO
            - WARN
            - FAIL
          example: PASS
          type: string
        score:
          description: >-
            An arbitrary floating point score value which may be used to
            contextualize the human readable description.
          example: 0.25
          format: double
          type: number
        url:
          description: A URL containing supporting information for this individual check.
          example: http://example.com/additional-information
          type: string
        vendor_code:
          description: >-
            Machine-readable description of the individual check. This field
            contains vendor-specific terms and may not be populated in all
            cases.
          example: R940
          type: string
      type: object
    vendor_json:
      properties:
        content_type:
          description: Describes the content-type encoding received from the vendor
          enum:
            - application/json
          type: string
        json:
          description: Data representation in JSON
          type: object
        vendor:
          example: SOCURE
          type: string
      required:
        - vendor
        - content_type
        - json
    vendor_xml:
      properties:
        content_type:
          description: Describes the content-type encoding received from the vendor
          enum:
            - text/xml
          type: string
        vendor:
          example: IDOLOGY
          type: string
        xml:
          description: Data representaion in XML
          type: string
      required:
        - vendor
        - content_type
        - xml
  responses:
    bad_request:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: BadRequest
    unauthorized:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Unauthorized
    forbidden:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Forbidden error
    not_found:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Resource not found
    internal_server_error:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Internal server error
  securitySchemes:
    bearerAuth:
      bearerFormat: api_key
      scheme: bearer
      type: http

````