Pinwheel Jobs API

The Jobs API from Pinwheel — 1 operation(s) for jobs.

OpenAPI Specification

pinwheel-jobs-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Pinwheel Accounts Jobs API
  description: Pinwheel is the API for direct deposit switching, bill switching, and income & employment verification.
  version: v2025-07-08
  contact:
    name: Support
    email: support@getpinwheel.com
    url: https://getpinwheel.com
servers:
- url: https://api.getpinwheel.com/v1
  description: production
- url: https://sandbox.getpinwheel.com/v1
  description: sandbox
- url: https://development.getpinwheel.com/v1
  description: development
security:
- apiSecret: []
tags:
- name: Jobs
paths:
  /jobs:
    get:
      tags:
      - Jobs
      summary: List Completed Jobs
      description: List all completed jobs which were initiated by Link (i.e., excluding refresh jobs for monitoring). This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.
      operationId: get_jobs_v1_jobs_get
      parameters:
      - description: UUID of the link token triggering the job.
        required: false
        schema:
          type: string
          format: uuid
          description: UUID of the link token triggering the job.
        name: link_token_id
        in: query
      - description: UUID of the payroll account.
        required: false
        schema:
          type: string
          format: uuid
          description: UUID of the payroll account.
        name: account_id
        in: query
      - description: List of job types. May be expanded to include new enum values (see our Change Management policy).
        required: false
        schema:
          items:
            type: string
            enum:
            - direct_deposit_allocations
            - bill_cancellation
            - direct_deposit_switch
            - paycheck_viewer
            - paystubs
            - bill_switch
            - identity
            - direct_deposit_payment
            - income
            - employment
            - tax_forms
            - shifts
          type: array
          description: List of job types. May be expanded to include new enum values (see our Change Management policy).
        name: job_types
        in: query
      - description: The outcome of the job.
        required: false
        schema:
          allOf:
          - type: string
            enum:
            - success
            - pending
            - error
          description: The outcome of the job.
        name: outcome
        in: query
      - description: The maximum number of results to return.
        required: false
        schema:
          type: integer
          maximum: 100.0
          minimum: 1.0
          description: The maximum number of results to return.
          default: 25
        name: limit
        in: query
      - description: Cursor for the page you want to retrieve.
        required: false
        schema:
          type: string
          description: Cursor for the page you want to retrieve.
        name: cursor
        in: query
      - description: Return results after this ISO 8601 timestamp.
        required: false
        schema:
          type: string
          format: date-time
          description: Return results after this ISO 8601 timestamp.
        name: from_timestamp
        in: query
      - description: Return results to this ISO 8601 timestamp.
        required: false
        schema:
          type: string
          format: date-time
          description: Return results to this ISO 8601 timestamp.
        name: to_timestamp
        in: query
      - name: Pinwheel-Version
        in: header
        required: true
        description: Version identifier specifying how the Pinwheel API should behave. See the Change Management page for more information.
        schema:
          enum:
          - '2025-07-08'
          - '2023-11-22'
          - '2023-07-18'
          - '2023-04-18'
          - '2022-09-09'
          - '2022-06-22'
          - '2022-03-02'
          default: '2025-07-08'
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    items:
                      $ref: '#/components/schemas/JobObjResponse_v2023_11_22'
                    type: array
                    title: Data
                type: object
                required:
                - meta
                - data
                x-tags:
                - Schemas
              examples:
                example:
                  value:
                    data:
                    - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
                      account_id: 449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65
                      platform_id: fce3eee0-285b-496f-9b36-30e976194736
                      platform_name: ADP
                      link_token_id: 4787acbc-11cf-4db3-998c-5ea7c4feebcd
                      name: direct_deposit_switch
                      timestamp: '2021-01-12T02:36:01.287148+00:00'
                      outcome: success
                      params:
                        action: partial_switch
                        allocation:
                          type: amount
                          value: 50
                          target:
                            account_name: My Checking Account
                            account_type: checking
                    meta:
                      count: 1
                      next_cursor: eyJuYW1lIjogImFtYXpvbiJ9
