Argyle Webhooks API

The Webhooks API from Argyle — 1 operation(s) for webhooks.

OpenAPI Specification

argyle-webhooks-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Argyle Accounts Webhooks API
  version: '2.0'
  description: RESTful API providing user-consented access to payroll and employment data including identities, paystubs, gigs, shifts, vehicles, ratings, payroll documents, and deposit destinations across thousands of employers and gig platforms.
  contact:
    name: Argyle Support
    url: https://docs.argyle.com/
  x-api-id: argyle
  x-audience: public
servers:
- url: https://api.argyle.com
  description: Production
- url: https://api-sandbox.argyle.com
  description: Sandbox
security:
- basicAuth: []
tags:
- name: Webhooks
paths:
  /partners/v2/webhooks:
    post:
      summary: Create webhook subscription
      description: 'Creates a partner webhook subscription for `verifications.updated` or `verifications.creation_failed`.


        For `verifications.updated`, set `config.include_resource = true` to include the full verification object in `data.resource`.'
      tags:
      - Webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerWebhookSubscriptionRequest'
            example:
              events:
              - verifications.updated
              name: name-for-the-webhook-subscription
              url: https://your-webhook-backend.com
              secret: optional-secret
              config:
                include_resource: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/PartnerVerificationWebhookMessage'
                - $ref: '#/components/schemas/PartnerVerificationCreationFailedWebhookMessage'
              examples:
                verifications_updated:
                  summary: Example Webhook Update
                  value:
                    event: verifications.updated
                    name: name-for-the-webhook-subscription
                    data:
                      user: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
                      verification: 43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b
                      client: 39096494-45c8-4fd8-9454-3d1cb2d62db7
                      resource:
                        id: 43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b
                        user: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
                        client: 39096494-45c8-4fd8-9454-3d1cb2d62db7
                        created_at: '2023-03-09T16:22:06.081Z'
                        updated_at: '2023-03-09T16:22:06.081Z'
                        channel: api
                        status:
                          state: COMPLETED
                          code: completed
                          errors: []
                        report:
                          id: 2a14ce6f-3aed-4c15-8ea2-92a17b6edb95
                          type: doc-voi-mortgage
                          file_url: www.argyle.com/storagename/pdf
                          json_url: www.argyle.com/storagename/json
                        employments:
                        - employer: Starbucks
                          status: active
                          hire_date: '2015-08-28'
                          termination_date: null
                        loan:
                          number: '1234'
                          borrower_id: ABC789
                          application_id: '2121313'
                          officer_email: john.doe@mortgage.com
                        billing:
                          cost_center: '5'
                        data_source: documents
                verifications_creation_failed:
                  summary: Example Webhook Delivery
                  value:
                    event: verifications.creation_failed
                    name: name-for-the-webhook-subscription
                    data:
                      user: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
                      client: 39096494-45c8-4fd8-9454-3d1cb2d62db7
                      context:
                        user: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
                        attempted_at: '2023-03-09T16:22:06.081Z'
                        channel: encompass
                        data_source: banking
                        report_type: voa
                        loan:
                          number: '1234'
                          borrower_id: ABC789
                          application_id: '2121313'
                          officer_email: john.doe@mortgage.com
                        billing:
                          cost_center: '5'
