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

# Pay Statement

> Read detailed pay statements for each individual.

Deduction and contribution types are supported by the payroll systems that supports Benefits.



## OpenAPI

````yaml post /employer/pay-statement
openapi: 3.1.0
info:
  title: API Reference
  version: '2020-09-17'
  contact: {}
  description: >-
    The Finch HRIS API provides a unified way to connect to a multitide of HRIS
    systems. The API requires an access token issued by Finch.


    By default, Organization and Payroll requests use Finch's [Data
    Syncs](/developer-resources/Data-Syncs). If a request is made before the
    initial sync has completed, Finch will request data live from the provider.
    The latency on live requests may range from seconds to minutes depending on
    the provider and batch size.

    For automated integrations, Deductions requests (both read and write) are
    always made live to the provider. Latencies may range from seconds to
    minutes depending on the provider and batch size.



    Employer products are specified by the product parameter, a space-separated
    list of products that your application requests from an employer
    authenticating through Finch Connect. Valid product names are—

    - `company`: Read basic company data


    - `directory`: Read company directory and organization structure


    - `individual`: Read individual data, excluding income and employment data


    - `employment`: Read individual employment and income data


    - `payment`: Read payroll and contractor related payments by the company


    - `pay_statement`: Read detailed pay statements for each individual


    - `benefits`: Create and manage deductions and contributions and enrollment
    for an employer


    [![Open in
    Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/21027137-08db0929-883d-4094-a9ce-dbf5a9bee4a4?action=collection%2Ffork&collection-url=entityId%3D21027137-08db0929-883d-4094-a9ce-dbf5a9bee4a4%26entityType%3Dcollection%26workspaceId%3D1edf19bc-e0a8-41e9-ac55-481a4b50790b)
servers:
  - url: https://api.tryfinch.com
    description: ''
security: []
tags:
  - name: Organization
  - name: Payroll
  - name: Deductions
  - name: Management
  - name: Sandbox
paths:
  /employer/pay-statement:
    post:
      tags:
        - Payroll
      summary: Pay Statement
      description: >-
        Read detailed pay statements for each individual.


        Deduction and contribution types are supported by the payroll systems
        that supports Benefits.
      operationId: get-pay-statement
      parameters:
        - name: entity_ids
          in: query
          required: false
          description: The entity IDs to specify which entities' data to access.
          schema:
            type: array
            items:
              type: string
              format: uuid
            minItems: 1
            maxItems: 1
            example:
              - 550e8400-e29b-41d4-a716-446655440000
          style: form
          explode: true
        - $ref: '#/components/parameters/API-Version'
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                requests:
                  type: array
                  description: The array of batch requests.
                  items:
                    type: object
                    properties:
                      payment_id:
                        type: string
                        description: A stable Finch `id` (UUID v4) for a payment.
                        pattern: '[0-9a-f]{8}[-]?(?:[0-9a-f]{4}[-]?){3}[0-9a-f]{12}'
                        format: uuid
                      limit:
                        type: integer
                        description: Number of pay statements to return (defaults to all).
                        example: 50
                      offset:
                        type: integer
                        description: Index to start from.
                        example: 0
                    required:
                      - payment_id
              required:
                - requests
            examples:
              example1:
                value:
                  requests:
                    - payment_id: string
      responses:
        '200':
          description: Pay statement data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPayStatementsResponse'
              examples:
                Success:
                  value:
                    responses:
                      - payment_id: fc8b024e-d373-4c9c-80fc-f1625383d142
                        code: 200
                        body:
                          paging:
                            count: 25
                            offset: 10
                          pay_statements:
                            - individual_id: be7b048c-a6f3-4194-a017-2f537d4f3565
                              type: regular_payroll
                              payment_method: check
                              total_hours: 42.5
                              gross_pay:
                                amount: 230000
                                currency: usd
                              net_pay:
                                amount: 180000
                                currency: usd
                              earnings:
                                - type: salary
                                  name: Salary
                                  amount: 230000
                                  currency: usd
                                  hours: 42.5
                              taxes:
                                - type: state
                                  name: State Withholding - OR
                                  employer: false
                                  amount: 0
                                  currency: usd
                              employee_deductions:
                                - name: Pre-Tax 401k
                                  amount: 50000
                                  currency: usd
                                  pre_tax: true
                                  type: 401k
                              employer_contributions:
                                - name: Employee Medical Insurance
                                  amount: 23272
                                  currency: usd
                                  type: s125_medical
                RemainingPayStatement:
                  value:
                    responses:
                      - payment_id: fc8b024e-d373-4c9c-80fc-f1625383d142
                        code: 202
                        body:
                          code: 202
                          finch_code: data_sync_in_progress
                          message: >-
                            The pay statements for this payment are being
                            fetched. Please check back later.
                          name: accepted
        '202':
          description: >-
            The request has been accepted for processing, but data is not yet
            available
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedResponse'
              examples:
                DataSyncInProgress:
                  value:
                    code: 202
                    name: sync_in_progress
                    finch_code: data_sync_in_progress
                    message: >-
                      The data being requested is being fetched. Please check
                      back later.
                AuthorizationPending:
                  value:
                    code: 202
                    name: authorization_pending
                    finch_code: pending
                    message: Authorization to this company's data is pending
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Finch from '@tryfinch/finch-api';


            const client = new Finch({
              accessToken: 'My Access Token',
            });


            // Automatically fetches more pages as needed.

            for await (const payStatementResponse of
            client.hris.payStatements.retrieveMany({
              requests: [{ payment_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],
            })) {
              console.log(payStatementResponse.payment_id);
            }
        - lang: Python
          source: |-
            from finch import Finch

            client = Finch(
                access_token="My Access Token",
            )
            page = client.hris.pay_statements.retrieve_many(
                requests=[{
                    "payment_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
                }],
            )
            page = page.responses[0]
            print(page.payment_id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/Finch-API/finch-api-go\"\n\t\"github.com/Finch-API/finch-api-go/option\"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken(\"My Access Token\"),\n\t)\n\tpage, err := client.HRIS.PayStatements.GetMany(context.TODO(), finchgo.HRISPayStatementGetManyParams{\n\t\tRequests: finchgo.F([]finchgo.HRISPayStatementGetManyParamsRequest{{\n\t\t\tPaymentID: finchgo.F(\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\"),\n\t\t}}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
        - lang: Java
          source: |-
            package com.tryfinch.api.example;

            import com.tryfinch.api.client.FinchClient;
            import com.tryfinch.api.client.okhttp.FinchOkHttpClient;
            import com.tryfinch.api.models.HrisPayStatementRetrieveManyPage;
            import com.tryfinch.api.models.HrisPayStatementRetrieveManyParams;

            public final class Main {
                private Main() {}

                public static void main(String[] args) {
                    FinchClient client = FinchOkHttpClient.builder()
                        .fromEnv()
                        .accessToken("My Access Token")
                        .build();

                    HrisPayStatementRetrieveManyParams params = HrisPayStatementRetrieveManyParams.builder()
                        .addRequest(HrisPayStatementRetrieveManyParams.Request.builder()
                            .paymentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
                            .build())
                        .build();
                    HrisPayStatementRetrieveManyPage page = client.hris().payStatements().retrieveMany(params);
                }
            }
        - lang: Kotlin
          source: |-
            package com.tryfinch.api.example

            import com.tryfinch.api.client.FinchClient
            import com.tryfinch.api.client.okhttp.FinchOkHttpClient
            import com.tryfinch.api.models.HrisPayStatementRetrieveManyPage
            import com.tryfinch.api.models.HrisPayStatementRetrieveManyParams

            fun main() {
                val client: FinchClient = FinchOkHttpClient.builder()
                    .fromEnv()
                    .accessToken("My Access Token")
                    .build()

                val params: HrisPayStatementRetrieveManyParams = HrisPayStatementRetrieveManyParams.builder()
                    .addRequest(HrisPayStatementRetrieveManyParams.Request.builder()
                        .paymentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e")
                        .build())
                    .build()
                val page: HrisPayStatementRetrieveManyPage = client.hris().payStatements().retrieveMany(params)
            }
        - lang: Ruby
          source: >-
            require "finch_api"


            finch = FinchAPI::Client.new(access_token: "My Access Token")


            page = finch.hris.pay_statements.retrieve_many(requests:
            [{payment_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"}])


            puts(page)
components:
  parameters:
    API-Version:
      name: Finch-API-Version
      in: header
      required: true
      schema:
        type: string
        default: '2020-09-17'
        format: date
        pattern: ([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))
      description: >-
        Header used to specify the version for a given API request. Current
        version is 2020-09-17.
    Content-Type:
      name: Content-Type
      in: header
      required: true
      schema:
        type: string
        default: application/json
      description: 'Used to indicate the original media type of the resource '
  schemas:
    GetPayStatementsResponse:
      type: object
      properties:
        responses:
          type: array
          items:
            type: object
            properties:
              payment_id:
                type: string
              code:
                type: integer
              body:
                anyOf:
                  - type: object
                    properties:
                      paging:
                        type: object
                        properties:
                          count:
                            type: integer
                            description: >-
                              The total number of elements for the entire query
                              (not just the given page)
                          offset:
                            type: integer
                            description: >-
                              The current start index of the returned list of
                              elements
                        required:
                          - offset
                        title: Paging
                        x-tags:
                          - Models
                      pay_statements:
                        type: array
                        items:
                          $ref: '#/components/schemas/PayStatement'
                    required:
                      - paging
                      - pay_statements
                    title: PayStatementResponseBody
                  - $ref: '#/components/schemas/BatchError'
                  - type: object
                    properties:
                      code:
                        type: number
                        enum:
                          - 202
                      finch_code:
                        type: string
                        enum:
                          - data_sync_in_progress
                      message:
                        type: string
                        enum:
                          - >-
                            The pay statements for this payment are being
                            fetched. Please check back later.
                      name:
                        type: string
                        enum:
                          - accepted
                    required:
                      - code
                      - finch_code
                      - message
                      - name
                    title: PayStatementDataSyncInProgress
            required:
              - payment_id
              - code
              - body
      required:
        - responses
    AcceptedResponse:
      type: object
      properties:
        code:
          type: number
          default: 202
        name:
          type: string
        finch_code:
          type: string
        message:
          type: string
      required:
        - name
        - finch_code
        - message
    PayStatement:
      type: object
      properties:
        individual_id:
          type: string
          description: A stable Finch `id` (UUID v4) for an individual in the company
        type:
          type: string
          nullable: true
          enum:
            - off_cycle_payroll
            - one_time_payment
            - regular_payroll
            - null
          description: The type of the payment associated with the pay statement.
        payment_method:
          type: string
          nullable: true
          enum:
            - check
            - direct_deposit
            - other
            - null
          description: The payment method.
        total_hours:
          type: number
          nullable: true
          description: The number of hours worked for this pay period
        gross_pay:
          $ref: '#/components/schemas/Money'
        net_pay:
          $ref: '#/components/schemas/Money'
        earnings:
          type: array
          nullable: true
          items:
            type: object
            nullable: true
            properties:
              type:
                type: string
                nullable: true
                enum:
                  - salary
                  - wage
                  - reimbursement
                  - overtime
                  - severance
                  - double_overtime
                  - pto
                  - sick
                  - bonus
                  - commission
                  - tips
                  - '1099'
                  - other
                  - null
                description: The type of earning.
              name:
                type: string
                nullable: true
                description: The exact name of the deduction from the pay statement.
              amount:
                type: integer
                nullable: true
                description: The earnings amount in cents.
              currency:
                type: string
                nullable: true
                description: The earnings currency code.
              hours:
                type: number
                nullable: true
                description: >-
                  The number of hours associated with this earning. (For
                  salaried employees, this could be hours per pay period, `0` or
                  `null`, depending on the provider).
              attributes:
                type: object
                nullable: true
                properties:
                  metadata:
                    $ref: '#/components/schemas/Metadata'
                required:
                  - metadata
            required:
              - type
              - name
              - amount
              - currency
              - hours
          description: The array of earnings objects associated with this pay statement
        taxes:
          type: array
          nullable: true
          items:
            type: object
            properties:
              type:
                type: string
                nullable: true
                enum:
                  - state
                  - federal
                  - local
                  - fica
                  - null
                description: The type of taxes.
              name:
                type: string
                nullable: true
                description: The exact name of tax from the pay statement.
              employer:
                type: boolean
                nullable: true
                description: '`true` if the amount is paid by the employers.'
              amount:
                type: integer
                nullable: true
                description: The tax amount in cents.
              currency:
                type: string
                nullable: true
                description: The currency code.
              attributes:
                type: object
                nullable: true
                properties:
                  metadata:
                    $ref: '#/components/schemas/Metadata'
                required:
                  - metadata
            required:
              - type
              - name
              - employer
              - currency
          description: The array of taxes objects associated with this pay statement.
        employee_deductions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              name:
                type: string
                nullable: true
                description: The deduction name from the pay statement.
              amount:
                type: integer
                nullable: true
                description: The deduction amount in cents.
              currency:
                type: string
                nullable: true
                description: The deduction currency.
              pre_tax:
                type: boolean
                nullable: true
                description: Boolean indicating if the deduction is pre-tax.
              type:
                $ref: '#/components/schemas/BenefitType'
              attributes:
                type: object
                nullable: true
                properties:
                  metadata:
                    $ref: '#/components/schemas/Metadata'
                required:
                  - metadata
            required:
              - name
              - amount
              - currency
              - pre_tax
              - type
          description: The array of deductions objects associated with this pay statement.
        employer_contributions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              name:
                type: string
                nullable: true
                description: The contribution name from the pay statement.
              amount:
                type: integer
                nullable: true
                description: The contribution amount in cents.
              currency:
                type: string
                nullable: true
                description: The contribution currency.
              type:
                $ref: '#/components/schemas/BenefitType'
              attributes:
                type: object
                nullable: true
                properties:
                  metadata:
                    $ref: '#/components/schemas/Metadata'
                required:
                  - metadata
            required:
              - name
              - currency
              - type
      required:
        - individual_id
        - type
        - payment_method
        - total_hours
        - gross_pay
        - net_pay
        - earnings
        - taxes
        - employee_deductions
        - employer_contributions
      title: Pay Statement
    BatchError:
      type: object
      properties:
        code:
          type: number
        finch_code:
          type: string
        message:
          type: string
        name:
          type: string
      required:
        - code
        - message
        - name
    Money:
      type: object
      nullable: true
      properties:
        amount:
          type: integer
          nullable: true
          description: Amount for money object (in cents)
        currency:
          type: string
      required:
        - amount
        - currency
      title: Money
      x-tags:
        - Models
    Metadata:
      type: object
      description: >-
        The metadata to be attached to the entity by existing rules. It is a
        key-value pairs where the values can be of any type (string, number,
        boolean, object, array, etc.).
      additionalProperties:
        type: object
        nullable: true
    BenefitType:
      type: string
      nullable: true
      enum:
        - '457'
        - 401k
        - 401k_roth
        - 401k_loan
        - 403b
        - 403b_roth
        - 457_roth
        - commuter
        - custom_post_tax
        - custom_pre_tax
        - fsa_dependent_care
        - fsa_medical
        - hsa_post
        - hsa_pre
        - s125_dental
        - s125_medical
        - s125_vision
        - simple
        - simple_ira
        - null
      description: Type of benefit.
      title: BenefitType
      x-tags:
        - Models
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Please use your Access Token

````