components:
  schemas:
    JobObjResponse_v2023_11_22:
      properties:
        id:
          type: string
          format: uuid
          title: id
          description: Unique identifier for the object.
        name:
          allOf:
          - type: string
            enum:
            - direct_deposit_allocations
            - bill_cancellation
            - direct_deposit_switch
            - paycheck_viewer
            - paystubs
            - bill_switch
            - identity
            - direct_deposit_payment
            - income
            - employment
            - tax_forms
            - shifts
          description: Name of the completed job.
        timestamp:
          type: string
          format: date-time
          title: timestamp
          description: ISO 8601 timestamp of job completion.
        outcome:
          allOf:
          - type: string
            enum:
            - success
            - pending
            - error
          description: The outcome of the job.
        error_code:
          type: string
          title: error_code
          description: On error, an explicit code describing the error.
        error_type:
          type: string
          title: error_type
          description: On error, a high level classification of the error.
        link_token_id:
          type: string
          format: uuid
          title: link_token_id
          description: UUID of the link token triggering the job.
        params:
          allOf:
          - $ref: '#/components/schemas/ParamsPayload_v2023_11_22'
          title: params
          description: Input parameters to the job.
        account_id:
          type: string
          format: uuid
          title: account_id
          description: UUID of the payroll account.
      type: object
      required:
      - id
      - name
      - timestamp
      - outcome
      - link_token_id
      title: Job
      x-tags:
      - Schemas
    PaginationMeta:
      properties:
        count:
          type: integer
          title: count
          description: Number of objects returned.
        next_cursor:
          type: string
          title: next_cursor
          description: Pointer to the next page of results.
      type: object
      title: PaginationMeta
      x-tags:
      - Schemas
    TargetAccount:
      properties:
        account_name:
          type: string
          title: account_name
          description: The account name (if any) for this allocation.
        account_type:
          allOf:
          - type: string
            enum:
            - checking
            - savings
          description: The account type for this allocation.
        last_four_account_number:
          type: string
          title: last_four_account_number
          description: The last four digits of the account number for this allocation.
      type: object
      title: TargetAccount
      x-tags:
      - Schemas
    DirectDepositAllocationDetail:
      properties:
        type:
          allOf:
          - type: string
            enum:
            - amount
            - percentage
            - remainder
          description: Indicates what type of allocation this is.
        value:
          type: integer
          title: value
          description: The value (if any) for this allocation.  Will be set if the type is `percentage` or `amount`.
        target:
          allOf:
          - $ref: '#/components/schemas/TargetAccount'
          title: target
          description: The target account for this allocation.
      type: object
      title: DirectDepositAllocationDetail
      x-tags:
      - Schemas
    MerchantPayment:
      properties:
        card_name:
          type: string
          title: card_name
          description: The name of the new card added in a bill switch job.
        last_four_card_number:
          type: string
          title: last_four_card_number
          description: The last four digits of the card number added in a bill switch job.
        account_name:
          type: string
          title: account_name
          description: The account name (if any) for this payment.
        account_type:
          allOf:
          - type: string
            enum:
            - checking
            - savings
          description: The account type for this payment.
        last_four_account_number:
          type: string
          title: last_four_account_number
          description: The last four digits of the account number for this payment.
      type: object
      title: MerchantPayment
      x-tags:
      - Schemas
    ParamsPayload_v2023_11_22:
      properties:
        document_type:
          allOf:
          - type: string
            enum:
            - paystub
            - W-2
            - '1099'
            - direct_deposit_form
            - verification_report
            - '1040'
            - bank_statement
            - ssi_award_letter
            - w2
            - verification_photo
          description: The type of the document.
        pay_date:
          type: string
          title: pay_date
          description: The date when the check amount is paid to the employee.
        year:
          type: integer
          title: year
          description: The tax year of the form.
        count:
          type: integer
          title: count
          description: The number of available data objects fetched in the job.
        from_pay_date:
          type: string
          format: date
          title: from_pay_date
          description: The earliest pay date for the set of available paystubs in the paystubs job.
        to_pay_date:
          type: string
          format: date
          title: to_pay_date
          description: The latest pay date for the set of available paystubs in the paystubs job.
        has_potential_paystubs_documents:
          type: boolean
          title: has_potential_paystubs_documents
          description: Indicates whether a paystubs documents job will attempt to run.
        sync_status:
          allOf:
          - type: string
            enum:
            - in_progress
            - complete
          description: The current synchronization status of the payroll platforms data with Pinwheel's data.
        bill_id:
          type: string
          format: uuid
          title: bill_id
          description: UUID of the user's recurring bill. This corresponds to the `id` field in the Bill Detection webhooks (e.g. `bill.added`).
        type:
          allOf:
          - type: string
            enum:
            - ach
            - card
          description: The type of payment that was used in a bill switch job.
        payment:
          allOf:
          - $ref: '#/components/schemas/MerchantPayment'
          title: payment
          description: The payment that was updated during a bill switch job.
        frequency:
          allOf:
          - type: string
            enum:
            - weekly
            - bi-weekly
            - monthly
            - bi-monthly
            - quarterly
            - semi-yearly
            - yearly
            - other
          description: How often the recurring bill is paid.
        next_payment_date:
          type: string
          format: date-time
          title: next_payment_date
          description: Next payment date for the bill (if known).
        next_payment_amount_cents:
          type: integer
          title: next_payment_amount_cents
          description: Next predicted payment amount in cents.
        is_integrated_switch:
          type: boolean
          title: is_integrated_switch
          description: Whether this is an integrated switch flow (true) or guided flow (false).
        is_integrated_cancellation:
          type: boolean
          title: is_integrated_cancellation
          description: Whether this is an integrated cancellation flow (true) or guided flow (false).
        detection_method:
          allOf:
          - type: string
            enum:
            - manual
            - external_plaid
            - first_party
          description: Whether this bill was detected from an external account (`external-plaid`), uploaded transaction data (`first-party`), or created manually by the user (`manual`).
        reported_platform_name:
          type: string
          title: reported_platform_name
          description: For platforms not tracked by Pinwheel, the reported name of the merchant/platform associated with the recurring bill or subscription.
        reserved_platform_id:
          type: string
          format: uuid
          title: reserved_platform_id
          description: For platforms not tracked by Pinwheel, the reserved platform ID if we track it in the future.
        card_name:
          type: string
          title: card_name
          description: The name of the new card added in a card switch job.
        action:
          allOf:
          - type: string
            enum:
            - full_switch
            - partial_switch
          description: Indicates whether the `direct_deposit_switch` was a full or partial switch.
        allocation:
          allOf:
          - $ref: '#/components/schemas/DirectDepositAllocationDetail'
          title: allocation
          description: The allocation that was created/updated during a `direct_deposit_switch`.
      type: object
      title: ParamsPayload_v2023_11_22
      x-tags:
      - Schemas
  securitySchemes:
    apiSecret:
      type: apiKey
      in: header
      name: X-API-SECRET
      description: API Secret
    bearerAuth:
      description: Bearer token
      type: http
      scheme: bearer