components:
  schemas:
    PartnerVerificationReportConfiguration:
      type: object
      description: Optional banking report configurations.
      properties:
        bank_accounts:
          type: array
          items:
            type: string
          description: List of [bank account](/api-reference/bank-accounts) IDs to be included in the report.
        from_date:
          type: string
          format: date-time
          description: 'Restrict report to data from on or after this datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)).


            - `VOAI` reports - controls the length of asset history

            - `VOA` reports - controls the length of asset history

            - `VOI` reports - controls the length of income history

            '
        income_from_date:
          type: string
          format: date-time
          description: 'Restrict report to data from on or after this datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)).


            - `VOAI` reports - controls the length of income history

            - Does not apply to `VOA` or `VOI` reports.

            '
        income_stream_confidence_minimum:
          type: integer
          minimum: 0
          maximum: 100
          description: 'Limit income streams used in the report to those above this confidence value (`0-100` accepted).


            Only available for `VOI` and `VOAI` report types.

            '
        report_custom_fields:
          type: array
          maxItems: 5
          description: Include up to `5` custom objects in the report metadata. Often used for identifying information.
          items:
            $ref: '#/components/schemas/PartnerReportCustomField'
    PartnerReportCustomField:
      type: object
      description: Custom field returned in report JSON as a pass-through value.
      properties:
        label:
          type: string
          description: Custom field name.
        value:
          type: string
          description: Custom field value.
        shown:
          type: boolean
          description: Show custom field on report PDF.
    PartnerWebhookSubscriptionRequest:
      type: object
      properties:
        events:
          type: array
          description: '`verifications.updated` or `verifications.creation_failed`'
          items:
            type: string
            enum:
            - verifications.updated
            - verifications.creation_failed
            example: verifications.updated
        name:
          type: string
          example: name-for-the-webhook-subscription
          description: Your name for the webhook subscription.
        url:
          type: string
          example: https://your-webhook-backend.com
          description: Where you want to receive webhook delivery. Argyle handles URL encoding for webhook URLs. Send the URL in its normal, unencoded form.
        secret:
          type: string
          example: optional-secret
          description: Optional secret used to verify webhooks.
        config:
          type: object
          description: Optional webhook delivery configuration.
          example:
            include_resource: true
      required:
      - events
      - name
      - url
    PartnerVerificationError:
      type: object
      description: Verification error details.
      properties:
        code:
          type: string
          description: Error code.
        title:
          type: string
          description: Error title.
        message:
          type: string
          description: Error message.
        resources:
          type: array
          description: Additional troubleshooting resources (for example, the ID of an unmatched document).
          items:
            $ref: '#/components/schemas/PartnerVerificationErrorResource'
      example:
        code: self-employed_income
        title: Self-employed income
        message: Self-employed income cannot be assessed using Paystub and W2 Data.
        resources:
        - id: null
          type: employments
          name: Freelance Consulting LLC
    PartnerVerificationEmployment:
      type: object
      description: Employment details for the user.
      properties:
        employer:
          type: string
          description: Name of the employer.
        status:
          type: string
          enum:
          - active
          - previous
          description: User's current employment status at this employer.
        hire_date:
          type: string
          format: date
          description: Employment start date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
        termination_date:
          type: string
          format: date
          nullable: true
          description: Employment end date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. `null` when employment `status` is `active`.
    PartnerVerificationCreationFailedContext:
      type: object
      properties:
        user:
          type: string
          format: uuid
          description: ID of the user.
          example: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
        attempted_at:
          type: string
          format: date-time
          description: Time when Argyle attempted to create the verification.
          example: '2023-03-09T16:22:06.081Z'
        channel:
          type: string
          description: Channel where verification creation was attempted.
          example: encompass
        data_source:
          type: string
          description: Data source requested for the verification.
          example: banking
        report_type:
          type: string
          description: Report type requested for the verification.
          example: voa
        loan:
          $ref: '#/components/schemas/PartnerVerificationLoan'
        billing:
          $ref: '#/components/schemas/PartnerVerificationBilling'
    PartnerVerificationLoan:
      type: object
      description: Optional loan details.
      properties:
        number:
          type: string
          description: Loan number or identifier.
        borrower_id:
          type: string
          description: Borrower identifier.
        application_id:
          type: string
          description: Application identifier.
        officer_email:
          type: string
          description: Email of the loan officer requesting the verification.
    PartnerVerificationStatus:
      type: object
      description: Verification status information.
      properties:
        state:
          type: string
          enum:
          - PENDING
          - PROCESSING
          - PAUSED
          - CANCELLED
          - COMPLETED
          description: 'Verification state.


            - `PENDING` - Initial status after verification is created.

            - `PROCESSING` - Verification processing is underway.

            - `PAUSED` - Verification is paused because more data or documents are required.

            - `CANCELLED` - Verification has been cancelled.

            - `COMPLETED` - Verification is complete and report assets are available.

            '
        code:
          type: string
          enum:
          - pending
          - documents_processing
          - more_data_required
          - report_available
          - waiting_on_third_party
          - report_generating
          - argyle_timeout
          - cancelled_by_client
          - completed
          - completed_with_errors
          - user_session_started
          - authenticated
          description: 'Verification status code.


            For `doc-voi-mortgage` report types:

            - `pending` - Verification created.

            - `documents_processing` - Documents processing.

            - `more_data_required` - More data or documents are needed to complete the verification.

            - `report_available` - Data and documents are sufficient to complete verification.

            - `waiting_on_third_party` - Awaiting processing by a third party.

            - `report_generating` - Report is currently generating.

            - `argyle_timeout` - Verification request has been cancelled by Argyle after 180 days of inactivity.

            - `cancelled_by_client` - Verification has been cancelled.

            - `completed` - Verification request complete. Report can be retrieved.

            - `completed_with_errors` - Verification request completed. Report can be retrieved but is not GSE eligible.


            For payroll and banking report types:

            - `pending` - Verification created.

            - `user_session_started` - User opened the payroll or banking connection experience.

            - `authenticated` - User authenticated for payroll or banking; data aggregation is in progress.

            - `completed` - Report is ready for download.'
        errors:
          type: array
          description: 'Error information.


            Error details can explain what caused a `PAUSED` state or prevented GSE eligibility for a `COMPLETED` document verification.

            '
          items:
            $ref: '#/components/schemas/PartnerVerificationError'
    PartnerVerificationWebhookMessage:
      type: object
      properties:
        event:
          type: string
          description: '`verifications.updated`'
          example: verifications.updated
        name:
          type: string
          description: Name used for the webhook subscription.
        data:
          type: object
          properties:
            user:
              type: string
              format: uuid
              description: ID of the user.
              example: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
            verification:
              type: string
              format: uuid
              description: ID of the verification.
              example: 43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b
            client:
              type: string
              format: uuid
              description: ID of the client.
              example: 39096494-45c8-4fd8-9454-3d1cb2d62db7
            resource:
              $ref: '#/components/schemas/PartnerVerification'
    PartnerVerificationErrorResource:
      type: object
      description: Verification error resource details.
      properties:
        id:
          type: string
          nullable: true
          description: ID of the associated resource, if available.
        type:
          type: string
          description: Resource type.
        name:
          type: string
          description: Resource name.
    PartnerVerificationCreationFailedWebhookMessage:
      type: object
      properties:
        event:
          type: string
          description: '`verifications.creation_failed`'
          example: verifications.creation_failed
        name:
          type: string
          description: Name used for the webhook subscription.
        data:
          type: object
          properties:
            user:
              type: string
              format: uuid
              description: ID of the user.
              example: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
            client:
              type: string
              format: uuid
              description: ID of the client.
              example: 39096494-45c8-4fd8-9454-3d1cb2d62db7
            context:
              $ref: '#/components/schemas/PartnerVerificationCreationFailedContext'
      example:
        event: verifications.creation_failed
        name: name-for-the-webhook-subscription
        data:
          user: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
          client: 39096494-45c8-4fd8-9454-3d1cb2d62db7
          context:
            user: 018051aa-f7a9-a0db-2f38-6cfa325e9d69
            attempted_at: '2023-03-09T16:22:06.081Z'
            channel: encompass
            data_source: banking
            report_type: voa
            loan:
              number: '1234'
              borrower_id: ABC789
              application_id: '2121313'
              officer_email: john.doe@mortgage.com
            billing:
              cost_center: '5'
    PartnerVerification:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID of the verification.
        user:
          type: string
          format: uuid
          description: ID of the user associated with the verification.
        client:
          type: string
          format: uuid
          description: ID of the client on whose behalf the verification was requested.
        created_at:
          type: string
          format: date-time
          description: Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the verification was requested.
        updated_at:
          type: string
          format: date-time
          description: Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the verification object was last updated.
        channel:
          type: string
          enum:
          - api
          - encompass
          example: api
          description: Origin of the verification order.
        status:
          $ref: '#/components/schemas/PartnerVerificationStatus'
        report:
          $ref: '#/components/schemas/PartnerVerificationReport'
        employments:
          type: array
          description: List of employments for the user. Documents only.
          items:
            $ref: '#/components/schemas/PartnerVerificationEmployment'
        loan:
          $ref: '#/components/schemas/PartnerVerificationLoan'
        billing:
          $ref: '#/components/schemas/PartnerVerificationBilling'
        data_source:
          type: string
          enum:
          - payroll
          - banking
          - documents
          description: Source of verification data.
    PartnerVerificationReport:
      type: object
      description: Report information.
      properties:
        id:
          type: string
          format: uuid
          nullable: true
          description: 'Unique ID of the report.


            Only available when verification state is `COMPLETED`.

            '
        type:
          type: string
          enum:
          - voie
          - voe
          - voa
          - voi
          - voai
          - voe-transactions
          - doc-voi-mortgage
          description: 'The type of report.


            Payroll:

            - `voie` - Verification of Income and Employment.

            - `voe` - Verification of Employment.


            Banking:

            - `voa` - Banking verification of assets.

            - `voi` - Banking verification of income.

            - `voai` - Banking verification of income and assets.

            - `voe-transactions` - Banking verification of employment.


            Documents:

            - `doc-voi-mortgage` - Mortgage document-based verification of income, integrated with Freddie Mac''s AIM Check.'
        file_url:
          type: string
          nullable: true
          example: www.argyle.com/storagename/pdf
          description: 'Download link to the report PDF.


            Requires [Argyle authentication headers](/api-guide/overview#authentication). Only available when verification state is `COMPLETED`.

            '
        json_url:
          type: string
          nullable: true
          example: www.argyle.com/storagename/json
          description: 'Download link to the report in JSON.


            Requires [Argyle authentication headers](/api-guide/overview#authentication). Only available when verification state is `COMPLETED`.

            '
        configuration:
          $ref: '#/components/schemas/PartnerVerificationReportConfiguration'
    PartnerVerificationBilling:
      type: object
      description: Optional billing details.
      properties:
        cost_center:
          type: string
          description: Cost center identifier.
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Username = api_key_id, Password = api_key_secret