Truework Webhooks

Truework emits two webhook event types — `order.completed` when every verification on an order is finished, and `verification_request.state.change` as individual verifications transition through pending-approval, processing, action-required, completed, canceled, and invalid. Each webhook destination is associated with a token delivered in the `X-Truework-Token` header so receivers can authenticate the call. Failed deliveries are retried periodically for up to 48 hours. Accounts may register up to 10 webhook destinations.

Truework Webhooks is one of 5 APIs that Truework publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Webhooks and Events. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

truework-webhooks-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Truework Webhooks
  description: >
    Webhook event reference for Truework. Subscribers receive `order.completed` events when
    every verification on an order has finished, and `verification_request.state.change`
    events as individual verifications transition through their state machine
    (pending-approval, processing, action-required, completed, canceled, invalid). Each
    webhook instance is associated with a token delivered in the `X-Truework-Token` header
    so handlers can authenticate the call.
  version: 2023-10-30
  contact:
    name: Truework Implementations
    email: [email protected]
    url: https://www.truework.com/docs/api-reference/webhooks
  license:
    name: Truework Terms of Service
    url: https://www.truework.com/legal/terms
servers:
  - url: https://your-webhook-handler.example.com
    description: Customer-hosted webhook handler endpoint
paths: {}
webhooks:
  order-completed:
    post:
      operationId: order-completed
      summary: Order Completed
      description: >-
        This webhook will be issued when all verifications associated with the order have been completed or canceled.
        Once you receive this webhook you can fetch the order results from the API.
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: string
                  description: The version of the webhook payload
                hook:
                  $ref: '#/components/schemas/OrderCompletedPostPayloadContentApplicationJsonSchemaHook'
                data:
                  $ref: '#/components/schemas/OrderCompletedPostPayloadContentApplicationJsonSchemaData'
  verification-request-state-change:
    post:
      operationId: verification-request-state-change
      summary: Verification Request State Change
      description: >-
        This webhook will be issued when a verification request in an order changes state. A `completed` state indicates
        that new data is now available on the order. A `canceled` state indicates that a verification was not able to be
        completed, but may have applicant-provided information and/or documents.
      responses:
        '200':
          description: Webhook received successfully
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                version:
                  type: string
                  description: The version of the webhook payload
                hook:
                  $ref: '#/components/schemas/VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaHook'
                data:
                  $ref: '#/components/schemas/VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaData'
components:
  schemas:
    OrderCompletedPostPayloadContentApplicationJsonSchemaHookEvent:
      type: string
      enum:
        - order.completed
      description: The event that triggered the webhook
      title: OrderCompletedPostPayloadContentApplicationJsonSchemaHookEvent
    OrderCompletedPostPayloadContentApplicationJsonSchemaHook:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the webhook
        event:
          $ref: '#/components/schemas/OrderCompletedPostPayloadContentApplicationJsonSchemaHookEvent'
          description: The event that triggered the webhook
        target:
          type: string
          description: The target of the webhook
        triggered_at:
          type: string
          format: date-time
          description: Date and time of the event that triggered the webhook
      title: OrderCompletedPostPayloadContentApplicationJsonSchemaHook
    OrderCompletedPostPayloadContentApplicationJsonSchemaDataMetadata:
      type: object
      properties: {}
      title: OrderCompletedPostPayloadContentApplicationJsonSchemaDataMetadata
    OrderCompletedPostPayloadContentApplicationJsonSchemaData:
      type: object
      properties:
        order_id:
          type: string
          description: The ID of the order that was completed
        metadata:
          $ref: '#/components/schemas/OrderCompletedPostPayloadContentApplicationJsonSchemaDataMetadata'
      title: OrderCompletedPostPayloadContentApplicationJsonSchemaData
    VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaHookEvent:
      type: string
      enum:
        - verification_request.state.change
      description: The event that triggered the webhook
      title: VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaHookEvent
    VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaHook:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the webhook
        event:
          $ref: '#/components/schemas/VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaHookEvent'
          description: The event that triggered the webhook
        target:
          type: string
          description: The target of the webhook
        triggered_at:
          type: string
          format: date-time
          description: Date and time of the event that triggered the webhook
      title: VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaHook
    VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaDataState:
      type: string
      enum:
        - pending-approval
        - processing
        - action-requred
        - completed
        - canceled
        - invalid
      title: VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaDataState
    VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaDataMetadata:
      type: object
      properties: {}
      title: VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaDataMetadata
    VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaData:
      type: object
      properties:
        order_id:
          type: string
          description: The ID of the order that contains the verification request
        state:
          $ref: '#/components/schemas/VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaDataState'
        verification_request_id:
          type: string
          description: The ID of the verification request
        credentials_session_token:
          type: string
          description: The ID of the Truework Direct session
        metadata:
          $ref: '#/components/schemas/VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaDataMetadata'
      title: VerificationRequestStateChangePostPayloadContentApplicationJsonSchemaData