{"openapi":"3.1.0","info":{"title":"Pinwheel","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"}],"paths":{"/link_tokens":{"post":{"tags":["Link Tokens"],"summary":"Create Link Token","description":"Create a token used to launch a Link modal.","operationId":"post_v1_link_tokens_post","parameters":[{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTokenCreate_v2025_07_08"},"examples":{"example":{"value":{"org_name":"Fintech.io","solution":"Deposit Switch","features":["direct_deposit_switch"],"end_user_id":"my_user_12345","allocation":{"type":"amount","value":123.45,"targets":[{"name":"My Checking Account","type":"checking","account_number":"5675249802","routing_number":"193487629"},{"name":"My Savings Account","type":"savings","account_number":"6675249802","routing_number":"193487629"}]},"employer_id":"e3c3ec9e-eea5-42fc-b533-de3cea9c352f","end_user":{"platform_matching":{"social_security_number":"123456789","first_name":"Alicia","last_name":"Green","mobile_phone_number":"1234567890","home_address_zip_code":"12345","date_of_birth":"2023-11-22"}}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/LinkTokenObjResponse_v2021_07_28"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"bd2c09e7-1303-46d5-87c0-0ffa572d7ae4","token":"eyJhbGciOiJIUz....pZ-qZZPO-mA06Dzu-nfUdurwaTUA","expires":"2021-01-09T02:52:26+00:00","mode":"production"}}}}}}}}}},"/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":[{"name":"job_types","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"description":"List of job types. May be expanded to include new enum values (see our Change Management policy)."},"description":"List of job types. May be expanded to include new enum values (see our Change Management policy)."},{"name":"link_token_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UUID of the link token triggering the job."},"description":"UUID of the link token triggering the job."},{"name":"account_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"name":"outcome","in":"query","required":false,"schema":{"description":"The outcome of the job.","type":"string","enum":["success","pending","error"]},"description":"The outcome of the job."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"from_timestamp","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Return results after this ISO 8601 timestamp."},"description":"Return results after this ISO 8601 timestamp."},{"name":"to_timestamp","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Return results to this ISO 8601 timestamp."},"description":"Return results to this ISO 8601 timestamp."},{"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"}}}}}}}}}},"/employers":{"get":{"tags":["Employers and Platforms"],"summary":"List Employers","description":"List all employers supported by Link. 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_v1_employers_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"name":"last_updated","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Filter for results updated more recently than `last_updated`. ISO 8601 timestamp."},"description":"Filter for results updated more recently than `last_updated`. ISO 8601 timestamp."},{"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/EmployerObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"13a9ee8c-815d-451b-b2d0-496731ec29d3","name":"Acme Corporation","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"fractional_amount_supported":false,"amount_supported":true,"min_amount":1.0,"max_amount":9999.0,"percentage_supported":true,"min_percentage":1,"max_percentage":99}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/employers/lookup":{"get":{"tags":["Employers and Platforms"],"summary":"Look up Employer","description":"Look up an employer by criteria such as EIN. Returns the full employer object.","operationId":"get_employers_lookup_v1_employers_lookup_get","parameters":[{"name":"ein","in":"query","required":false,"schema":{"type":"string","description":"Employer Identification Number (exactly 9 digits)."},"description":"Employer Identification Number (exactly 9 digits)."},{"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":{"data":{"$ref":"#/components/schemas/EmployerObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"13a9ee8c-815d-451b-b2d0-496731ec29d3","name":"Acme Corporation","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"fractional_amount_supported":false,"amount_supported":true,"min_amount":1.0,"max_amount":9999.0,"percentage_supported":true,"min_percentage":1,"max_percentage":99}}}}}}}}}},"/employers/{employer_id}":{"get":{"tags":["Employers and Platforms"],"summary":"Get Employer","description":"Get an Employer given the employer ID.","operationId":"get_employer_v1_employers__employer_id__get","parameters":[{"name":"employer_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the employer."},"description":"UUID of the employer."},{"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":{"data":{"$ref":"#/components/schemas/EmployerObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"13a9ee8c-815d-451b-b2d0-496731ec29d3","name":"Acme Corporation","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"fractional_amount_supported":false,"amount_supported":true,"min_amount":1.0,"max_amount":9999.0,"percentage_supported":true,"min_percentage":1,"max_percentage":99}}}}}}}}}},"/webhooks":{"get":{"tags":["Webhooks"],"summary":"List Webhooks","description":"List all webhooks. 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_v1_webhooks_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/WebhookObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"url":"https://example.com/webhook_endpoint","id":"ae0047bf-cd48-4f41-9fa2-2e578ca82969","created_at":"2020-11-06T15:59:13.530178+00:00","last_updated":"2020-11-06T16:00:00.530178+00:00","enabled_events":["income.added","employment.added"],"status":"active","version":"2023-04-18"}],"meta":{"count":1,"next_cursor":"eyJpZCI6ICIwMzIwYzczYS02NWYyLTRkMDktOTMxNC1jZTAyMzFiZjYwZDYifQ=="}}}}}}}}},"post":{"tags":["Webhooks"],"summary":"Create Webhook","description":"Create a webhook to use for callbacks from Pinwheel jobs.","operationId":"post_v1_webhooks_post","parameters":[{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate_v2023_04_18"},"examples":{"example":{"value":{"url":"https://example.com/webhook_endpoint","enabled_events":["income.added","employment.added"],"status":"active","version":"2023-04-18"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/WebhookObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"url":"https://example.com/webhook_endpoint","id":"ae0047bf-cd48-4f41-9fa2-2e578ca82969","created_at":"2020-11-06T15:59:13.530178+00:00","last_updated":"2020-11-06T16:00:00.530178+00:00","enabled_events":["income.added","employment.added"],"status":"active","version":"2023-04-18"}}}}}}}}}},"/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"summary":"Get Webhook","description":"Get webhook by id.","operationId":"get_webhook_by_id_v1_webhooks__webhook_id__get","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the webhook."},"description":"UUID of the webhook."},{"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":{"data":{"$ref":"#/components/schemas/WebhookObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"url":"https://example.com/webhook_endpoint","id":"ae0047bf-cd48-4f41-9fa2-2e578ca82969","created_at":"2020-11-06T15:59:13.530178+00:00","last_updated":"2020-11-06T16:00:00.530178+00:00","enabled_events":["income.added","employment.added"],"status":"active","version":"2023-04-18"}}}}}}}}},"put":{"tags":["Webhooks"],"summary":"Update Webhook","description":"Update webhook.","operationId":"put_v1_webhooks__webhook_id__put","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the webhook."},"description":"UUID of the webhook."},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"},"examples":{"example":{"value":{"url":"https://example.com/new_webhook_endpoint","enabled_events":["income.added","employment.added"]}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/WebhookObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"url":"https://example.com/webhook_endpoint","id":"ae0047bf-cd48-4f41-9fa2-2e578ca82969","created_at":"2020-11-06T15:59:13.530178+00:00","last_updated":"2020-11-06T16:00:00.530178+00:00","enabled_events":["income.added","employment.added"],"status":"active","version":"2023-04-18"}}}}}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete Webhook","description":"Delete a webhook.","operationId":"delete_v1_webhooks__webhook_id__delete","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the webhook."},"description":"UUID of the webhook."},{"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":{},"examples":{"example":{"value":{}}}}}}}}},"/platforms/{platform_id}":{"get":{"tags":["Employers and Platforms"],"summary":"Get Platform","description":"Get a payroll platform supported by Link.","operationId":"get_platform_v1_platforms__platform_id__get","parameters":[{"name":"platform_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the platform."},"description":"UUID of the platform."},{"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":{"data":{"$ref":"#/components/schemas/PlatformObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"fce3eee0-285b-496f-9b36-30e976194736","name":"Acme Payroll","display_name":"Acme Payroll","type":"payroll","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"amount_supported":true,"fractional_amount_supported":false,"min_amount":1.0,"max_amount":9999.0,"percentage_supported":true,"min_percentage":1,"max_percentage":99,"merchant_categories":["food","delivery"],"merchant_category":"food_and_delivery"}}}}}}}}}},"/platforms":{"get":{"tags":["Employers and Platforms"],"summary":"List Platforms","description":"List all payroll platforms supported by Link. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.","operationId":"list_platforms_v1_platforms_get","parameters":[{"name":"include_esps","in":"query","required":false,"schema":{"type":"boolean","description":"ESP (employer-specific platform) is a term that is used to describe an Employer that uses a unique, dedicated payroll portal to serve their employees. Eg. - Walmart employees will authenticate via a Walmart payroll portal, whereas employees at Hilton will authenticate via ADP. ESPs can be thought of as both employers and platforms, so you can use this flag to include ESPs in the set of supported payroll platforms if desired.","default":false},"description":"ESP (employer-specific platform) is a term that is used to describe an Employer that uses a unique, dedicated payroll portal to serve their employees. Eg. - Walmart employees will authenticate via a Walmart payroll portal, whereas employees at Hilton will authenticate via ADP. ESPs can be thought of as both employers and platforms, so you can use this flag to include ESPs in the set of supported payroll platforms if desired."},{"name":"type","in":"query","required":false,"schema":{"description":"The type of the platform. `payroll` platforms are used for direct-deposit switching and for Verify use cases. `time_and_attendance` platforms contain data around shifts and hours. `tax` platforms are used for tax solutions. `merchant` type platforms are used for bill switching and cancellation.","type":"string","enum":["payroll","time_and_attendance","tax","merchant"]},"description":"The type of the platform. `payroll` platforms are used for direct-deposit switching and for Verify use cases. `time_and_attendance` platforms contain data around shifts and hours. `tax` platforms are used for tax solutions. `merchant` type platforms are used for bill switching and cancellation."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"name":"last_updated","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Filter for results updated more recently than `last_updated`. ISO 8601 timestamp."},"description":"Filter for results updated more recently than `last_updated`. ISO 8601 timestamp."},{"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/PlatformObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"fce3eee0-285b-496f-9b36-30e976194736","name":"Acme Payroll","display_name":"Acme Payroll","type":"payroll","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"amount_supported":true,"fractional_amount_supported":false,"min_amount":1.0,"max_amount":9999.0,"percentage_supported":true,"min_percentage":1,"max_percentage":99,"merchant_categories":["food","delivery"],"merchant_category":"food_and_delivery"}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/search":{"get":{"tags":["Employers and Platforms"],"summary":"Search Employers and Platforms","description":"Search all employers and platforms supported by Link.","operationId":"get_v1_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Search query on the employer/platform name."},"description":"Search query on the employer/platform name."},{"name":"supported_jobs","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"description":"Filter on supported jobs. Multiple keys are allowed. May be expanded to include new enum values (see our Change Management policy)."},"description":"Filter on supported jobs. Multiple keys are allowed. May be expanded to include new enum values (see our Change Management policy).","example":["direct_deposit_switch"]},{"name":"response_types","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["employer","platform"]},"description":"Filter on response type. Multiple keys are allowed. May be expanded to include new enum values (see our Change Management policy)."},"description":"Filter on response type. Multiple keys are allowed. May be expanded to include new enum values (see our Change Management policy).","example":["platform"]},{"name":"amount_supported","in":"query","required":false,"schema":{"type":"boolean","description":"Filter on amount_supported. If true, results that support setting a specific dollar amount for direct deposit switches will be returned. If false, results that support setting a specific dollar amount for direct deposit switches will be excluded."},"description":"Filter on amount_supported. If true, results that support setting a specific dollar amount for direct deposit switches will be returned. If false, results that support setting a specific dollar amount for direct deposit switches will be excluded."},{"name":"platform_type","in":"query","required":false,"schema":{"description":"The type of the platform. `payroll` platforms are used for direct-deposit switching and for Verify use cases. `time_and_attendance` platforms contain data around shifts and hours. `tax` platforms are used for tax solutions. `merchant` type platforms are used for bill switching and cancellation.","type":"string","enum":["payroll","time_and_attendance","tax","merchant"]},"description":"The type of the platform. `payroll` platforms are used for direct-deposit switching and for Verify use cases. `time_and_attendance` platforms contain data around shifts and hours. `tax` platforms are used for tax solutions. `merchant` type platforms are used for bill switching and cancellation."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/ListMeta"},"data":{"items":{"$ref":"#/components/schemas/SearchResultObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"fce3eee0-285b-496f-9b36-30e976194736","name":"Acme Payroll","platform_type":"payroll","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"fractional_amount_supported":false,"amount_supported":true,"min_amount":1.0,"max_amount":9999.0,"response_type":"platform","percentage_supported":true,"min_percentage":1,"max_percentage":99},{"id":"13a9ee8c-815d-451b-b2d0-496731ec29d3","name":"Acme Corporation","last_updated":"2020-11-06T15:59:13.530178+00:00","logo_url":"https://cdn.getpinwheel.com/acme.svg","supported_jobs":["direct_deposit_switch"],"fractional_amount_supported":false,"amount_supported":true,"min_amount":1.0,"max_amount":9999.0,"response_type":"employer","percentage_supported":false,"min_percentage":1,"max_percentage":99}],"meta":{"count":2}}}}}}}}}},"/end_users/{end_user_id}/accounts":{"get":{"tags":["End Users"],"summary":"Get all end user accounts","description":"Get all payroll accounts associated with your end user ID. 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_end_user_accounts_v1_end_users__end_user_id__accounts_get","parameters":[{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/PayrollAccountObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","link_token_id":"bd2c09e7-1303-46d5-87c0-0ffa572d7ae4","platform_id":"fce3eee0-285b-496f-9b36-30e976194736","connected":true,"monitoring_status":"active","data_updated_at":{"direct_deposit_allocations":"2021-01-08T00:00:00.000000+00:00"},"data_refreshed_at":{"direct_deposit_allocations":"2021-01-09T00:00:00.000000+00:00"},"end_user_id":"my_user_12345"}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/end_users/{end_user_id}/documents/{document_id}":{"get":{"tags":["End Users"],"summary":"Get Document","description":"Get a specific document for your end user ID.","operationId":"get_end_user_document_v1_end_users__end_user_id__documents__document_id__get","parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"Unique identifier of the document object."},"description":"Unique identifier of the document object."},{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"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":{"data":{"$ref":"#/components/schemas/EndUserDocumentObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"created_at":"2021-01-06T15:59:13.530178+00:00","end_user_id":"end-user-id","id":"07814454-9163-40b5-9aba-8a738fa7080c","document":{"id":"07814454-9163-40b5-9aba-8a738fa7080c","download_url":"https://amazonaws.com/s3/bucket/file.pdf","download_url_expiration":"2021-01-06T15:59:13.530178+00:00"},"document_type":"w2","parsed_data":{"document_type":"w2","applicant":{"name":"Jo Boren","ssn":"681123906","address":{"line1":"8717 S 4th Ave","line2":null,"city":"Inglewood","state":"CA","postal_code":"90305","raw":"8717 S 4th Ave Inglewood CA 90305"}},"employer_name":"Informed, Inc.","total_wages":6500100,"state_wages":6500100,"social_security_wages":5307787,"medicare_wages":6500100,"federal_taxes":1172215,"state_taxes":521660,"social_security_taxes":329083,"medicare_taxes":94251,"tax_year":"2020"},"warnings":[{"field":"parsed_data.box_11","status":"unparsable","message":"This field could not be parsed."},{"field":"parsed_data.box_13.third_party_sick_pay","status":"unparsable","message":"This field could not be parsed"}],"fraud":{"status":"not_suspected"}}}}}}}}}}},"/end_users/{end_user_id}/documents":{"get":{"tags":["End Users"],"summary":"List Documents","description":"Lists all documents associated with your end user ID. 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_end_user_documents_v1_end_users__end_user_id__documents_get","parameters":[{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"name":"type","in":"query","required":false,"schema":{"description":"The type of the document.","type":"string","enum":["direct_deposit_form"]},"description":"The type of the document."},{"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/EndUserDocumentObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"created_at":"2021-01-06T15:59:13.530178+00:00","end_user_id":"end-user-id","id":"07814454-9163-40b5-9aba-8a738fa7080c","document":{"id":"07814454-9163-40b5-9aba-8a738fa7080c","download_url":"https://amazonaws.com/s3/bucket/file.pdf","download_url_expiration":"2021-01-06T15:59:13.530178+00:00"},"document_type":"w2","parsed_data":{"document_type":"w2","applicant":{"name":"Jo Boren","ssn":"681123906","address":{"line1":"8717 S 4th Ave","line2":null,"city":"Inglewood","state":"CA","postal_code":"90305","raw":"8717 S 4th Ave Inglewood CA 90305"}},"employer_name":"Informed, Inc.","total_wages":6500100,"state_wages":6500100,"social_security_wages":5307787,"medicare_wages":6500100,"federal_taxes":1172215,"state_taxes":521660,"social_security_taxes":329083,"medicare_taxes":94251,"tax_year":"2020"},"warnings":[{"field":"parsed_data.box_11","status":"unparsable","message":"This field could not be parsed."},{"field":"parsed_data.box_13.third_party_sick_pay","status":"unparsable","message":"This field could not be parsed"}],"fraud":{"status":"not_suspected"}}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/end_users/{end_user_id}/bill_navigator/status":{"put":{"tags":["End Users"],"summary":"Update end user Bill Navigator status","description":"The Bill Navigator end user status API allows you to update the status of an end user's account.","operationId":"update_bill_navigator_user_status_v1_end_users__end_user_id__bill_navigator_status_put","parameters":[{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillNavigatorStatusUpdateRequest"},"examples":{"example":{"value":{"action":"deactivated","reason":"User no longer wants to use bill navigator"}}}}}},"responses":{"204":{"description":"No Content"}}}},"/end_users/{end_user_id}/earnings_stream/payouts":{"get":{"tags":["Earnings Stream"],"summary":"Get Earnings Stream Payouts","description":"Get an Earnings Stream of payout objects representing discrete cash flow events. 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_earnings_stream_payouts_v1_end_users__end_user_id__earnings_stream_payouts_get","parameters":[{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/FreshnessPaginationListMeta"},"data":{"items":{"$ref":"#/components/schemas/EarningsStreamPayoutObjResponse_v2023_04_18"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"status":"estimated","pay_date":"2022-05-15","earnings":[{"date":"2022-05-05","confidence_score":0.5,"net_pay":{"amount":10000,"currency":"USD"}},{"date":"2022-05-04","confidence_score":0.5,"net_pay":{"amount":5000,"currency":"USD"}},{"date":"2022-05-03","confidence_score":0.7,"net_pay":{"amount":7500,"currency":"USD"}},{"date":"2022-05-02","confidence_score":0.7,"net_pay":{"amount":5000,"currency":"USD"}},{"date":"2022-05-01","confidence_score":0.7,"net_pay":{"amount":10000,"currency":"USD"}}]}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/end_users/{end_user_id}/verification_reports/voie":{"get":{"tags":["Verification Reports"],"summary":"Get Verification of Income and Employment Report","description":"Get a Verification of Income and Employment (VOIE) report associated with your end user ID.","operationId":"get_end_user_verification_reports_voie_v1_end_users__end_user_id__verification_reports_voie_get","parameters":[{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"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":{"data":{"$ref":"#/components/schemas/VerificationReportsVOIEObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"aea8cc55-93fa-452d-8eac-b83c80b19a41","updated_at":"2021-01-06T15:59:13.530178+00:00","refreshed_at":"2021-01-06T15:59:13.530178+00:00","employee":{"name":{"first_name":"Alicia","middle_name":"","last_name":"Green","full_name":"Alicia Green"},"address":{"city":"Washington","country":"US","line1":"1234 Home Road","line2":null,"postal_code":"20017","raw":"1234 Home Road, Washington, DC, 20017, USA","state":"DC"},"last_four_ssn":"0090","date_of_birth":"1987-02-01","phone_numbers":[{"type":"mobile","value":"+14155552671"}]},"report_type":"voie","employments":[{"employer_name":"Acme Corporation","employer_address":{"city":"Washington","country":"US","line1":"1234 Main St","line2":"Suite 3","postal_code":"20036","raw":"1234 Main St, Suite 3, Washington, DC, 20036, USA","state":"DC"},"start_date":"2020-06-01","employment_duration_months":23,"employment_status":"employed","employment_type":"full time","termination_date":null,"title":"Engineer","most_recent_pay_date":"2021-01-05","income":{"pay_frequency":"bi-weekly","compensation_unit":"hourly","compensation_amount":4000,"currency":"USD","annual_incomes":[{"year":"2022","gross_pay_ytd":11000,"net_pay_ytd":9950,"total_deductions_ytd":64704,"total_reimbursements_ytd":7000,"total_taxes_ytd":94407,"earnings_ytds":[{"amount":10000,"category":"salary"},{"amount":1000,"category":"bonus"}]}],"paystubs":[{"id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","account_id":"5c1952df-3a84-4f28-8318-58291452061f","gross_pay_amount":480720,"gross_pay_ytd":6971151,"net_pay_amount":321609,"net_pay_ytd":4357992,"pay_date":"2022-01-05","pay_period_end":"2021-12-24","pay_period_start":"2021-12-10","earnings":[{"amount":380720,"category":"hourly","hours":80.0,"name":"Regular","rate":4759},{"amount":100000,"category":"bonus","hours":null,"name":"Bonus","rate":null}],"total_deductions":64704,"total_reimbursements":7000,"total_taxes":94407,"currency":"USD","created_at":"2021-01-10T19:54:45.745660+00:00","check_amount":328609,"employer_name":"Acme Corporation","external_paystub_id":"821b7d1b-c115-470c-9411-be132f51c19d"},{"id":"497f6eca-6276-4993-bfeb-53cbbbda6f53","account_id":"5c1952df-3a84-4f28-8318-58291452061f","gross_pay_amount":480720,"gross_pay_ytd":6490431,"net_pay_amount":321609,"net_pay_ytd":4036383,"pay_date":"2021-12-22","pay_period_end":"2021-12-09","pay_period_start":"2021-11-26","earnings":[{"amount":380720,"category":"hourly","hours":80.0,"name":"Regular","rate":4759},{"amount":100000,"category":"bonus","hours":null,"name":"Bonus","rate":null}],"total_deductions":64704,"total_reimbursements":7000,"total_taxes":94407,"currency":"USD","created_at":"2021-01-10T19:54:45.745660+00:00","check_amount":328609,"employer_name":"Acme Corporation","external_paystub_id":"50df7fe0-b818-414f-84b9-b9f5bba06a09"}]}}],"document":{"id":"353fb6fb-e704-4112-990a-30058efe2737","download_url":"https://pinwheel-cdn.s3.amazonaws.com/assets/pdfs/voie_report.pdf","download_url_expiration":"2024-01-06T17:47:52.782334+00:00"}}}}}}}}}}},"/end_users/{end_user_id}/verification_reports/voe":{"get":{"tags":["Verification Reports"],"summary":"Get Verification of Employment Report","description":"Get a Verification of Employment (VOE) report associated with your end user ID.","operationId":"get_end_user_verification_reports_voe_v1_end_users__end_user_id__verification_reports_voe_get","parameters":[{"name":"end_user_id","in":"path","required":true,"schema":{"type":"string","description":"User ID provided by you, to associate Pinwheel users with your user model."},"description":"User ID provided by you, to associate Pinwheel users with your user model."},{"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":{"data":{"$ref":"#/components/schemas/VerificationReportsVOEObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"aea8cc55-93fa-452d-8eac-b83c80b19a41","updated_at":"2021-01-06T15:59:13.530178+00:00","refreshed_at":"2021-01-06T15:59:13.530178+00:00","employee":{"name":{"first_name":"Alicia","middle_name":"","last_name":"Green","full_name":"Alicia Green"},"address":{"city":"Washington","country":"US","line1":"1234 Home Road","line2":null,"postal_code":"20017","raw":"1234 Home Road, Washington, DC, 20017, USA","state":"DC"},"last_four_ssn":"0090","date_of_birth":"1987-02-01","phone_numbers":[{"type":"mobile","value":"+14155552671"}]},"report_type":"voe","employments":[{"employer_name":"Acme Corporation","employer_address":{"city":"Washington","country":"US","line1":"1234 Main St","line2":"Suite 3","postal_code":"20036","raw":"1234 Main St, Suite 3, Washington, DC, 20036, USA","state":"DC"},"start_date":"2020-06-01","employment_duration_months":23,"employment_status":"employed","employment_type":"full time","termination_date":null,"title":"Engineer","most_recent_pay_date":"2021-01-05"}],"document":{"id":"15bbb566-fb4e-4835-9967-b308c164269e","download_url":"https://pinwheel-cdn.s3.amazonaws.com/assets/pdfs/voe_report.pdf","download_url_expiration":"2024-01-06T17:47:52.782334+00:00"}}}}}}}}}}},"/accounts/{account_id}/direct_deposit_allocations":{"get":{"tags":["Direct Deposit Allocations"],"summary":"Get Direct Deposit Allocations","description":"The Direct Deposit Allocations endpoint returns the current direct deposit allocations configured for the specified account.","operationId":"get_direct_deposit_allocations_v1_accounts__account_id__direct_deposit_allocations_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"data":{"$ref":"#/components/schemas/DDAllocationObjResponse"},"meta":{"$ref":"#/components/schemas/RefreshableMeta"}},"type":"object","required":["data","meta"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"07814454-9163-40b5-9aaa-8a738fa7080b","account_id":"c0a343a6-4e33-49cf-9bfc-46f770709452","created_at":"2021-01-06T00:00:00.000000+00:00","updated_at":"2021-01-12T00:00:00.000000+00:00","allocations":[{"account_name":"My Checking Account","account_type":"checking","allocation_type":"amount","amount":50000,"bank_name":"Chase","currency":"USD","masked_account_number":"53","percentage":null,"priority":1,"routing_number":"540622601"},{"account_name":"BoA Savings","account_type":"savings","allocation_type":"amount","amount":5000,"bank_name":"Bank of America","currency":"USD","masked_account_number":"3953","percentage":null,"priority":2,"routing_number":"021000322"},{"account_name":"Neobank","account_type":"checking","allocation_type":"remainder","amount":null,"bank_name":null,"currency":"USD","masked_account_number":"83","percentage":null,"priority":3,"routing_number":"434957982"}]}}}}}}}}}},"/accounts/{account_id}/employment":{"get":{"tags":["Income and Employment"],"summary":"Get Employment","description":"Get the current employment information of the account owner.","operationId":"get_employment_v1_accounts__account_id__employment_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"data":{"$ref":"#/components/schemas/EmploymentObjResponse"},"meta":{"$ref":"#/components/schemas/RefreshableMeta"}},"type":"object","required":["data","meta"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"9d3309c3-b1d5-47dd-a175-20acf291f419","account_id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","updated_at":"2021-01-12T00:00:00.000000+00:00","status":"employed","start_date":"2020-06-01","termination_date":null,"employer_name":"Acme Corporation","employer_address":{"raw":"1234 Main St, Suite 3, Washington, DC, 20036, USA","line1":"1234 Main St","line2":"Suite 3","city":"Washington","state":"DC","postal_code":"20036","country":"US"},"employer_phone_number":{"value":"+14155552671","type":"mobile"},"title":"Engineer"}}}}}}}}}},"/accounts/{account_id}/identity":{"get":{"tags":["Income and Employment"],"summary":"Get Identity","description":"Get the current identity information of the account owner.","operationId":"get_identity_v1_accounts__account_id__identity_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"data":{"$ref":"#/components/schemas/IdentityObjResponse"},"meta":{"$ref":"#/components/schemas/RefreshableMeta"}},"type":"object","required":["data","meta"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"ffec8d06-5d03-42b9-9f75-6c66cb6efed5","account_id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","updated_at":"2021-01-12T00:00:00.000000+00:00","full_name":"Alicia Green","date_of_birth":"1987-02-01","last_four_ssn":"0090","emails":["alicia.green@email.com"],"address":{"raw":"1234 Home Road, Washington, DC, 20017, USA","line1":"1234 Home Road","line2":null,"city":"Washington","state":"DC","postal_code":"20017","country":"US"},"phone_numbers":[{"value":"+14155552671","type":"mobile"},{"value":"+14155551234","type":"home"}]}}}}}}}}}},"/accounts/{account_id}/income":{"get":{"tags":["Income and Employment"],"summary":"Get Income","description":"Get the current income information of the account owner.","operationId":"get_income_v1_accounts__account_id__income_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"data":{"$ref":"#/components/schemas/IncomeObjResponse"},"meta":{"$ref":"#/components/schemas/RefreshableMeta"}},"type":"object","required":["data","meta"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"6309e185-9c87-4384-aaae-767c7875775e","account_id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","updated_at":"2021-01-12T00:00:00.000000+00:00","compensation_amount":400000,"compensation_unit":"monthly","currency":"USD","pay_frequency":"monthly"}}}}}}}}}},"/accounts":{"get":{"tags":["Accounts"],"summary":"List Accounts","description":"List all payroll accounts. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.","operationId":"list_accounts_v1_accounts_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"name":"connected","in":"query","required":false,"schema":{"type":"boolean","description":"If included, filter on connected accounts. If true, return only accounts that are connected. If false, return only accounts that are disconnected. Connected accounts are accounts for which you can retrieve new data manually using On Demand Updates or automatically via Monitoring."},"description":"If included, filter on connected accounts. If true, return only accounts that are connected. If false, return only accounts that are disconnected. Connected accounts are accounts for which you can retrieve new data manually using On Demand Updates or automatically via Monitoring."},{"name":"monitoring_status","in":"query","required":false,"schema":{"description":"Monitoring status describes the the automated ability of Pinwheel to retrieve new account information.","type":"string","enum":["active","degraded","user_action_required","customer_disabled","unavailable"]},"description":"Monitoring status describes the the automated ability of Pinwheel to retrieve new account information."},{"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/PayrollAccountObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","link_token_id":"bd2c09e7-1303-46d5-87c0-0ffa572d7ae4","platform_id":"fce3eee0-285b-496f-9b36-30e976194736","connected":true,"monitoring_status":"active","data_updated_at":{"direct_deposit_allocations":"2021-01-08T00:00:00.000000+00:00"},"data_refreshed_at":{"direct_deposit_allocations":"2021-01-09T00:00:00.000000+00:00"},"end_user_id":"my_user_12345"}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/accounts/{account_id}":{"get":{"tags":["Accounts"],"summary":"Get Account","description":"Get a single payroll account.","operationId":"get_account_v1_accounts__account_id__get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"data":{"$ref":"#/components/schemas/PayrollAccountObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","link_token_id":"bd2c09e7-1303-46d5-87c0-0ffa572d7ae4","platform_id":"fce3eee0-285b-496f-9b36-30e976194736","connected":true,"monitoring_status":"active","data_updated_at":{"direct_deposit_allocations":"2021-01-08T00:00:00.000000+00:00"},"data_refreshed_at":{"direct_deposit_allocations":"2021-01-09T00:00:00.000000+00:00"},"end_user_id":"my_user_12345"}}}}}}}}}},"/accounts/{account_id}/disable_monitoring":{"post":{"tags":["Accounts"],"summary":"Disable monitoring for account","description":"Disable monitoring for an account so that refresh jobs will no longer be scheduled to retrieve payroll data.","operationId":"disable_monitoring_v1_accounts__account_id__disable_monitoring_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"204":{"description":"No Content"}}}},"/accounts/{account_id}/disconnect":{"post":{"tags":["Accounts"],"summary":"Disconnect an account","description":"Disconnect an account. This is permanent and irreversible. Once complete, an account will no longer support Earnings Streams or Recurring Access, e.g., On Demand Updates will no longer work and Monitoring will no longer be performed. However, old data will remain accessible. As mentioned above, this excludes derived data products e.g. Earnings Stream.","operationId":"disconnect_v1_accounts__account_id__disconnect_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"204":{"description":"No Content"}}}},"/accounts/{account_id}/paystubs":{"get":{"tags":["Income and Employment"],"summary":"List Paystubs","description":"The paystubs endpoint allows you to query for payouts to an end user. Each paystub contains broken out and aggregated earnings information, as well as relevant dates. Paystubs are returned in reverse chronological order by `pay_date`. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.","operationId":"list_paystubs_v1_accounts__account_id__paystubs_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"name":"from_pay_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter for paystubs with pay dates after this date."},"description":"Filter for paystubs with pay dates after this date."},{"name":"to_pay_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter for paystubs with pay dates before this date."},"description":"Filter for paystubs with pay dates before this date."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return."},"description":"The maximum number of results to return."},{"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/RefreshablePaginationListMeta"},"data":{"items":{"$ref":"#/components/schemas/PaystubObjResponse_v2022_03_02"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","account_id":"5c1952df-3a84-4f28-8318-58291452061f","pay_date":"2020-12-31","pay_period_start":"2020-12-10","pay_period_end":"2020-12-24","currency":"USD","gross_pay_amount":480720,"net_pay_amount":321609,"check_amount":328609,"gross_pay_ytd":6971151,"net_pay_ytd":4357992,"total_taxes":94407,"total_deductions":64704,"total_reimbursements":7000,"employer_name":"Acme Corporation","external_paystub_id":"821b7d1b-c115-470c-9411-be132f51c19d","taxes":[{"name":"Federal Income","category":"federal_income","amount":65158},{"name":"State Income","category":"state_income","amount":29249}],"deductions":[{"name":"401k","category":"retirement","amount":7012,"type":"pre_tax"},{"name":"MTA","category":"commuter","amount":57692,"type":"post_tax"}],"earnings":[{"name":"Regular","category":"salary","amount":380720,"rate":4759,"hours":80.0},{"name":"Bonus","category":"bonus","amount":100000,"rate":null,"hours":null}],"time_off":[{"name":"Vacation","category":"pto","available_hours":41.5,"earned_hours":0.0,"used_hours":38.5},{"name":"Sick Leave","category":"sick","available_hours":41.5,"earned_hours":0.0,"used_hours":38.5}],"created_at":"2021-01-10T19:54:45.745660+00:00","document":{"id":"aea8cc55-93fa-452d-8eac-b83c80b19a41","download_url":"https://s3.us-east-1.amazonaws.com/paystub_document","download_url_expiration":"2022-04-04T18:13:55.123450+00:00"}}],"meta":{"count":1,"next_cursor":"eyJlbXBsb3llciI6ICJVbml0ZWQgUGFyY2VsIFNlcnZpY2UifQ==","refreshed_at":"2021-01-10T19:54:45.745660+00:00"}}}}}}}}}},"/accounts/{account_id}/paystubs/{paystub_id}":{"get":{"tags":["Income and Employment"],"summary":"Get Paystub","description":"Get a single paystub.","operationId":"get_paystub_v1_accounts__account_id__paystubs__paystub_id__get","parameters":[{"name":"paystub_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The id of the paystub."},"description":"The id of the paystub."},{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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":{"data":{"$ref":"#/components/schemas/PaystubObjResponse_v2022_03_02"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","account_id":"5c1952df-3a84-4f28-8318-58291452061f","pay_date":"2020-12-31","pay_period_start":"2020-12-10","pay_period_end":"2020-12-24","currency":"USD","gross_pay_amount":480720,"net_pay_amount":321609,"check_amount":328609,"gross_pay_ytd":6971151,"net_pay_ytd":4357992,"total_taxes":94407,"total_deductions":64704,"total_reimbursements":7000,"employer_name":"Acme Corporation","external_paystub_id":"821b7d1b-c115-470c-9411-be132f51c19d","taxes":[{"name":"Federal Income","category":"federal_income","amount":65158},{"name":"State Income","category":"state_income","amount":29249}],"deductions":[{"name":"401k","category":"retirement","amount":7012,"type":"pre_tax"},{"name":"MTA","category":"commuter","amount":57692,"type":"post_tax"}],"earnings":[{"name":"Regular","category":"salary","amount":380720,"rate":4759,"hours":80.0},{"name":"Bonus","category":"bonus","amount":100000,"rate":null,"hours":null}],"time_off":[{"name":"Vacation","category":"pto","available_hours":41.5,"earned_hours":0.0,"used_hours":38.5},{"name":"Sick Leave","category":"sick","available_hours":41.5,"earned_hours":0.0,"used_hours":38.5}],"created_at":"2021-01-10T19:54:45.745660+00:00","document":{"id":"aea8cc55-93fa-452d-8eac-b83c80b19a41","download_url":"https://s3.us-east-1.amazonaws.com/paystub_document","download_url_expiration":"2022-04-04T18:13:55.123450+00:00"}}}}}}}}}}},"/accounts/{account_id}/shifts":{"get":{"tags":["Income and Employment"],"summary":"List Shifts","description":"The shifts endpoint allows you to query for ongoing and completed work performed by an end user. It includes details about shift dates, timestamps, the type of work, and associated earnings. Shifts are returned in reverse chronological order by `end_date`. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.","operationId":"list_shifts_v1_accounts__account_id__shifts_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"name":"from_start_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Return shifts where the `start_date` field is on or after this date. ISO 8601 format."},"description":"Return shifts where the `start_date` field is on or after this date. ISO 8601 format."},{"name":"to_start_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Return shifts where the `start_date` field is on or before this date. ISO 8601 format."},"description":"Return shifts where the `start_date` field is on or before this date. ISO 8601 format."},{"name":"from_end_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Return shifts where the `end_date` field is on or after this date. ISO 8601 format."},"description":"Return shifts where the `end_date` field is on or after this date. ISO 8601 format."},{"name":"to_end_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Return shifts where the `end_date` field is on or before this date. ISO 8601 format."},"description":"Return shifts where the `end_date` field is on or before this date. ISO 8601 format."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return."},"description":"The maximum number of results to return."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"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/RefreshablePaginationListMeta"},"data":{"items":{"$ref":"#/components/schemas/ShiftObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"c134b9bd-29f8-452b-bfaa-0dbcc6f6f026","account_id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","created_at":"2021-01-29 22:06:06.920124+00:00","start_date":"2021-01-26","end_date":"2021-01-26","type":"shift","timezone":"America/New_York","timestamps":[{"from":"2021-01-26T12:00:00.745660+00:00","to":"2021-01-26T20:21:00.745660+00:00"}],"earnings":[{"name":"Regular Hours","category":"hourly","hours":8.0,"rate":2875,"amount":23000},{"name":"Overtime","category":"overtime","hours":0.35,"rate":4311,"amount":1509}],"currency":"USD"}],"meta":{"count":1,"refreshed_at":"2021-01-12T00:00:00.000000+00:00","next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/accounts/{account_id}/tax_forms":{"get":{"tags":["Tax Forms"],"summary":"List Tax Forms","description":"Lists all tax forms associated with a payroll account. Each tax form contains metadata like year, form type, and form ID. Tax forms are returned in reverse chronological order by year. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.","operationId":"list_tax_forms_v1_accounts__account_id__tax_forms_get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"name":"from_year","in":"query","required":false,"schema":{"type":"integer","description":"Filter for tax forms during or after this year."},"description":"Filter for tax forms during or after this year."},{"name":"to_year","in":"query","required":false,"schema":{"type":"integer","description":"Filter for tax forms during or before this year."},"description":"Filter for tax forms during or before this year."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return."},"description":"The maximum number of results to return."},{"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/RefreshablePaginationListMeta"},"data":{"items":{"$ref":"#/components/schemas/TaxFormObjResponseNoDocument_v2022_06_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":"5c1952df-3a84-4f28-8318-58291452061f","created_at":"2022-07-05T19:54:45.745660+00:00","form_type":"W-2","year":"2021"}],"meta":{"count":1,"next_cursor":"eyJlbXBsb3llciI6ICJVbml0ZWQgUGFyY2VsIFNlcnZpY2UifQ==","refreshed_at":"2022-07-05T19:54:45.745660+00:00"}}}}}}}}}},"/accounts/{account_id}/tax_forms/{tax_form_id}":{"get":{"tags":["Tax Forms"],"summary":"Get Tax Form","description":"Gets a specific tax form with document data.","operationId":"get_tax_form_v1_accounts__account_id__tax_forms__tax_form_id__get","parameters":[{"name":"tax_form_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"Unique identifier of the tax form object."},"description":"Unique identifier of the tax form object."},{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"name":"with_parsed_data","in":"query","required":false,"schema":{"type":"boolean","description":"If set to true, return the parsed data of the tax form document. Note the billing implications of the Tax Forms endpoint. Currently only supported for W-2 forms."},"description":"If set to true, return the parsed data of the tax form document. Note the billing implications of the Tax Forms endpoint. Currently only supported for W-2 forms."},{"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":{"data":{"$ref":"#/components/schemas/TaxFormObjResponse_v2022_06_22"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","account_id":"5c1952df-3a84-4f28-8318-58291452061f","created_at":"2022-07-05T19:54:45.745660+00:00","form_type":"W-2","year":"2021","document":{"id":"aea8cc55-93fa-452d-8eac-b83c80b19a41","download_url":"https://s3.us-east-1.amazonaws.com/tax_form_document","download_url_expiration":"2022-07-05T20:13:55.123450+00:00"},"parsed_data":{"box_a":"123-45-6789","box_b":"123456789","box_c":{"name":"SAMPLE COMPANY INC","address":{"raw":"123 MAIN ST, ANYWHERE, CA 123456 1234","line1":"123 MAIN ST","line2":null,"city":"ANYWHERE","state":"CA","postal_code":"123456","country":"US"}},"box_d":"000011 R#/123","box_e":"JOHN SMITH","box_f":{"raw":"1234 S MAPLE ST, ANYWHERE, CA 123456","line1":"1234 S MAPLE ST","line2":null,"city":"ANYWHERE","state":"CA","postal_code":"123456","country":"US"},"box_1":2350000,"box_2":150000,"box_3":2350000,"box_4":145700,"box_5":2350000,"box_6":34057,"box_7":null,"box_8":null,"box_9":null,"box_10":null,"box_11":null,"box_12":[{"code":"D","amount":2000},{"code":"W","amount":5000}],"box_13":{"statutory_employee":false,"retirement_plan":true,"third_party_sick_pay":null},"box_14":null,"box_15_to_20":[{"box_15_state":"CA","box_15_employer_state_id":null,"box_16":2350000,"box_17":80000,"box_18":null,"box_19":null,"box_20":null}]},"warnings":[{"field":"parsed_data.box_11","status":"unparsable","message":"This field could not be parsed."},{"field":"parsed_data.box_13.third_party_sick_pay","status":"unparsable","message":"This field could not be parsed"}]}}}}}}}}}},"/company_connections/{company_connection_id}/census":{"get":{"tags":["Company Connect"],"summary":"List Employees","description":"List all employee census data reported by the payroll platform. 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_v1_company_connections__company_connection_id__census_get","parameters":[{"name":"company_connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the Company Connection."},"description":"UUID of the Company Connection."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/CompanyIdentityObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"created_at":"2023-06-11T20:31:13.530178+00:00","employee_external_id":"1001331","full_name":"Alicia Rose Green","first_name":"Alicia","middle_name":"Rose","last_name":"Green","date_of_birth":"1987-02-01","last_four_ssn":"0090","emails":["alicia.green@email.com"],"address":{"raw":"1234 Home Road, Washington, DC, 20017, USA","line1":"1234 Home Road","line2":null,"city":"Washington","state":"DC","postal_code":"20017","country":"US"},"phone_numbers":[{"value":"+14155552671","type":"mobile"},{"value":"+14155551234","type":"home"}]}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/company_connections":{"post":{"tags":["Company Connect"],"summary":"Create Company Connection","description":"Create a Company Connection used to get income & employment data from your target company.","operationId":"post_v1_company_connections_post","parameters":[{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyConnectionCreate"},"examples":{"example":{"value":{"company_name":"Acme, Inc."}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/CompanyConnectionBase"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"07814454-9163-40b5-9aaa-8a738fa7080b","created_at":"2023-01-06T00:00:00.000000+00:00","company_name":"Acme, Inc.","status":"ready_to_connect","status_updated_at":"2023-01-06T00:00:00.000000+00:00"}}}}}}}}},"get":{"tags":["Company Connect"],"summary":"List Company Connections","description":"List all Company Connections. This is a paginated endpoint; see how Pinwheel implements pagination <a href='https://docs.pinwheelapi.com/docs/pagination-1' target='_blank'>here</a>.","operationId":"list_v1_company_connections_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/CompanyConnectionBase"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"07814454-9163-40b5-9aaa-8a738fa7080b","created_at":"2023-01-06T00:00:00.000000+00:00","company_name":"Acme, Inc.","status":"ready_to_connect","status_updated_at":"2023-01-06T00:00:00.000000+00:00"}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/company_connections/{company_connection_id}":{"get":{"tags":["Company Connect"],"summary":"Get Company Connection","description":"Get Company Connection.","operationId":"get_v1_company_connections__company_connection_id__get","parameters":[{"name":"company_connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the Company Connection."},"description":"UUID of the Company Connection."},{"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":{"data":{"$ref":"#/components/schemas/CompanyConnectionBase"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"07814454-9163-40b5-9aaa-8a738fa7080b","created_at":"2023-01-06T00:00:00.000000+00:00","company_name":"Acme, Inc.","status":"ready_to_connect","status_updated_at":"2023-01-06T00:00:00.000000+00:00"}}}}}}}}}},"/company_connections/{company_connection_id}/employments":{"get":{"tags":["Company Connect"],"summary":"List Employments Data","description":"List all employments data reported by the payroll platform. 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_v1_company_connections__company_connection_id__employments_get","parameters":[{"name":"company_connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the Company Connection."},"description":"UUID of the Company Connection."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/CompanyEmploymentObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"created_at":"2023-06-11T20:31:13.530178+00:00","employee_external_id":"1001331","status":"employed","employment_type":"full_time","start_date":"2020-06-01","termination_date":null,"employer_name":"Acme Corporation","title":"Engineer","department":"Engineering","manager_external_id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","class_code":"1001","employer_address":{"raw":"1234 Main St, Suite 3, Washington, DC, 20036, USA","line1":"1234 Main St","line2":"Suite 3","city":"Washington","state":"DC","postal_code":"20036","country":"US"}}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/company_connections/{company_connection_id}/incomes":{"get":{"tags":["Company Connect"],"summary":"List Employee Incomes","description":"List all employee income data reported by the payroll platform. 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_v1_company_connections__company_connection_id__incomes_get","parameters":[{"name":"company_connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the Company Connection."},"description":"UUID of the Company Connection."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/CompanyIncomeObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"created_at":"2023-06-11T20:31:13.530178+00:00","employee_external_id":"1001331","compensation_amount":400000,"compensation_unit":"monthly","currency":"USD","pay_frequency":"monthly"}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/company_connections/{company_connection_id}/paystubs/{employee_external_id}":{"get":{"tags":["Company Connect","Company Connect"],"summary":"List Employee Paystubs","description":"List employee paystubs data reported by the payroll platform. 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_v1_company_connections__company_connection_id__paystubs__employee_external_id__get","parameters":[{"name":"company_connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the Company Connection."},"description":"UUID of the Company Connection."},{"name":"employee_external_id","in":"path","required":true,"schema":{"type":"string","description":"Employee ID as reported by their employer."},"description":"Employee ID as reported by their employer."},{"name":"from_pay_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter for paystubs with pay dates after this date."},"description":"Filter for paystubs with pay dates after this date."},{"name":"to_pay_date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"Filter for paystubs with pay dates before this date."},"description":"Filter for paystubs with pay dates before this date."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"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/CompanyPaystubObjResponse"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","account_id":"5c1952df-3a84-4f28-8318-58291452061f","employee_external_id":"8911172","pay_date":"2020-12-31","pay_period_start":"2020-12-10","pay_period_end":"2020-12-24","currency":"USD","gross_pay_amount":480720,"net_pay_amount":321609,"check_amount":328609,"gross_pay_ytd":6971151,"net_pay_ytd":4357992,"total_taxes":94407,"total_deductions":64704,"total_reimbursements":7000,"created_at":"2021-01-10T19:54:45.745660+00:00","employer_name":"Acme Corporation","external_paystub_id":"821b7d1b-c115-470c-9411-be132f51c19d"}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}}}},"/company_connect/link_tokens":{"post":{"tags":["Company Connect"],"summary":"Create Link Token","description":"Create a Company Connect link token used to launch a Link modal.","operationId":"post_v1_company_connect_link_tokens_post","parameters":[{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyConnectLinkTokenCreate"},"examples":{"example":{"value":{"org_name":"Fintech.io","company_connect":{"company_connection_id":"e3c3ec9e-eea5-42fc-b533-de3cea9c352f"}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/CompanyConnectLinkTokenObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"bd2c09e7-1303-46d5-87c0-0ffa572d7ae4","token":"eyJhbGciOiJIUz....pZ-qZZPO-mA06Dzu-nfUdurwaTUA","expires":"2021-01-09T02:52:26+00:00","mode":"production"}}}}}}}}}},"/sandbox/accounts/{account_id}":{"patch":{"tags":["Sandbox"],"summary":"Override an account's monitoring status","description":"Manually override a sandbox account's monitoring status.","operationId":"patch_monitoring_status_v1_sandbox_accounts__account_id__patch","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"UUID of the payroll account."},"description":"UUID of the payroll account."},{"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"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayrollAccountPatchMonitoringStatus"},"examples":{"example":{"value":{"monitoring_status":"user_action_required"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/PayrollAccountObjResponse"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"id":"eb240ec6-a227-47ca-b7c7-fbbdfe7170a0","created_at":"2021-01-06T15:59:13.530178+00:00","link_token_id":"bd2c09e7-1303-46d5-87c0-0ffa572d7ae4","platform_id":"fce3eee0-285b-496f-9b36-30e976194736","connected":true,"monitoring_status":"active","data_updated_at":{"direct_deposit_allocations":"2021-01-08T00:00:00.000000+00:00"},"data_refreshed_at":{"direct_deposit_allocations":"2021-01-09T00:00:00.000000+00:00"},"end_user_id":"my_user_12345"}}}}}}}}}},"/admin/token":{"post":{"tags":["API Keys"],"summary":"Admin API Authentication","description":"Authenticate against the Admin API.","operationId":"auth_v1_admin_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAdminTokenRequest"},"examples":{"example":{"value":{"username":"bob@example.com","password":"!pa55w0rd"}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/CreateAdminTokenResponseData"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"token":"665ffb0f-3b65-483d-97be-2aeddfd54467","expiration":"2023-03-24 21:37:00.650846+00:00","workspace_name":"Acme, Inc.","mode":"production","user_role":"administrator"}}}}}}}},"parameters":[{"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"}}],"security":[]}},"/admin/api_keys":{"get":{"tags":["API Keys"],"summary":"List API Keys","description":"List all keys for this workspace.","operationId":"list_keys_v1_admin_api_keys_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for the page you want to retrieve."},"description":"Cursor for the page you want to retrieve."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","default":25},"description":"The maximum number of results to return."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","description":"Admin API bearer token."},"description":"Admin API bearer token."},{"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/ListAPIKeyResponseData"},"type":"array","title":"Data"}},"type":"object","required":["meta","data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":[{"mode":"production","key":"412cb238ff82788ae1678fbdb3623a75b44059aa07a6e915c3d99a750e7953b2","expires_at":null,"created_at":"2023-03-24 21:37:00.650846+00:00","last_used_at":"2023-03-24","is_active":true,"revoked_at":null}],"meta":{"count":1,"next_cursor":"eyJuYW1lIjogImFtYXpvbiJ9"}}}}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["API Keys"],"summary":"Create an API Key","description":"Creates an API Key.","operationId":"create_key_v1_admin_api_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","description":"Admin API bearer token."},"description":"Admin API bearer token."},{"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"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CreateAPIKeyOptions"},{"type":"null"}],"title":"Options In"},"examples":{"example":{"value":{"expires_at":"2023-03-23 12:34:56"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"properties":{"data":{"$ref":"#/components/schemas/CreateAPIKeyResponseData"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"mode":"production","key":"412cb238ff82788ae1678fbdb3623a75b44059aa07a6e915c3d99a750e7953b2","secret":"23252c3d516ec1cf92822d8db03b04f59c22ac4810fb20752b5511e43340e771","expires_at":null,"created_at":"2023-03-24 21:37:00.650846+00:00"}}}}}}}},"security":[{"bearerAuth":[]}]}},"/admin/api_keys/{api_key}/revoke":{"post":{"tags":["API Keys"],"summary":"Revoke an API Key","description":"Revokes an API Key.","operationId":"revoke_key_v1_admin_api_keys__api_key__revoke_post","parameters":[{"name":"api_key","in":"path","required":true,"schema":{"type":"string","description":"The public token that refers to your API key, as distinct from the API Secret."},"description":"The public token that refers to your API key, as distinct from the API Secret."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","description":"Admin API bearer token."},"description":"Admin API bearer token."},{"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":{"data":{"$ref":"#/components/schemas/RevokeAPIKeyResponseData"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"examples":{"example":{"value":{"data":{"mode":"production","key":"412cb238ff82788ae1678fbdb3623a75b44059aa07a6e915c3d99a750e7953b2","expires_at":null,"created_at":"2023-03-20 13:02:21.987347+00:00","revoked_at":"2023-03-24 21:37:00.768426+00:00"}}}}}}}},"security":[{"bearerAuth":[]}]}}},"components":{"schemas":{"AddressGetResponseItem":{"properties":{"raw":{"type":"string","title":"raw","description":"The raw address."},"line1":{"type":"string","title":"line1","description":"The first line of the address."},"line2":{"type":"string","title":"line2","description":"The second line of the address."},"city":{"type":"string","title":"city","description":"The city of the address."},"state":{"type":"string","title":"state","description":"The state of the address."},"postal_code":{"type":"string","title":"postal_code","description":"The postal code of the address."},"country":{"description":"The country of the address.","type":"string","enum":["US"]}},"type":"object","required":["raw"],"title":"Address","x-tags":["Schemas"]},"Allocation":{"properties":{"type":{"description":"Type of allocation.","type":"string","enum":["amount"]},"value":{"title":"value","description":"Value of allocation. If type is amount, you must include a value. If type is null, the end-user will be able to select the allocation type and value. If min_amount is also specified for the allocation, must be greater than or equal to min_amount.","anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"}]},"min_amount":{"title":"min_amount","description":"Minimum amount for the allocation.","anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d{0,2}0*$"}]},"targets":{"items":{"$ref":"#/components/schemas/BankAccountDetails"},"type":"array","title":"targets","description":"List of allowed target accounts for an allocation.","default":[]}},"type":"object","title":"Allocation","x-tags":["Schemas"]},"AllocationAccountObjResponse":{"properties":{"account_name":{"type":"string","title":"account_name","description":"The name of the account, as entered by the user or presented by the platform."},"account_type":{"description":"The type of account.","type":"string","enum":["checking","savings","debit_card","pay_card"]},"allocation_type":{"description":"The type of allocation.","type":"string","enum":["amount","percentage","remainder"]},"amount":{"type":"integer","title":"amount","description":"The amount of this allocation, in cents. Required if `allocation_type` is `amount`."},"bank_name":{"type":"string","title":"bank_name","description":"The name of the bank associated with `allocation.routing_number`, if available."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"masked_account_number":{"type":"string","maxLength":4,"minLength":2,"title":"masked_account_number","description":"Either the last two or four digits associated with the allocation, dependent on what is displayed by the platform."},"percentage":{"type":"number","title":"percentage","description":"The percentage of this allocation. Required if `allocation_type` is `percentage`."},"priority":{"type":"integer","title":"priority","description":"The priority of this allocation. Lower priority allocations are filled first."},"routing_number":{"type":"string","title":"routing_number","description":"Either the full routing number or last four digits of the routing number associated with the allocation, dependent on what is displayed by the platform."}},"type":"object","required":["allocation_type","currency"],"title":"Allocation","x-tags":["Schemas"]},"AnnualIncomeResponseObj":{"properties":{"year":{"type":"string","title":"year","description":"Year for which the income represents."},"gross_pay_ytd":{"type":"integer","title":"gross_pay_ytd","description":"The cumulative year to date total earnings before any taxes or deductions are removed, in cents."},"net_pay_ytd":{"type":"integer","title":"net_pay_ytd","description":"The cumulative year to date total earnings after all taxes and deductions are removed, in cents."},"total_deductions_ytd":{"type":"integer","title":"total_deductions_ytd","description":"The cumulative year to date total deductions, in cents."},"total_reimbursements_ytd":{"type":"integer","title":"total_reimbursements_ytd","description":"The cumulative year to date total reimbursements, in cents."},"total_taxes_ytd":{"type":"integer","title":"total_taxes_ytd","description":"The cumulative year to date total taxes, in cents."},"earnings_ytds":{"items":{"$ref":"#/components/schemas/EarningsYtds"},"type":"array","title":"earnings_ytds","description":"The cumulative year to date amount for all earnings, in cents."}},"type":"object","required":["year","gross_pay_ytd","net_pay_ytd","total_deductions_ytd","total_reimbursements_ytd","total_taxes_ytd","earnings_ytds"],"title":"AnnualIncomeResponseObj","x-tags":["Schemas"]},"ApplicantNameAndAddress":{"properties":{"name":{"type":"string","title":"name","description":"The full name of the applicant."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the applicant."}},"type":"object","title":"ApplicantNameAndAddress","x-tags":["Schemas"]},"BankAccount":{"properties":{"account_number":{"title":"account_number","description":"The account number of the bank account.","anyOf":[{"type":"number"},{"type":"string"}]},"account_name":{"type":"string","title":"account_name","description":"The name of the bank account."},"bank_account_type":{"type":"string","title":"bank_account_type","description":"The type of the bank account."},"is_joint_account":{"type":"boolean","title":"is_joint_account","description":"Whether the bank account is a joint account."},"total_deposits":{"title":"total_deposits","description":"The total deposits of the bank account.","anyOf":[{"type":"number"},{"type":"string"}]},"beginning_balance":{"title":"beginning_balance","description":"The beginning balance of the bank account.","anyOf":[{"type":"number"},{"type":"string"}]},"ending_balance":{"title":"ending_balance","description":"The ending balance of the bank account.","anyOf":[{"type":"number"},{"type":"string"}]},"transactions":{"items":{"$ref":"#/components/schemas/BankAccountTransaction"},"type":"array","title":"transactions","description":"The transactions of the bank account."}},"type":"object","title":"BankAccount","x-tags":["Schemas"]},"BankAccountDetails":{"properties":{"name":{"type":"string","title":"name","description":"Name of the bank account."},"type":{"description":"Bank account type, checking or savings. Required if requesting direct_deposit_switch jobs.","type":"string","enum":["checking","savings"]},"routing_number":{"type":"string","maxLength":9,"minLength":9,"pattern":"^[0-9]*$","title":"routing_number","description":"Routing number of bank. Required if requesting direct_deposit_switch jobs."},"account_number":{"type":"string","minLength":5,"pattern":"^[0-9]*$","title":"account_number","description":"Bank account number. Required if requesting direct_deposit_switch jobs."}},"type":"object","title":"BankAccountDetails","x-tags":["Schemas"]},"BankAccountTransaction":{"properties":{"date":{"type":"string","title":"date","description":"The date of the transaction."},"description":{"type":"string","title":"description","description":"The description of the transaction."},"amount":{"title":"amount","description":"The amount of the transaction.","anyOf":[{"type":"number"},{"type":"string"}]},"base_type":{"type":"string","title":"base_type","description":"The base type of the transaction."},"type":{"type":"string","title":"type","description":"The type of the transaction."}},"type":"object","title":"BankAccountTransaction","x-tags":["Schemas"]},"BillNavigatorStatusUpdateRequest":{"properties":{"action":{"description":"The action to take on the end user's account. Valid actions are `deactivated` and `terminated`. When an end user is set to `deactivated`, the user can reactivate themselves. When an end user is set to `terminated`, the action is irreversible.","type":"string","enum":["deactivate","terminate","deactivated","terminated"]},"reason":{"type":"string","title":"reason","description":"The reason for taking action on the end user's account."}},"type":"object","required":["action"],"title":"Bill Navigator Status Update Request","x-tags":["Schemas"]},"CardDetails":{"properties":{"card_name":{"type":"string","maxLength":30,"minLength":2,"title":"card_name","description":"Name of the card. Required if requesting `bill_switch` job."},"card_number":{"type":"string","maxLength":19,"minLength":8,"pattern":"^[0-9]*$","title":"card_number","description":"Card number. Required if requesting `bill_switch` job."},"cvc":{"type":"string","maxLength":4,"minLength":3,"title":"cvc","description":"Card verification code or other security code of the card. Required if requesting `bill_switch` job."},"expiration_date":{"type":"string","title":"expiration_date","description":"Expiration date of the card in MM/YY format. Required if requesting `bill_switch` job."},"name_on_card":{"type":"string","title":"name_on_card","description":"Full name displayed on the card. Required if requesting `bill_switch` job."},"card_zip_code":{"type":"string","maxLength":5,"minLength":5,"pattern":"^[0-9]*$","title":"card_zip_code","description":"Zip code for the card. Required if requesting `bill_switch` job."},"billing_address":{"type":"string","title":"billing_address","description":"Billing address line one of the card. Required if requesting `bill_switch` job."},"billing_address_two":{"type":"string","title":"billing_address_two","description":"Billing address line two of the card. Required if requesting `bill_switch` job."},"city":{"type":"string","title":"city","description":"City of the card. Required if requesting `bill_switch` job."},"state":{"description":"Two letter state code of the card, e.g. `NY`. Required if requesting `bill_switch` job.","type":"string","enum":["AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"]}},"type":"object","required":["card_name","card_number","expiration_date","name_on_card","card_zip_code"],"title":"CardDetails","x-tags":["Schemas"]},"CompanyConnect":{"properties":{"company_connection_id":{"type":"string","format":"uuid","title":"company_connection_id","description":"ID of the Company Connection."}},"type":"object","title":"CompanyConnect","x-tags":["Schemas"]},"CompanyConnectLinkTokenCreate":{"properties":{"required_jobs":{"items":{"type":"string","enum":["company_employments","company_census","company_incomes"]},"type":"array","title":"required_jobs","description":"List of job types to be performed on the Company Connection. Platforms that do not support ALL of these jobs will not be visible to the user."},"org_name":{"type":"string","maxLength":30,"minLength":3,"title":"org_name","description":"Organization or app name that is displayed to the user."},"skip_intro_screen":{"type":"boolean","title":"skip_intro_screen","description":"If set to true, intro screen is not shown to user.","default":false},"platform_id":{"type":"string","format":"uuid","title":"platform_id","description":"UUID of a platform. If set, user is taken directly to Link login screen."},"language":{"description":"IETF code denoting which language to display in Link.","default":"en","type":"string","enum":["en","es","es-419","pt-br"]},"company_connect":{"$ref":"#/components/schemas/CompanyConnect","description":"Configuration used to specify a Company Connection."}},"type":"object","required":["org_name"],"title":"LinkTokenPostBody","x-tags":["Schemas"]},"CompanyConnectLinkTokenObjResponse":{"properties":{"mode":{"description":"Token mode, i.e. `sandbox`, `development`, or `production`.","type":"string","enum":["sandbox","development","production"]},"id":{"type":"string","format":"uuid","title":"id","description":"UUID of the link token."},"token":{"type":"string","title":"token","description":"Short-lived token that is used to initialize Pinwheel Link."},"expires":{"type":"string","format":"date-time","title":"expires","description":"The token will be invalid after this timestamp."}},"type":"object","required":["mode","id","token","expires"],"title":"CompanyConnect Link Token Response Data","x-tags":["Schemas"]},"CompanyConnectionBase":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"company_name":{"type":"string","title":"company_name","description":"Name of the company used in a Company Connection."},"status":{"description":"The status of the Company Connection. <a href='https://docs.pinwheelapi.com/docs/company-connect-technical-implementation#company-connection-status' target='_blank'>See documentation for details</a>.","type":"string","enum":["ready_to_connect","connection_failed","processing","data_available","reconnect_needed"]},"status_updated_at":{"type":"string","format":"date-time","title":"status_updated_at","description":"Timestamp of when the Company Connection's status was last updated."}},"type":"object","required":["id","created_at","company_name","status","status_updated_at"],"title":"CompanyConnectionBase","x-tags":["Schemas"]},"CompanyConnectionCreate":{"properties":{"company_name":{"type":"string","title":"company_name","description":"Name of the company used in a Company Connection."}},"type":"object","required":["company_name"],"title":"CompanyConnectionPostBody","x-tags":["Schemas"]},"CompanyEmploymentObjResponse":{"properties":{"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"employee_external_id":{"type":"string","title":"employee_external_id","description":"Employee ID as reported by their employer."},"status":{"description":"The employment status of the employee.","type":"string","enum":["employed","terminated","furloughed"]},"employment_type":{"description":"The employment type e.g. full time, part time, seasonal, contractor.","type":"string","enum":["full_time","part_time","seasonal","temporary","contractor","self_employed","per_diem","commission"]},"start_date":{"type":"string","format":"date","title":"start_date","description":"The date the employee began their job."},"termination_date":{"type":"string","format":"date","title":"termination_date","description":"The date the employee was terminated."},"employer_name":{"type":"string","title":"employer_name","description":"Name of employer, e.g., Apple, Disney, Walmart."},"title":{"type":"string","title":"title","description":"The job title of the employee."},"department":{"type":"string","title":"department","description":"The department the employee works in."},"manager_external_id":{"type":"string","title":"manager_external_id","description":"The employee's manager's employee ID."},"class_code":{"type":"string","title":"class_code","description":"A three- to four-digit code that identifies types of work, typically used by insurance companies to evaluate risk."},"employer_address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employer."}},"type":"object","required":["created_at","employee_external_id","employer_name"],"title":"CompanyEmploymentObjResponse","x-tags":["Schemas"]},"CompanyIdentityObjResponse":{"properties":{"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"employee_external_id":{"type":"string","title":"employee_external_id","description":"Employee ID as reported by their employer."},"date_of_birth":{"type":"string","format":"date","title":"date_of_birth","description":"The date the employee was born."},"emails":{"items":{"type":"string"},"type":"array","title":"emails","description":"The emails associated with the employee."},"first_name":{"type":"string","title":"first_name","description":"The first name of the employee."},"middle_name":{"type":"string","title":"middle_name","description":"The middle name of the employee."},"last_name":{"type":"string","title":"last_name","description":"The last name of the employee."},"last_four_ssn":{"type":"string","maxLength":4,"minLength":4,"pattern":"^\\d{4}$","title":"last_four_ssn","description":"The last four digits of the employee's social security number (SSN)."},"full_name":{"type":"string","title":"full_name","description":"The full name of the employee."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employee."},"phone_numbers":{"items":{"$ref":"#/components/schemas/PhoneNumberGetResponseItem"},"type":"array","title":"phone_numbers","description":"The phone numbers of the employee."}},"type":"object","required":["created_at","employee_external_id","first_name","middle_name","last_name","full_name"],"title":"CompanyIdentityObjResponse","x-tags":["Schemas"]},"CompanyIncomeObjResponse":{"properties":{"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"employee_external_id":{"type":"string","title":"employee_external_id","description":"Employee ID as reported by their employer."},"compensation_amount":{"type":"integer","title":"compensation_amount","description":"The amount per compensation unit, in cents."},"compensation_unit":{"description":"The compensation time frame.","type":"string","enum":["hourly","daily","weekly","bi-weekly","semi-weekly","monthly","semi-monthly","annually","variable","per_mile"]},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"pay_frequency":{"description":"Describes how often the employee is paid.","type":"string","enum":["daily","weekly","bi-weekly","monthly","semi-monthly","variable"]}},"type":"object","required":["created_at","employee_external_id","compensation_amount","compensation_unit","currency"],"title":"CompanyIncomeObjResponse","x-tags":["Schemas"]},"CompanyPaystubObjResponse":{"properties":{"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"employee_external_id":{"type":"string","title":"employee_external_id","description":"Employee ID as reported by their employer."},"pay_date":{"type":"string","format":"date","title":"pay_date","description":"The date when the check amount is paid to the employee."},"pay_period_start":{"type":"string","format":"date","title":"pay_period_start","description":"The date when the pay period begins. Some platforms, like unemployment portals, do not have fixed pay periods."},"pay_period_end":{"type":"string","format":"date","title":"pay_period_end","description":"The date when the pay period ends. Some platforms, like unemployment portals, do not have fixed pay periods."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"gross_pay_amount":{"type":"integer","title":"gross_pay_amount","description":"The total earnings before any deductions are made, in cents."},"net_pay_amount":{"type":"integer","title":"net_pay_amount","description":"The total earnings after all taxes and deductions are removed, in cents."},"check_amount":{"type":"integer","title":"check_amount","description":"The amount paid to the employee in this payout, in cents."},"gross_pay_ytd":{"type":"integer","title":"gross_pay_ytd","description":"The cumulative year to date total earnings before any taxes or deductions are removed, in cents."},"net_pay_ytd":{"type":"integer","title":"net_pay_ytd","description":"The cumulative year to date total earnings after all taxes and deductions are removed, in cents."},"total_taxes":{"type":"integer","title":"total_taxes","description":"The total taxes for this pay period, in cents."},"total_deductions":{"type":"integer","title":"total_deductions","description":"The total deductions for this pay period, in cents."},"total_reimbursements":{"type":"integer","title":"total_reimbursements","description":"The total reimbursements for this pay period, in cents."},"employer_name":{"type":"string","title":"employer_name","description":"The name of the employer that issued the paystub."}},"type":"object","required":["created_at","employee_external_id","pay_date","currency","gross_pay_amount","net_pay_amount","check_amount","total_taxes","total_deductions","total_reimbursements"],"title":"CompanyPaystubObjResponse","x-tags":["Schemas"]},"CreateAPIKeyOptions":{"properties":{"expires_at":{"type":"string","format":"date-time","title":"expires_at","description":"Timestamp used to set when this key automatically expires."}},"type":"object","title":"CreateAPIKeyOptions","x-tags":["Schemas"]},"CreateAPIKeyResponse":{"properties":{"data":{"$ref":"#/components/schemas/CreateAPIKeyResponseData"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"CreateAPIKeyResponseData":{"properties":{"mode":{"description":"The mode that the Admin API token is authorized for.","type":"string","enum":["sandbox","development","production"]},"key":{"type":"string","title":"key","description":"The public token that refers to your API key, as distinct from the API Secret."},"expires_at":{"type":"string","format":"date-time","title":"expires_at","description":"Timestamp used to set when this key automatically expires."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"secret":{"type":"string","title":"secret","description":"The secret token part of the API key used to authorize requests to the Pinwheel API."}},"type":"object","required":["mode","key","created_at","secret"],"title":"CreateAPIKeyResponseData","x-tags":["Schemas"]},"CreateAdminTokenRequest":{"properties":{"username":{"type":"string","title":"username","description":"Username or email of the Developer Dashboard user used to create an Admin API token."},"password":{"type":"string","title":"password","description":"Password of the Developer Dashboard user used to create an Admin API token."}},"type":"object","required":["username","password"],"title":"CreateAdminTokenRequest","x-tags":["Schemas"]},"CreateAdminTokenResponse":{"properties":{"data":{"$ref":"#/components/schemas/CreateAdminTokenResponseData"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"CreateAdminTokenResponseData":{"properties":{"token":{"type":"string","format":"uuid","title":"token","description":"Short-lived token that is used to authorize Admin API endpoints."},"expiration":{"type":"string","format":"date-time","title":"expiration","description":"Timestamp of when the Admin API token expires."},"workspace_name":{"type":"string","title":"workspace_name","description":"Name of the workspace the Admin API token is authorized for."},"mode":{"description":"The mode that the Admin API token is authorized for.","type":"string","enum":["sandbox","development","production"]},"user_role":{"description":"The role of the developer-dashboard user the Admin API token was authenticated with.","type":"string","enum":["owner","administrator","developer"]}},"type":"object","required":["token","expiration","workspace_name","mode","user_role"],"title":"CreateAdminTokenResponseData","x-tags":["Schemas"]},"DDAllocationObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier of the Direct Deposit Allocations object."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"allocations":{"items":{"$ref":"#/components/schemas/AllocationAccountObjResponse"},"type":"array","title":"allocations","description":"List of current allocations for this payroll account."}},"type":"object","required":["id","account_id","created_at","updated_at","allocations"],"title":"Direct Deposit Allocations","x-tags":["Schemas"]},"DeductionObjPublicResponseItem":{"properties":{"name":{"type":"string","title":"name","description":"The name of the deduction."},"category":{"description":"The category of deduction.","type":"string","enum":["retirement","medical_insurance","hsa","fsa","dental","vision","life_insurance","disability","child_support","commuter","union_dues","stock","charity","savings","tips","wage_garnishment","lending","company_perk","tax","loan","job_expense","other","fees","reallocation","retro_pay"]},"amount":{"type":"integer","title":"amount","description":"The amount of deduction, in cents."},"type":{"description":"The type of deduction.","type":"string","enum":["pre_tax","post_tax","unknown"]}},"type":"object","required":["name","category","amount","type"],"title":"Deduction","x-tags":["Schemas"]},"DirectDepositAllocationDetail":{"properties":{"type":{"description":"Indicates what type of allocation this is.","type":"string","enum":["amount","percentage","remainder"]},"value":{"type":"integer","title":"value","description":"The value (if any) for this allocation.  Will be set if the type is `percentage` or `amount`."},"target":{"$ref":"#/components/schemas/TargetAccount","description":"The target account for this allocation."}},"type":"object","title":"DirectDepositAllocationDetail","x-tags":["Schemas"]},"DocumentObjPublicResponseItem":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier of the document object."},"download_url":{"type":"string","title":"download_url","description":"URL from which the document may be downloaded."},"download_url_expiration":{"type":"string","format":"date-time","title":"download_url_expiration","description":"ISO 8601 timestamp of when the download URL will no longer be valid."}},"type":"object","required":["id"],"title":"Document","x-tags":["Schemas"]},"EarningObjPublicResponseItem":{"properties":{"name":{"type":"string","title":"name","description":"The name of the earning."},"category":{"description":"The category of earning.","type":"string","enum":["salary","hourly","overtime","double_overtime","premium","bonus","commission","tips","vacation","holiday","pto","sick","employer_contribution","other","fare","unpaid","parental","shift_differential","bereavement","life_insurance","stock","retirement","medical","meal_comp","disability","retro_pay"]},"amount":{"type":"integer","title":"amount","description":"The amount of earning, in cents."},"rate":{"type":"integer","title":"rate","description":"The amount earned per hour, in cents."},"hours":{"type":"number","title":"hours","description":"The hours worked."}},"type":"object","required":["name","category","amount"],"title":"Earning","x-tags":["Schemas"]},"EarningsStreamPayoutObjResponse_v2023_04_18":{"properties":{"status":{"description":"Status of the payout, either `estimated` or `processed`. `estimated` represents income that has been earned but not finalized in the payroll system. `processed` represents income that has a finalized paystub issued in the payroll system.","type":"string","enum":["estimated","processed"]},"pay_date":{"type":"string","format":"date","title":"pay_date","description":"Date that the payout will arrive in a user's account. This date includes a buffer for ACH settlement time. For estimated payouts, this is projected from historical pay dates and may differ by a few days from actual settlement. For processed payouts, this is taken directly from the paystub."},"net_pay":{"$ref":"#/components/schemas/NetPayObjResponse","description":"Object representing how much someone will receive in net pay (i.e., the pay that will be disbursed to user-directed accounts) for the work they completed that day. This is equivalent to (gross pay - deductions). E.g., gross pay minus income tax, healthcare, 401k contributions, or other withholdings that are not included in the user's payout."},"earnings":{"items":{},"type":"array","title":"earnings","description":"List of objects representing income earned on a given day. All earnings roll up into specific payouts."}},"type":"object","required":["status","pay_date","earnings"],"title":"EarningsStreamPayoutsResponse","x-tags":["Schemas"]},"EarningsYtds":{"properties":{"amount":{"type":"integer","title":"amount","description":"The year to date earnings amount for an earning category, in cents."},"category":{"description":"The category of earning.","type":"string","enum":["salary","hourly","overtime","double_overtime","premium","bonus","commission","tips","vacation","holiday","pto","sick","employer_contribution","other","fare","unpaid","parental","shift_differential","bereavement","life_insurance","stock","retirement","medical","meal_comp","disability","retro_pay"]}},"type":"object","title":"EarningsYtds","x-tags":["Schemas"]},"EmployeeName":{"properties":{"first_name":{"type":"string","title":"first_name","description":"The first name of the employee."},"middle_name":{"type":"string","title":"middle_name","description":"The middle name of the employee."},"last_name":{"type":"string","title":"last_name","description":"The last name of the employee."},"full_name":{"type":"string","title":"full_name","description":"The full name of the employee."}},"type":"object","required":["full_name"],"title":"EmployeeName","x-tags":["Schemas"]},"EmployeeNameAndAddress":{"properties":{"name":{"type":"string","title":"name","description":"The full name of the employee."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employee."}},"type":"object","title":"EmployeeNameAndAddress","x-tags":["Schemas"]},"EmployeeResponseObj":{"properties":{"name":{"$ref":"#/components/schemas/EmployeeName","description":"The name of the employee."},"date_of_birth":{"type":"string","format":"date","title":"date_of_birth","description":"The date the employee was born."},"last_four_ssn":{"type":"string","title":"last_four_ssn","description":"The last four digits of the employee's social security number (SSN)."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employee."},"phone_numbers":{"items":{"$ref":"#/components/schemas/PhoneNumberGetResponseItem"},"type":"array","title":"phone_numbers","description":"The phone numbers of the employee."}},"type":"object","required":["name"],"title":"EmployeeResponseObj","x-tags":["Schemas"]},"EmployerNameAndAddress":{"properties":{"name":{"type":"string","title":"name","description":"Name of employer, e.g., Apple, Disney, Walmart."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employer."}},"type":"object","title":"EmployerNameAndAddress","x-tags":["Schemas"]},"EmployerObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"UUID of the employer."},"name":{"type":"string","title":"name","description":"Name of employer, e.g., Apple, Disney, Walmart."},"last_updated":{"type":"string","format":"date-time","title":"last_updated","description":"ISO 8601 timestamp of the last update to this object."},"logo_url":{"type":"string","title":"logo_url","description":"The URL of the employer logo."},"supported_jobs":{"items":{"type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"type":"array","title":"supported_jobs","description":"Array of supported jobs."},"fractional_amount_supported":{"type":"boolean","title":"fractional_amount_supported","description":"Whether or not the platform accepts decimal values for `direct_deposit_switch`."},"amount_supported":{"type":"boolean","title":"amount_supported","description":"Whether a direct deposit job supports specific amount."},"min_amount":{"type":"number","title":"min_amount","description":"Minimum amount, if any, platform accepts for `direct_deposit_switch`."},"max_amount":{"type":"number","title":"max_amount","description":"Maximum amount, if any, platform accepts for `direct_deposit_switch`."},"min_percentage":{"type":"integer","exclusiveMaximum":true,"exclusiveMinimum":true,"title":"min_percentage","description":"Minimum percentage allowed for `direct_deposit_switch`.","maximum":100.0,"minimum":0.0},"max_percentage":{"type":"integer","exclusiveMaximum":true,"exclusiveMinimum":true,"title":"max_percentage","description":"Maximum percentage allowed for `direct_deposit_switch`.","maximum":100.0,"minimum":0.0},"percentage_supported":{"type":"boolean","title":"percentage_supported","description":"Whether a direct deposit job supports percentage switching."}},"type":"object","required":["id","name","last_updated","supported_jobs","fractional_amount_supported","amount_supported","min_percentage","max_percentage","percentage_supported"],"title":"Employer","x-tags":["Schemas"]},"EmploymentObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"Unique identifier for the object."},"status":{"description":"The employment status of the employee.","type":"string","enum":["employed","terminated","furloughed"]},"start_date":{"type":"string","format":"date","title":"start_date","description":"The date the employee began their job."},"termination_date":{"type":"string","format":"date","title":"termination_date","description":"The date the employee was terminated."},"employer_name":{"type":"string","title":"employer_name","description":"Name of employer, e.g., Apple, Disney, Walmart."},"employer_address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employer."},"employer_phone_number":{"$ref":"#/components/schemas/PhoneNumberGetResponseItem","description":"The phone number of the employer."},"title":{"type":"string","title":"title","description":"The job title of the employee."}},"type":"object","required":["id","created_at","updated_at","account_id","employer_name"],"title":"Employment","x-tags":["Schemas"]},"EmploymentResponseObj":{"properties":{"employer_name":{"type":"string","title":"employer_name","description":"Name of employer, e.g., Apple, Disney, Walmart."},"employer_address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employer."},"start_date":{"type":"string","format":"date","title":"start_date","description":"The date the employee began their job."},"employment_duration_months":{"type":"integer","title":"employment_duration_months","description":"The length of time, in months, the employee has been active with the employer."},"employment_status":{"description":"The employment status of the employee.","type":"string","enum":["employed","terminated","furloughed"]},"employment_type":{"type":"string","title":"employment_type","description":"The employment type e.g. full time, part time, seasonal, contractor."},"termination_date":{"type":"string","format":"date","title":"termination_date","description":"The date the employee was terminated."},"title":{"type":"string","title":"title","description":"The job title of the employee."},"most_recent_pay_date":{"type":"string","format":"date","title":"most_recent_pay_date","description":"The latest date when the employee received regular pay."}},"type":"object","required":["employer_name"],"title":"EmploymentResponseObj","x-tags":["Schemas"]},"EndUser":{"properties":{"platform_matching":{"$ref":"#/components/schemas/LinkUserAuthenticationDataObjCreate","description":"User PII data for enabling partner-based switches."}},"type":"object","title":"EndUser","x-tags":["Schemas"]},"EndUserDocumentObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier of the document object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"end_user_id":{"type":"string","title":"end_user_id","description":"User ID provided by you, to associate Pinwheel users with your user model. Required if `account_id` is not provided. This ID will be returned in all webhook events and all account-affiliated API responses. Leading and trailing whitespace will be stripped. Do not include PII in this identifier."},"document":{"$ref":"#/components/schemas/DocumentObjPublicResponseItem","description":"A document."},"document_type":{"description":"The type of the document.","type":"string","enum":["paystub","W-2","1099","direct_deposit_form","verification_report","1040","bank_statement","ssi_award_letter","w2","verification_photo"]},"parsed_data":{"oneOf":[{"$ref":"#/components/schemas/UploadedPaystub"},{"$ref":"#/components/schemas/UploadedBankStatement"},{"$ref":"#/components/schemas/UploadedSSIAwardLetter"},{"$ref":"#/components/schemas/UploadedW2Informed"}],"discriminator":{"propertyName":"document_type","mapping":{"bank_statement":"#/components/schemas/UploadedBankStatement","paystub":"#/components/schemas/UploadedPaystub","ssi_award_letter":"#/components/schemas/UploadedSSIAwardLetter","w2":"#/components/schemas/UploadedW2Informed"}},"title":"parsed_data","description":"The parsed data of the document."},"warnings":{"items":{"$ref":"#/components/schemas/FieldWarning"},"type":"array","title":"warnings","description":"Used to indicate if there are any warnings for fields returned in this response."},"fraud":{"$ref":"#/components/schemas/SharedFraud","description":"Used to indicate any fraud indications in this document."}},"type":"object","required":["id","created_at","end_user_id","document","document_type"],"title":"Document for end user","x-tags":["Schemas"]},"FieldWarning":{"properties":{"field":{"type":"string","title":"field","description":"The response field associated with this warning. Nested values are delimited with a `.`, i.e. `parsed_data.box_13.statutory_employee`."},"status":{"description":"The status type of this warning.","type":"string","enum":["unparsable"]},"message":{"type":"string","title":"message","description":"A full description of the warning."}},"type":"object","required":["field","status","message"],"title":"FieldWarning","x-tags":["Schemas"]},"FreshnessPaginationListMeta":{"properties":{"refreshed_at":{"type":"string","format":"date-time","title":"refreshed_at","description":"ISO 8601 timestamp of the most recent refresh of this data."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"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":"FreshnessPaginationListMeta","x-tags":["Schemas"]},"IdentityObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"Unique identifier for the object."},"full_name":{"type":"string","title":"full_name","description":"The full name of the employee."},"emails":{"items":{"type":"string"},"type":"array","title":"emails","description":"The emails associated with the employee."},"date_of_birth":{"type":"string","format":"date","title":"date_of_birth","description":"The date the employee was born."},"last_four_ssn":{"type":"string","maxLength":4,"minLength":4,"pattern":"^\\d{4}$","title":"last_four_ssn","description":"The last four digits of the employee's social security number (SSN)."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employee."},"phone_numbers":{"items":{"$ref":"#/components/schemas/PhoneNumberGetResponseItem"},"type":"array","title":"phone_numbers","description":"The phone numbers of the employee."}},"type":"object","required":["id","created_at","updated_at","account_id","full_name"],"title":"Identity","x-tags":["Schemas"]},"IncomeAndEmploymentResponseObj":{"properties":{"employer_name":{"type":"string","title":"employer_name","description":"Name of employer, e.g., Apple, Disney, Walmart."},"employer_address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"The address of the employer."},"start_date":{"type":"string","format":"date","title":"start_date","description":"The date the employee began their job."},"employment_duration_months":{"type":"integer","title":"employment_duration_months","description":"The length of time, in months, the employee has been active with the employer."},"employment_status":{"description":"The employment status of the employee.","type":"string","enum":["employed","terminated","furloughed"]},"employment_type":{"type":"string","title":"employment_type","description":"The employment type e.g. full time, part time, seasonal, contractor."},"termination_date":{"type":"string","format":"date","title":"termination_date","description":"The date the employee was terminated."},"title":{"type":"string","title":"title","description":"The job title of the employee."},"most_recent_pay_date":{"type":"string","format":"date","title":"most_recent_pay_date","description":"The latest date when the employee received regular pay."},"income":{"$ref":"#/components/schemas/IncomeResponseObj","description":"Income details for the employment."}},"type":"object","required":["employer_name","income"],"title":"IncomeAndEmploymentResponseObj","x-tags":["Schemas"]},"IncomeObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"Unique identifier for the object."},"compensation_amount":{"type":"integer","title":"compensation_amount","description":"The amount per compensation unit, in cents."},"compensation_unit":{"description":"The compensation time frame.","type":"string","enum":["hourly","daily","weekly","bi-weekly","semi-weekly","monthly","semi-monthly","annually","variable","per_mile"]},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"pay_frequency":{"description":"Describes how often the employee is paid.","type":"string","enum":["daily","weekly","bi-weekly","monthly","semi-monthly","variable"]}},"type":"object","required":["id","created_at","updated_at","account_id","compensation_amount","compensation_unit","currency"],"title":"Income","x-tags":["Schemas"]},"IncomeResponseObj":{"properties":{"pay_frequency":{"description":"Describes how often the employee is paid.","type":"string","enum":["daily","weekly","bi-weekly","monthly","semi-monthly","variable"]},"compensation_unit":{"description":"The compensation time frame.","type":"string","enum":["hourly","daily","weekly","bi-weekly","semi-weekly","monthly","semi-monthly","annually","variable","per_mile"]},"compensation_amount":{"type":"integer","title":"compensation_amount","description":"The amount per compensation unit, in cents."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"annual_incomes":{"items":{"$ref":"#/components/schemas/AnnualIncomeResponseObj"},"type":"array","title":"annual_incomes","description":"Annualized pay details for the user. Starting with the current year and going back at most 2 years."},"paystubs":{"items":{"$ref":"#/components/schemas/PaystubWithEarningsResponseObj"},"type":"array","title":"paystubs","description":"Up to 2 most recent paystubs for the employee's income."}},"type":"object","required":["compensation_unit","compensation_amount","currency","annual_incomes","paystubs"],"title":"IncomeResponseObj","x-tags":["Schemas"]},"JobObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"name":{"description":"Name of the completed job.","type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"timestamp":{"type":"string","format":"date-time","title":"timestamp","description":"ISO 8601 timestamp of job completion."},"outcome":{"description":"The outcome of the job.","type":"string","enum":["success","pending","error"]},"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":{"$ref":"#/components/schemas/ParamsPayload","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"]},"JobObjResponse_v2023_11_22":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"name":{"description":"Name of the completed job.","type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"timestamp":{"type":"string","format":"date-time","title":"timestamp","description":"ISO 8601 timestamp of job completion."},"outcome":{"description":"The outcome of the job.","type":"string","enum":["success","pending","error"]},"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":{"$ref":"#/components/schemas/ParamsPayload_v2023_11_22","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"]},"LinkTokenCreate_v2025_07_08":{"properties":{"org_name":{"type":"string","maxLength":30,"minLength":3,"title":"org_name","description":"Organization or app name that is displayed to the user."},"allocation":{"$ref":"#/components/schemas/Allocation","description":"Allocation specified for the link token."},"skip_intro_screen":{"type":"boolean","title":"skip_intro_screen","description":"If set to true, intro screen is not shown to user.","default":false},"employer_id":{"type":"string","format":"uuid","title":"employer_id","description":"UUID of an employer. If set, user is taken directly to Link login screen."},"disable_direct_deposit_splitting":{"type":"boolean","title":"disable_direct_deposit_splitting","description":"If set to true, user will not be given the option to choose between a full or partial direct deposit switch. Only relevant with job `direct_deposit_switch`. Defaults to false.","default":false},"platform_id":{"type":"string","format":"uuid","title":"platform_id","description":"UUID of a platform. If set, user is taken directly to Link login screen."},"platform_type":{"description":"The type of the platform. `payroll` platforms are used for direct-deposit switching and for Verify use cases. `time_and_attendance` platforms contain data around shifts and hours. `tax` platforms are used for tax solutions. `merchant` type platforms are used for bill switching and cancellation.","type":"string","enum":["payroll","time_and_attendance","tax","merchant"]},"language":{"description":"IETF code denoting which language to display in Link.","default":"en","type":"string","enum":["en","es","es-419","pt-br"]},"end_user_id":{"type":"string","maxLength":255,"minLength":1,"title":"end_user_id","description":"User ID provided by you, to associate Pinwheel users with your user model. Required if `account_id` is not provided. This ID will be returned in all webhook events and all account-affiliated API responses. Leading and trailing whitespace will be stripped. Do not include PII in this identifier."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"document_uploads":{"description":"Optional parameter to facilitate pathway into document uploads usage. Defaults to None.","type":"string","enum":["direct","fallback","disabled"]},"tags":{"additionalProperties":{"type":"string"},"type":"object","title":"tags","description":"Tags associated with the Link token. These are restricted to string key-value pairs."},"deposit_forms":{"description":"Optional parameter to facilitate pathway into deposit forms. Defaults to fallback if deposit forms are enabled for your workspace.","type":"string","enum":["direct","fallback","disabled"]},"use_case":{"description":"Field to indicate where in your application Pinwheel is being launched. Required if leveraging Background Identify (PreMatch employee lookup check prior to SDK initialization).","type":"string","enum":["account_onboarding","account_servicing","underwriting"]},"end_user":{"$ref":"#/components/schemas/EndUser","description":"Optional field where data about an end user can be provided to enable products such as automated platform matching."},"cards":{"items":{"$ref":"#/components/schemas/CardDetails"},"type":"array","title":"cards","description":"Card details needed to attempt a bill switch."},"reseller_customer_id":{"type":"string","maxLength":40,"title":"reseller_customer_id","description":"The identifier for a reseller's customer. This field is required for resellers. For other customers, a non-null value will result in a 400 error. The value supplied must be preregistered with Pinwheel's customer success team."},"solution":{"description":"The Pinwheel solution to be presented to the user.","type":"string","enum":["Verify","Switch Kit","Deposit Switch","Paycheck Viewer","Bill Switch","Bill Manager"]},"features":{"items":{"type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"type":"array","title":"features","description":"A list of job types to be performed on the user's account. Platforms/merchants that do not support ALL of these jobs will not be visible to the user. This property is required unless the account_id property is set."}},"type":"object","required":["org_name","solution"],"title":"LinkTokenPostBody","x-tags":["Schemas"]},"LinkTokenObjResponse_v2021_07_28":{"properties":{"mode":{"description":"Token mode, i.e. `sandbox`, `development`, or `production`.","type":"string","enum":["sandbox","development","production"]},"id":{"type":"string","format":"uuid","title":"id","description":"UUID of the link token."},"token":{"type":"string","title":"token","description":"Short-lived token that is used to initialize Pinwheel Link."},"smart_branch_url":{"type":"string","title":"smart_branch_url","description":"URL that will initiate a Pinwheel-hosted smart branch experience, if smart branch is configured for the workspace."},"expires":{"type":"string","format":"date-time","title":"expires","description":"The token will be invalid after this timestamp."}},"type":"object","required":["mode","id","token","expires"],"title":"LinkToken","x-tags":["Schemas"]},"LinkUserAuthenticationDataObjCreate":{"properties":{"social_security_number":{"type":"string","maxLength":9,"minLength":9,"pattern":"^\\d{9}$","title":"social_security_number","description":"Full 9-digit social security number of the user (required). Using full SSN will improve conversion."},"date_of_birth":{"type":"string","title":"date_of_birth","description":"The user's date of birth in `YYYY-MM-DD` format (required)."},"last_name":{"type":"string","title":"last_name","description":"The user's last name (required)."},"first_name":{"type":"string","title":"first_name","description":"The user's first name (required)."},"mobile_phone_number":{"type":"string","maxLength":10,"minLength":10,"pattern":"^[0-9]*$","title":"mobile_phone_number","description":"The users's 10-digit mobile phone number (required). Do not include country code."},"home_address_zip_code":{"type":"string","maxLength":5,"minLength":5,"pattern":"^[0-9]*$","title":"home_address_zip_code","description":"The user's 5-digit home zip code (required)."},"email":{"type":"string","format":"email","title":"email","description":"The user's email (strongly recommended). The email must have valid syntax with an @ and valid domain e.g. `name@example.com`. If provided email is invalid a 400 will be returned. For more details on validation see https://github.com/JoshData/python-email-validator."}},"type":"object","title":"LinkUserAuthenticationDataObjCreate","x-tags":["Schemas"]},"ListAPIKeyResponseData":{"properties":{"mode":{"description":"The mode that the Admin API token is authorized for.","type":"string","enum":["sandbox","development","production"]},"key":{"type":"string","title":"key","description":"The public token that refers to your API key, as distinct from the API Secret."},"expires_at":{"type":"string","format":"date-time","title":"expires_at","description":"Timestamp used to set when this key automatically expires."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"last_used_at":{"type":"string","format":"date","title":"last_used_at","description":"Date the API key was last used in a Pinwheel API request. Null if the key hasn't been used."},"is_active":{"type":"boolean","title":"is_active","description":"If true, the API key can be used in Pinwheel API requests. Otherwise, the key is no longer useable."},"revoked_at":{"type":"string","format":"date-time","title":"revoked_at","description":"Timestamp of when this key was revoked."}},"type":"object","required":["mode","key","created_at","is_active"],"title":"ListAPIKeyResponseData","x-tags":["Schemas"]},"ListMeta":{"properties":{"count":{"type":"integer","title":"count","description":"Number of objects returned."}},"type":"object","title":"ListMeta","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":{"description":"The account type for this payment.","type":"string","enum":["checking","savings"]},"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"]},"NetPayObjResponse":{"properties":{"amount":{"type":"integer","title":"amount","description":"Amount of net pay, denominated in the smallest unit for the currency, e.g. for USD, 10000 represents $100 since the smallest unit is cents. See ISO 4217."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]}},"type":"object","required":["amount","currency"],"title":"NetPayObjResponse","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"]},"ParamsPayload":{"properties":{"batch_size":{"type":"integer","title":"batch_size","description":"The number of paystubs to process in each batch."},"batch_number":{"type":"integer","title":"batch_number","description":"The number of the batch to process."},"total_employees":{"type":"integer","title":"total_employees","description":"The total number of employees in the company."},"document_type":{"description":"The type of the document.","type":"string","enum":["paystub","W-2","1099","direct_deposit_form","verification_report","1040","bank_statement","ssi_award_letter","w2","verification_photo"]},"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":{"description":"The current synchronization status of the payroll platforms data with Pinwheel's data.","type":"string","enum":["in_progress","complete"]},"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":{"description":"The type of payment that was used in a bill switch job.","type":"string","enum":["ach","card"]},"payment":{"$ref":"#/components/schemas/MerchantPayment","description":"The payment that was updated during a bill switch job."},"frequency":{"description":"How often the recurring bill is paid.","type":"string","enum":["weekly","bi-weekly","monthly","bi-monthly","quarterly","semi-yearly","yearly","other"]},"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":{"description":"Whether this bill was detected from an external account (`external-plaid`), uploaded transaction data (`first-party`), or created manually by the user (`manual`).","type":"string","enum":["manual","external_plaid","first_party"]},"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."},"amount":{"type":"integer","title":"amount","description":"The amount to allocate per paycheck in the direct_deposit_switch jobs."}},"type":"object","title":"ParamsPayload","x-tags":["Schemas"]},"ParamsPayload_v2023_11_22":{"properties":{"document_type":{"description":"The type of the document.","type":"string","enum":["paystub","W-2","1099","direct_deposit_form","verification_report","1040","bank_statement","ssi_award_letter","w2","verification_photo"]},"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","title":"from_pay_date","description":"The earliest pay date for the set of available paystubs in the paystubs job."},"to_pay_date":{"type":"string","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":{"description":"The current synchronization status of the payroll platforms data with Pinwheel's data.","type":"string","enum":["in_progress","complete"]},"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":{"description":"The type of payment that was used in a bill switch job.","type":"string","enum":["ach","card"]},"payment":{"$ref":"#/components/schemas/MerchantPayment","description":"The payment that was updated during a bill switch job."},"frequency":{"description":"How often the recurring bill is paid.","type":"string","enum":["weekly","bi-weekly","monthly","bi-monthly","quarterly","semi-yearly","yearly","other"]},"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":{"description":"Whether this bill was detected from an external account (`external-plaid`), uploaded transaction data (`first-party`), or created manually by the user (`manual`).","type":"string","enum":["manual","external_plaid","first_party"]},"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":{"description":"Indicates whether the `direct_deposit_switch` was a full or partial switch.","type":"string","enum":["full_switch","partial_switch"]},"allocation":{"$ref":"#/components/schemas/DirectDepositAllocationDetail","description":"The allocation that was created/updated during a `direct_deposit_switch`."}},"type":"object","title":"ParamsPayload_v2023_11_22","x-tags":["Schemas"]},"PayrollAccountObjResponse":{"additionalProperties":true,"type":"object","x-tags":["Schemas"]},"PayrollAccountPatchMonitoringStatus":{"properties":{"monitoring_status":{"description":"Monitoring status describes the the automated ability of Pinwheel to retrieve new account information.","type":"string","enum":["user_action_required"]}},"type":"object","title":"PayrollAccountPatchMonitoringStatus","x-tags":["Schemas"]},"PaystubObjResponse_v2022_03_02":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"pay_date":{"type":"string","format":"date","title":"pay_date","description":"The date when the check amount is paid to the employee."},"pay_period_start":{"type":"string","format":"date","title":"pay_period_start","description":"The date when the pay period begins. Some platforms, like unemployment portals, do not have fixed pay periods."},"pay_period_end":{"type":"string","format":"date","title":"pay_period_end","description":"The date when the pay period ends. Some platforms, like unemployment portals, do not have fixed pay periods."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"gross_pay_amount":{"type":"integer","title":"gross_pay_amount","description":"The total earnings before any deductions are made, in cents."},"net_pay_amount":{"type":"integer","title":"net_pay_amount","description":"The total earnings after all taxes and deductions are removed, in cents."},"check_amount":{"type":"integer","title":"check_amount","description":"The amount paid to the employee in this payout, in cents."},"gross_pay_ytd":{"type":"integer","title":"gross_pay_ytd","description":"The cumulative year to date total earnings before any taxes or deductions are removed, in cents."},"net_pay_ytd":{"type":"integer","title":"net_pay_ytd","description":"The cumulative year to date total earnings after all taxes and deductions are removed, in cents."},"total_taxes":{"type":"integer","title":"total_taxes","description":"The total taxes for this pay period, in cents."},"total_deductions":{"type":"integer","title":"total_deductions","description":"The total deductions for this pay period, in cents."},"total_reimbursements":{"type":"integer","title":"total_reimbursements","description":"The total reimbursements for this pay period, in cents."},"external_paystub_id":{"type":"string","title":"external_paystub_id","description":"The external id of a single paystub from the payroll provider."},"employer_name":{"type":"string","title":"employer_name","description":"The name of the employer that issued the paystub."},"taxes":{"items":{"$ref":"#/components/schemas/TaxObjPublicResponseItem"},"type":"array","title":"taxes","description":"The taxes for this pay period, in cents."},"deductions":{"items":{"$ref":"#/components/schemas/DeductionObjPublicResponseItem"},"type":"array","title":"deductions","description":"The deductions for this pay period, in cents."},"earnings":{"items":{"$ref":"#/components/schemas/EarningObjPublicResponseItem"},"type":"array","title":"earnings","description":"The earnings for this pay period, in cents."},"time_off":{"items":{"$ref":"#/components/schemas/TimeOffObjPublicResponseItem"},"type":"array","title":"time_off","description":"The user's time off balances for this pay period. To enable time off balances, please contact Pinwheel support."},"document":{"$ref":"#/components/schemas/DocumentObjPublicResponseItem","description":"The document for this paystub."}},"type":"object","required":["id","created_at","account_id","pay_date","currency","gross_pay_amount","net_pay_amount","check_amount","total_taxes","total_deductions","total_reimbursements","taxes","deductions","earnings","time_off"],"title":"Paystub","x-tags":["Schemas"]},"PaystubWithEarningsResponseObj":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"pay_date":{"type":"string","format":"date","title":"pay_date","description":"The date when the check amount is paid to the employee."},"pay_period_start":{"type":"string","format":"date","title":"pay_period_start","description":"The date when the pay period begins. Some platforms, like unemployment portals, do not have fixed pay periods."},"pay_period_end":{"type":"string","format":"date","title":"pay_period_end","description":"The date when the pay period ends. Some platforms, like unemployment portals, do not have fixed pay periods."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"gross_pay_amount":{"type":"integer","title":"gross_pay_amount","description":"The total earnings before any deductions are made, in cents."},"net_pay_amount":{"type":"integer","title":"net_pay_amount","description":"The total earnings after all taxes and deductions are removed, in cents."},"check_amount":{"type":"integer","title":"check_amount","description":"The amount paid to the employee in this payout, in cents."},"gross_pay_ytd":{"type":"integer","title":"gross_pay_ytd","description":"The cumulative year to date total earnings before any taxes or deductions are removed, in cents."},"net_pay_ytd":{"type":"integer","title":"net_pay_ytd","description":"The cumulative year to date total earnings after all taxes and deductions are removed, in cents."},"total_taxes":{"type":"integer","title":"total_taxes","description":"The total taxes for this pay period, in cents."},"total_deductions":{"type":"integer","title":"total_deductions","description":"The total deductions for this pay period, in cents."},"total_reimbursements":{"type":"integer","title":"total_reimbursements","description":"The total reimbursements for this pay period, in cents."},"external_paystub_id":{"type":"string","title":"external_paystub_id","description":"The external id of a single paystub from the payroll provider."},"employer_name":{"type":"string","title":"employer_name","description":"The name of the employer that issued the paystub."},"earnings":{"items":{"$ref":"#/components/schemas/EarningObjPublicResponseItem"},"type":"array","title":"earnings","description":"The earnings for this pay period, in cents."}},"type":"object","required":["id","created_at","account_id","pay_date","currency","gross_pay_amount","net_pay_amount","check_amount","total_taxes","total_deductions","total_reimbursements","earnings"],"title":"PaystubWithEarningsResponseObj","x-tags":["Schemas"]},"PhoneNumberGetResponseItem":{"properties":{"value":{"type":"string","title":"value","description":"The E.164 formatted phone number."},"type":{"description":"home, mobile, work, etc.","type":"string","enum":["home","work","mobile"]}},"type":"object","required":["value"],"title":"Phone","x-tags":["Schemas"]},"PlatformObjResponse":{"additionalProperties":true,"type":"object","x-tags":["Schemas"]},"RefreshableMeta":{"properties":{"refreshed_at":{"type":"string","format":"date-time","title":"refreshed_at","description":"ISO 8601 timestamp of the most recent refresh of this data."}},"type":"object","title":"RefreshableMeta","x-tags":["Schemas"]},"RefreshablePaginationListMeta":{"properties":{"refreshed_at":{"type":"string","format":"date-time","title":"refreshed_at","description":"ISO 8601 timestamp of the most recent refresh of this data."},"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":"RefreshablePaginationListMeta","x-tags":["Schemas"]},"RevokeAPIKeyResponse":{"properties":{"data":{"$ref":"#/components/schemas/RevokeAPIKeyResponseData"}},"type":"object","required":["data"],"x-tags":["Schemas"]},"RevokeAPIKeyResponseData":{"properties":{"mode":{"description":"The mode that the Admin API token is authorized for.","type":"string","enum":["sandbox","development","production"]},"key":{"type":"string","title":"key","description":"The public token that refers to your API key, as distinct from the API Secret."},"expires_at":{"type":"string","format":"date-time","title":"expires_at","description":"Timestamp used to set when this key automatically expires."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"revoked_at":{"type":"string","format":"date-time","title":"revoked_at","description":"Timestamp of when this key was revoked."}},"type":"object","required":["mode","key","created_at","revoked_at"],"title":"RevokeAPIKeyResponseData","x-tags":["Schemas"]},"SearchResultObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"name":{"type":"string","title":"name","description":"Name of result."},"platform_type":{"description":"The type of the platform. `payroll` platforms are used for direct-deposit switching and for Verify use cases. `time_and_attendance` platforms contain data around shifts and hours. `tax` platforms are used for tax solutions. `merchant` type platforms are used for bill switching and cancellation.","type":"string","enum":["payroll","time_and_attendance","tax","merchant"]},"last_updated":{"type":"string","format":"date-time","title":"last_updated","description":"ISO 8601 timestamp of the last update to this object."},"logo_url":{"type":"string","title":"logo_url","description":"The URL of the employer or platform logo."},"supported_jobs":{"items":{"type":"string","enum":["identity","paystubs","income","direct_deposit_switch","bill_cancellation","employment","shifts","direct_deposit_payment","tax_forms","bill_switch","direct_deposit_allocations"]},"type":"array","title":"supported_jobs","description":"Array of supported jobs."},"fractional_amount_supported":{"type":"boolean","title":"fractional_amount_supported","description":"Whether or not the platform accepts decimal values for `direct_deposit_switch`."},"amount_supported":{"type":"boolean","title":"amount_supported","description":"Whether a direct deposit job supports specific amount."},"min_amount":{"type":"number","title":"min_amount","description":"Minimum amount, if any, platform accepts for `direct_deposit_switch`."},"max_amount":{"type":"number","title":"max_amount","description":"Maximum amount, if any, platform accepts for `direct_deposit_switch`."},"response_type":{"description":"Type of search result, either platform or employer.","type":"string","enum":["employer","platform"]},"min_percentage":{"type":"integer","exclusiveMaximum":true,"exclusiveMinimum":true,"title":"min_percentage","description":"Minimum percentage allowed for `direct_deposit_switch`.","maximum":100.0,"minimum":0.0},"max_percentage":{"type":"integer","exclusiveMaximum":true,"exclusiveMinimum":true,"title":"max_percentage","description":"Maximum percentage allowed for `direct_deposit_switch`.","maximum":100.0,"minimum":0.0},"percentage_supported":{"type":"boolean","title":"percentage_supported","description":"Whether a direct deposit job supports percentage switching."}},"type":"object","required":["id","name","last_updated","supported_jobs","fractional_amount_supported","amount_supported","min_amount","max_amount","response_type","min_percentage","max_percentage","percentage_supported"],"title":"SearchResult","x-tags":["Schemas"]},"SharedFraud":{"properties":{"status":{"description":"The suspected fraud status of the document.","type":"string","enum":["suspected","not_suspected","unavailable"]}},"type":"object","required":["status"],"title":"SharedFraud","x-tags":["Schemas"]},"ShiftEarningObjPublicResponseItem":{"properties":{"name":{"type":"string","title":"name","description":"The name of the earning."},"category":{"description":"The category of earning.","type":"string","enum":["salary","hourly","overtime","double_overtime","premium","bonus","commission","tips","vacation","holiday","pto","sick","employer_contribution","other","fare","unpaid","parental","shift_differential","bereavement","life_insurance","stock","retirement","medical","meal_comp","disability","retro_pay"]},"amount":{"type":"integer","title":"amount","description":"The amount of earning, in cents."},"rate":{"type":"integer","title":"rate","description":"The amount earned per hour, in cents."},"hours":{"type":"number","title":"hours","description":"The hours worked."}},"type":"object","required":["name","category"],"title":"Earning","x-tags":["Schemas"]},"ShiftObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier of the Shift object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"start_date":{"type":"string","format":"date","title":"start_date","description":"The date the Shift started. ISO 8601 format."},"end_date":{"type":"string","format":"date","title":"end_date","description":"The date the Shift ended. ISO 8601 format."},"type":{"description":"The type of the work performed.","type":"string","enum":["shift","rideshare","delivery","other"]},"timezone":{"type":"string","title":"timezone","description":"The timezone where the work was completed. Valid names are in the IANA Timezone Database."},"timestamps":{"items":{"$ref":"#/components/schemas/ShiftTimestamp"},"type":"array","title":"timestamps","description":"An array of objects that tracks clock in and out times over a shift."},"currency":{"description":"Three-letter ISO 4217 currency code, uppercase. For example, the code for US dollars is USD.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UZS","VEF","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XTS","XXX","YER","ZAR","ZMW"]},"earnings":{"items":{"$ref":"#/components/schemas/ShiftEarningObjPublicResponseItem"},"type":"array","title":"earnings","description":"An array of objects that represent a specific earning."}},"type":"object","required":["id","created_at","account_id","start_date","end_date","type","timestamps","currency","earnings"],"title":"Shift","x-tags":["Schemas"]},"ShiftTimestamp":{"properties":{"from":{"type":"string","format":"date-time","title":"from","description":"Datetime the work began. ISO 8601 format."},"to":{"type":"string","format":"date-time","title":"to","description":"Datetime the work ended. ISO 8601 format."}},"type":"object","required":["from","to"],"title":"ShiftTimestamp","x-tags":["Schemas"]},"TargetAccount":{"properties":{"account_name":{"type":"string","title":"account_name","description":"The account name (if any) for this allocation."},"account_type":{"description":"The account type for this allocation.","type":"string","enum":["checking","savings"]},"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"]},"TaxFormObjResponseNoDocument_v2022_06_22":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"form_type":{"description":"The type of form.","type":"string","enum":["W-2","W-2C","1099-NEC","1099-MISC","1099-K","1040"]},"year":{"type":"integer","title":"year","description":"The tax year of the form."}},"type":"object","required":["id","created_at","account_id","form_type","year"],"title":"TaxForm","x-tags":["Schemas"]},"TaxFormObjResponse_v2022_06_22":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"account_id":{"type":"string","format":"uuid","title":"account_id","description":"UUID of the payroll account."},"form_type":{"description":"The type of form.","type":"string","enum":["W-2","W-2C","1099-NEC","1099-MISC","1099-K","1040"]},"year":{"type":"integer","title":"year","description":"The tax year of the form."},"document":{"$ref":"#/components/schemas/DocumentObjPublicResponseItem","description":"The document for this tax form."},"parsed_data":{"$ref":"#/components/schemas/TaxFormW2","description":"The parsed data of the tax form document."},"warnings":{"items":{"$ref":"#/components/schemas/FieldWarning"},"type":"array","title":"warnings","description":"Used to indicate if there are any warnings for fields returned in this response."}},"type":"object","required":["id","created_at","account_id","form_type","year"],"title":"TaxForm","x-tags":["Schemas"]},"TaxFormW2":{"properties":{"document_type":{"type":"string","const":"W-2","title":"document_type","description":"The type of the document.","default":"W-2"},"box_a":{"type":"string","title":"box_a","description":"Employee's social security number. Box a IRS Form W-2."},"box_b":{"type":"string","title":"box_b","description":"Employer identification number (EIN). Box b IRS Form W-2."},"box_c":{"$ref":"#/components/schemas/W2BoxC","description":"Employer's name and address. Box c IRS Form W-2."},"box_d":{"type":"string","title":"box_d","description":"Control number. Box d IRS Form W-2."},"box_e":{"type":"string","title":"box_e","description":"Employee's name. Box e IRS Form Form W-2."},"box_f":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"Employee's address. Box f IRS Form W-2."},"box_1":{"type":"integer","title":"box_1","description":"Wages, tips, other compensation. Box 1 IRS Form W-2."},"box_2":{"type":"integer","title":"box_2","description":"Federal income tax withheld. Box 2 IRS Form W-2."},"box_3":{"type":"integer","title":"box_3","description":"Social security wages. Box 3 IRS Form W-2."},"box_4":{"type":"integer","title":"box_4","description":"Social security tax withheld. Box 4 IRS Form W-2."},"box_5":{"type":"integer","title":"box_5","description":"Medicare wages and tips. Box 5 IRS Form W-2."},"box_6":{"type":"integer","title":"box_6","description":"Medicare tax withheld. Box 6 IRS Form W-2."},"box_7":{"type":"integer","title":"box_7","description":"Social security tips. Box 7 IRS Form W-2."},"box_8":{"type":"integer","title":"box_8","description":"Allocated tips. Box 8 IRS Form W-2."},"box_9":{"type":"string","title":"box_9","description":"This field is intentionally left blank."},"box_10":{"type":"string","title":"box_10","description":"Dependent care benefits. Box 10 IRS Form W-2."},"box_11":{"type":"string","title":"box_11","description":"Nonqualified plans. Box 11 IRS Form W-2."},"box_12":{"items":{"$ref":"#/components/schemas/W2Box12"},"type":"array","title":"box_12","description":"Miscellaneous income or tax line items. Box 12 IRS Form W-2."},"box_13":{"$ref":"#/components/schemas/W2Box13","description":"Statutory employee, Retirement plan, or Third-party sick pay options. Box 13 IRS Form W-2."},"box_14":{"items":{"type":"string"},"type":"array","title":"box_14","description":"Other. Box 14 IRS Form W-2."},"box_15_to_20":{"items":{"$ref":"#/components/schemas/W2Box15To20"},"type":"array","title":"box_15_to_20","description":"Box 15 to 20 IRS Form W-2. These boxes may contain multiple sets of values if the either the state or the locality of the employee and the employer differ, and are separately taxed."},"corrected":{"type":"boolean","title":"corrected","description":"Whether this W-2 is a corrected form."},"void":{"type":"boolean","title":"void","description":"Whether this W-2 is void."}},"type":"object","title":"TaxFormW2","x-tags":["Schemas"]},"TaxObjPublicResponseItem":{"properties":{"name":{"type":"string","title":"name","description":"The name of the tax."},"category":{"description":"The category of tax.","type":"string","enum":["federal_income","social_security","medicare","state_income","local_income","other"]},"amount":{"type":"integer","title":"amount","description":"The amount of tax, in cents."}},"type":"object","required":["name","category","amount"],"title":"Tax","x-tags":["Schemas"]},"TimeOffObjPublicResponseItem":{"properties":{"name":{"type":"string","title":"name","description":"The name of the time off."},"category":{"description":"The category of the time off.","type":"string","enum":["pto","sick","other"]},"available_hours":{"type":"number","title":"available_hours","description":"The total hours of time off available, as of the pay period end date. In the event available_hours is not on the paystub, this value reflects the current available_hours at the time the paystub was retrieved."},"earned_hours":{"type":"number","title":"earned_hours","description":"The hours of time off earned during the pay period."},"used_hours":{"type":"number","title":"used_hours","description":"The hours of time off used during the pay period."}},"type":"object","required":["name","category"],"title":"TimeOff","x-tags":["Schemas"]},"UploadedBankStatement":{"properties":{"document_type":{"type":"string","const":"bank_statement","title":"document_type","description":"The type of the document.","default":"bank_statement"},"bank_name":{"type":"string","title":"bank_name","description":"The name of the bank associated with this bank statement."},"statement_begin_date":{"type":"string","title":"statement_begin_date","description":"The beginning date of the bank statement."},"statement_end_date":{"type":"string","title":"statement_end_date","description":"The end date of the bank statement."},"statement_holders":{"items":{"type":"string"},"type":"array","title":"statement_holders","description":"The holders of the bank statement."},"applicant1":{"$ref":"#/components/schemas/ApplicantNameAndAddress","description":"The first applicant associated with this bank statement."},"applicant2":{"$ref":"#/components/schemas/ApplicantNameAndAddress","description":"The second applicant associated with this bank statement."},"accounts":{"items":{"$ref":"#/components/schemas/BankAccount"},"type":"array","title":"accounts","description":"The accounts associated with this bank statement."}},"type":"object","title":"UploadedBankStatement","x-tags":["Schemas"]},"UploadedDeduction":{"properties":{"type":{"type":"string","title":"type","description":"The category of deduction."},"description":{"type":"string","title":"description","description":"The description of deduction."},"amount":{"type":"integer","title":"amount","description":"The amount of deduction, in cents."},"amount_ytd":{"type":"integer","title":"amount_ytd","description":"The amount ytd of deduction, in cents."}},"type":"object","title":"UploadedDeduction","x-tags":["Schemas"]},"UploadedEarning":{"properties":{"type":{"type":"string","title":"type","description":"The category of earning."},"description":{"type":"string","title":"description","description":"The description of the earning."},"amount":{"type":"integer","title":"amount","description":"The amount of earning, in cents."},"amount_ytd":{"type":"integer","title":"amount_ytd","description":"The amount ytd of earning, in cents."}},"type":"object","title":"UploadedEarning","x-tags":["Schemas"]},"UploadedPaystub":{"properties":{"document_type":{"type":"string","const":"paystub","title":"document_type","description":"The type of the document.","default":"paystub"},"pay_date":{"type":"string","title":"pay_date","description":"The date when the check amount is paid to the employee."},"pay_period_start":{"type":"string","title":"pay_period_start","description":"The date when the pay period begins. Some platforms, like unemployment portals, do not have fixed pay periods."},"pay_period_end":{"type":"string","title":"pay_period_end","description":"The date when the pay period ends. Some platforms, like unemployment portals, do not have fixed pay periods."},"gross_pay_amount":{"type":"integer","title":"gross_pay_amount","description":"The total earnings before any deductions are made, in cents."},"gross_pay_ytd":{"type":"integer","title":"gross_pay_ytd","description":"The cumulative year to date total earnings before any taxes or deductions are removed, in cents."},"net_pay_amount":{"type":"integer","title":"net_pay_amount","description":"The total earnings after all taxes and deductions are removed, in cents."},"net_pay_ytd":{"type":"integer","title":"net_pay_ytd","description":"The cumulative year to date total earnings after all taxes and deductions are removed, in cents."},"earnings":{"items":{"$ref":"#/components/schemas/UploadedEarning"},"type":"array","title":"earnings","description":"The earnings for this pay period, in cents."},"taxes":{"items":{"$ref":"#/components/schemas/UploadedTax"},"type":"array","title":"taxes","description":"The taxes for this pay period, in cents."},"deductions":{"items":{"$ref":"#/components/schemas/UploadedDeduction"},"type":"array","title":"deductions","description":"The deductions for this pay period, in cents."},"employer":{"$ref":"#/components/schemas/EmployerNameAndAddress","description":"Employment details for the employee."},"employee":{"$ref":"#/components/schemas/EmployeeNameAndAddress","description":"Personal details for the employee."},"time_off":{"items":{"$ref":"#/components/schemas/UploadedTimeOff"},"type":"array","title":"time_off","description":"The user's time off balances for this pay period. To enable time off balances, please contact Pinwheel support."}},"type":"object","title":"UploadedPaystub","x-tags":["Schemas"]},"UploadedSSIAwardLetter":{"properties":{"document_type":{"type":"string","const":"ssi_award_letter","title":"document_type","description":"The type of the document.","default":"ssi_award_letter"},"applicant":{"$ref":"#/components/schemas/ApplicantNameAndAddress","description":"The applicant associated with award letter."},"issue_date":{"type":"string","title":"issue_date","description":"The date the award letter was issued."},"pay_date":{"type":"string","title":"pay_date","description":"The date the award letter was paid."},"social_security_payment":{"type":"integer","title":"social_security_payment","description":"The social security payment."},"social_security_deduction":{"type":"integer","title":"social_security_deduction","description":"The social security deduction."},"social_security_net_payment":{"type":"integer","title":"social_security_net_payment","description":"The social security net payment."},"supplemental_security_payment":{"type":"integer","title":"supplemental_security_payment","description":"The supplemental security payment."}},"type":"object","title":"UploadedSSIAwardLetter","x-tags":["Schemas"]},"UploadedTax":{"properties":{"type":{"type":"string","title":"type","description":"The category of tax."},"description":{"type":"string","title":"description","description":"The description of tax."},"amount":{"type":"integer","title":"amount","description":"The amount of tax, in cents."},"amount_ytd":{"type":"integer","title":"amount_ytd","description":"The amount ytd of tax, in cents."}},"type":"object","title":"UploadedTax","x-tags":["Schemas"]},"UploadedTimeOff":{"properties":{"name":{"type":"string","title":"name","description":"The name of the time off."},"category":{"description":"The category of the time off.","type":"string","enum":["pto","sick","other"]},"available_hours":{"type":"number","title":"available_hours","description":"The total hours of time off available, as of the pay period end date. In the event available_hours is not on the paystub, this value reflects the current available_hours at the time the paystub was retrieved."},"earned_hours":{"type":"number","title":"earned_hours","description":"The hours of time off earned during the pay period."},"used_hours":{"type":"number","title":"used_hours","description":"The hours of time off used during the pay period."}},"type":"object","title":"UploadedTimeOff","x-tags":["Schemas"]},"UploadedW2Informed":{"properties":{"document_type":{"type":"string","const":"w2","title":"document_type","description":"The type of the document.","default":"w2"},"applicant":{"$ref":"#/components/schemas/ApplicantNameAndAddress","description":"The applicant associated with the W2."},"employer_name":{"type":"string","title":"employer_name","description":"The employer name associated with the W2."},"total_wages":{"title":"total_wages","description":"The total wages associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"state_wages":{"title":"state_wages","description":"The state wages associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"social_security_wages":{"title":"social_security_wages","description":"The social security wages associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"medicare_wages":{"title":"medicare_wages","description":"The medicare wages associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"federal_taxes":{"title":"federal_taxes","description":"The federal taxes associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"state_taxes":{"title":"state_taxes","description":"The state taxes associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"social_security_taxes":{"title":"social_security_taxes","description":"The social security taxes associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"medicare_taxes":{"title":"medicare_taxes","description":"The medicare taxes associated with the W2.","anyOf":[{"type":"number"},{"type":"string"}]},"tax_year":{"type":"string","title":"tax_year","description":"The tax year associated with the W2."}},"type":"object","title":"UploadedW2Informed","x-tags":["Schemas"]},"VerificationReportsVOEObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"refreshed_at":{"type":"string","format":"date-time","title":"refreshed_at","description":"ISO 8601 timestamp of the most recent refresh of this data."},"employee":{"$ref":"#/components/schemas/EmployeeResponseObj","description":"Personal details for the employee."},"employments":{"items":{"$ref":"#/components/schemas/EmploymentResponseObj"},"type":"array","title":"employments","description":"Employment details for the employee."},"document":{"$ref":"#/components/schemas/DocumentObjPublicResponseItem","description":"A document."},"report_type":{"description":"The type of report created.","type":"string","enum":["voe","voie","base"]}},"type":"object","required":["id","updated_at","refreshed_at","employee","employments","report_type"],"title":"Verification of Employment Report for an end user","x-tags":["Schemas"]},"VerificationReportsVOIEObjResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"updated_at":{"type":"string","format":"date-time","title":"updated_at","description":"ISO 8601 timestamp of the last update to this object."},"refreshed_at":{"type":"string","format":"date-time","title":"refreshed_at","description":"ISO 8601 timestamp of the most recent refresh of this data."},"employee":{"$ref":"#/components/schemas/EmployeeResponseObj","description":"Personal details for the employee."},"employments":{"items":{"$ref":"#/components/schemas/IncomeAndEmploymentResponseObj"},"type":"array","title":"employments","description":"Income and Employment details for the employee."},"document":{"$ref":"#/components/schemas/DocumentObjPublicResponseItem","description":"A document."},"report_type":{"description":"The type of report created.","type":"string","enum":["voe","voie","base"]}},"type":"object","required":["id","updated_at","refreshed_at","employee","employments","report_type"],"title":"Verification of Income and Employment Report for an end user","x-tags":["Schemas"]},"W2Box12":{"properties":{"code":{"type":"string","title":"code","description":"Code for miscellaneous income or tax line items. Box 12 IRS Form W-2."},"amount":{"type":"integer","title":"amount","description":"Amount for miscellaneous income or tax line items. Box 12 IRS Form W-2."}},"type":"object","title":"W2Box12","x-tags":["Schemas"]},"W2Box13":{"properties":{"statutory_employee":{"type":"boolean","title":"statutory_employee","description":"Statutory employee option. Box 13 IRS Form W-2."},"retirement_plan":{"type":"boolean","title":"retirement_plan","description":"Retirement plan option. Box 13 IRS Form W-2."},"third_party_sick_pay":{"type":"boolean","title":"third_party_sick_pay","description":"Third-party sick pay option. Box 13 IRS Form W-2."}},"type":"object","title":"W2Box13","x-tags":["Schemas"]},"W2Box15To20":{"properties":{"box_15_state":{"type":"string","title":"box_15_state","description":"State. Box 15 IRS Form W-2."},"box_15_employer_state_id":{"type":"string","title":"box_15_employer_state_id","description":"Employer's state ID number. Box 15 IRS Form W-2."},"box_16":{"type":"integer","title":"box_16","description":"State wages, tips, etc. Box 16 IRS Form W-2."},"box_17":{"type":"integer","title":"box_17","description":"State income tax. Box 17 IRS Form W-2."},"box_18":{"type":"integer","title":"box_18","description":"Local wages, tips, etc. Box 18 IRS Form W-2."},"box_19":{"type":"integer","title":"box_19","description":"Local income tax. Box 19 IRS Form W-2."},"box_20":{"type":"string","title":"box_20","description":"Locality name. Box 20 IRS Form W-2."}},"type":"object","title":"W2Box15To20","x-tags":["Schemas"]},"W2BoxC":{"properties":{"name":{"type":"string","title":"name","description":"Employer's name. Box c IRS Form W-2."},"address":{"$ref":"#/components/schemas/AddressGetResponseItem","description":"Employer's address. Box c IRS Form W-2."}},"type":"object","title":"W2BoxC","x-tags":["Schemas"]},"WebhookCreate_v2023_04_18":{"properties":{"url":{"type":"string","pattern":"^https://","format":"uri","title":"url","description":"The URL of the webhook endpoints. Must be 'https://'."},"status":{"description":"The status of the webhook.","type":"string","enum":["active","paused"]},"enabled_events":{"items":{"type":"string","enum":["shifts.thirty_days_synced","documents.added","account.additional_connections_recommended","bill.reminder","earnings_stream.payouts.refreshed","company_connect.employments.added","direct_deposit_allocations.added","bill.added","paystubs.added","shifts.added","paystubs.documents.added","account.monitoring_status.updated","shifts.seven_days_synced","bill_switch.added","bill.updated","paystubs.ninety_days_synced","company_connect.status.updated","bill_switch.cancelled","company_connect.incomes.added","paystubs.thirty_days_synced","tax_forms.added","employment.added","paystubs.seven_days_synced","shifts.ninety_days_synced","paystubs.fully_synced","shifts.fully_synced","account.added","direct_deposit_switch.added","identity.added","verification_reports.refreshed","company_connect.census.added","bill.removed","income.added"]},"type":"array","minItems":1,"title":"enabled_events","description":"The list of events enabled for this webhook."},"version":{"description":"The webhook's version, which determines the format of the webhook event payloads.","type":"string","enum":["2023-04-18","2025-07-08","2023-07-18","2022-09-09","2023-11-22"]},"customer_id":{"type":"string","title":"customer_id","description":"Banking platforms webhooks only: the customer ID associated with the platform's customer."}},"type":"object","required":["url","status","enabled_events","version"],"title":"WebhookPostBody","x-tags":["Schemas"]},"WebhookObjResponse":{"properties":{"url":{"type":"string","pattern":"^https://","format":"uri","title":"url","description":"The URL of the webhook endpoints."},"status":{"description":"The status of the webhook.","type":"string","enum":["active","paused"]},"enabled_events":{"items":{"type":"string","enum":["shifts.thirty_days_synced","documents.added","account.additional_connections_recommended","bill.reminder","earnings_stream.payouts.refreshed","company_connect.employments.added","direct_deposit_allocations.added","bill.added","paystubs.added","shifts.added","paystubs.documents.added","account.monitoring_status.updated","shifts.seven_days_synced","bill_switch.added","bill.updated","paystubs.ninety_days_synced","company_connect.status.updated","bill_switch.cancelled","company_connect.incomes.added","paystubs.thirty_days_synced","tax_forms.added","employment.added","paystubs.seven_days_synced","shifts.ninety_days_synced","paystubs.fully_synced","shifts.fully_synced","account.added","direct_deposit_switch.added","identity.added","verification_reports.refreshed","company_connect.census.added","bill.removed","income.added"]},"type":"array","minItems":1,"title":"enabled_events","description":"The list of events enabled for this webhook."},"version":{"description":"The webhook's version, which determines the format of the webhook event payloads.","type":"string","enum":["2023-04-18","2025-07-08","2023-07-18","2022-09-09","2023-11-22"]},"customer_id":{"type":"string","title":"customer_id","description":"Banking platforms webhooks only: the customer ID associated with the platform's customer."},"id":{"type":"string","format":"uuid","title":"id","description":"Unique identifier for the object."},"created_at":{"type":"string","format":"date-time","title":"created_at","description":"ISO 8601 timestamp of created time."},"last_updated":{"type":"string","format":"date-time","title":"last_updated","description":"ISO 8601 timestamp of the last update to this object."}},"type":"object","required":["url","status","enabled_events","version","id","created_at","last_updated"],"title":"Webhook","x-tags":["Schemas"]},"WebhookUpdate":{"properties":{"url":{"type":"string","pattern":"^https://","format":"uri","title":"url","description":"The URL of the webhook endpoints. Must be 'https://'."},"status":{"description":"The status of the webhook.","type":"string","enum":["active","paused"]},"enabled_events":{"items":{"type":"string","enum":["shifts.thirty_days_synced","documents.added","account.additional_connections_recommended","bill.reminder","earnings_stream.payouts.refreshed","company_connect.employments.added","direct_deposit_allocations.added","bill.added","paystubs.added","shifts.added","paystubs.documents.added","account.monitoring_status.updated","shifts.seven_days_synced","bill_switch.added","bill.updated","paystubs.ninety_days_synced","company_connect.status.updated","bill_switch.cancelled","company_connect.incomes.added","paystubs.thirty_days_synced","tax_forms.added","employment.added","paystubs.seven_days_synced","shifts.ninety_days_synced","paystubs.fully_synced","shifts.fully_synced","account.added","direct_deposit_switch.added","identity.added","verification_reports.refreshed","company_connect.census.added","bill.removed","income.added"]},"type":"array","minItems":1,"title":"enabled_events","description":"The list of events enabled for this webhook."},"customer_id":{"type":"string","title":"customer_id","description":"Banking platforms webhooks only: the customer ID associated with the platform's customer."}},"type":"object","title":"WebhookPatchBody","x-tags":["Schemas"]}},"securitySchemes":{"apiSecret":{"type":"apiKey","in":"header","name":"X-API-SECRET","description":"API Secret"},"bearerAuth":{"description":"Bearer token","type":"http","scheme":"bearer"}}},"tags":[{"name":"API Keys"},{"name":"Accounts"},{"name":"Company Connect"},{"name":"Direct Deposit Allocations"},{"name":"Earnings Stream"},{"name":"Employers and Platforms"},{"name":"End Users"},{"name":"Income and Employment"},{"name":"Jobs"},{"name":"Link Tokens"},{"name":"Payout Cards"},{"name":"Sandbox"},{"name":"Schemas"},{"name":"Tax Forms"},{"name":"Verification Reports"},{"name":"Webhooks"}],"security":[{"apiSecret":[]}]}