openapi: 3.1.0
info:
  version: 3.0.0-beta01
  termsOfService: >-
    https://www.dailypay.com/en-us/legal/direct/dailypay-client-api-terms-of-use/
  title: DailyPay REST API
  x-logo:
    url: https://developer.dailypay.com/static/svgs/dp_text.svg
  contact:
    name: DailyPay Developer Support
    url: https://developer.dailypay.com
  description: Embed DailyPay and On Demand Pay features into your application.
servers:
  - url: https://api.{environment}.com
    description: DailyPay REST API server
    variables:
      environment:
        default: dailypay
        enum:
          - dailypay
          - dailypayuat
security:
  - oauth_client_credentials_token:
      - client:admin
  - oauth_user_token:
      - user:read
tags:
  - name: Filtering
    description: |
      {% partial file="/_partials/filtering.md" /%}
  - name: Environments
    description: |
      {% partial file="/_partials/environments.md" /%}
  - name: Idempotency
    description: |
      {% partial file="/_partials/idempotency.md" /%}
  - name: Versioning
    description: |
      {% partial file="/_partials/versioning.md" /%}
  - name: API Status
    description: |
      {% partial file="/_partials/status.md" /%}
  - name: Jobs
    description: |
      The _jobs_ endpoint provides access to comprehensive information 
      about a person's employment. It enables you to retrieve details about
      individual jobs, including information about the organization
      they work for, status, wage rate, job title, location,
      paycheck settings, and related links to associated accounts.
  - name: Accounts
    description: |
      The _accounts_ endpoint provides comprehensive information about money
      accounts. You can retrieve account details, including the
      account's unique ID, a link to the account holder, type, subtype,
      verification status, balance details, transfer capabilities, and
      user-specific information such as names, routing numbers, and partial
      account numbers.


      **Functionality:** Access detailed user account information, verify
      account balances, view transfer capabilities, and access user-specific
      details associated with each account.
  - name: Transfers
    description: >
      The _transfers_ endpoint allows you to initiate and track money movement. 
      You can access transfer details, including the transfer's unique ID,
      amount, currency, status, schedule, submission and resolution times, fees,
      and related links to the involved parties.


      **Functionality** Retrieve transfer information, monitor transfer
      statuses, view transfer schedules, and access relevant links for the
      source, destination, and origin of the transfer.


      **Important** - Account origin: a user initiated movement of money from
      one account to another - Paycheck origin: an automatic (system-generated)
      movement of money as part of payroll
  - name: Organizations
    description: |
      The _organizations_ endpoint provides details about a business entity, 
      such as an employer, or a group of people, such as a division.

      The response includes the organization name and ID which can be used to
      make subsequent endpoint calls related to the organization and its
      employees.
  - name: Paychecks
    description: |
      The _paychecks_ endpoint provides detailed information about paychecks. 
      You can retrieve individual paycheck details, including the
      person and job associated with the paycheck, its status, pay period,
      expected deposit date, total debited amount, withholdings, earnings, and
      currency.

      **Functionality:** Retrieve specific paycheck details, including payee and
      job information, and monitor the status and financial details of each
      paycheck.
  - name: People
    description: |
      The _people_ endpoint allows you to see information related to who owns 
      resources such as jobs and accounts.

      **Functionality:** Retrieve limited details about a person, including
      their name, global status, and state of residence.
  - name: Card Tokenization
    description: Securely tokenize personal cards for use in the accounts API.
  - name: Health
    description: |
      The _health_ endpoint provides a simple health check for the API. 

      **Functionality:** Check the status of the API to ensure it is functioning
      correctly.
paths:
  /rest/jobs/{job_id}:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
    get:
      tags:
        - Jobs
      summary: Get a job object
      description: Returns details about a person's employment.
      operationId: readJob
      security:
        - oauth_client_credentials_token:
            - client:lookup
            - client:admin
        - oauth_user_token:
            - user:read
      parameters:
        - $ref: '#/components/parameters/job_id'
      responses:
        '200':
          $ref: '#/components/responses/Job200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.jobs.read({
                jobId: "aa860051-c411-4709-9685-c1b716df611b",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ReadJobRequest req = new ReadJobRequest() {
                JobId = "aa860051-c411-4709-9685-c1b716df611b",
            };

            var res = await sdk.Jobs.ReadAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Jobs.Read(ctx, operations.ReadJobRequest{\n        JobID: \"aa860051-c411-4709-9685-c1b716df611b\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.JobData != nil {\n        // handle response\n    }\n}"
    patch:
      tags:
        - Jobs
      summary: Update paycheck settings or deactivate a job
      description: >
        Update this job to set where pay should be deposited for paychecks
        related to this job,  or deactivate on-demand pay for this job. 

        Returns the job object if the update succeeded. Returns an error if
        update parameters are invalid.
      operationId: updateJob
      security:
        - oauth_user_token:
            - user:read_write
      parameters:
        - name: job_id
          description: Unique ID of the job
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: e9d84b0d-92ba-43c9-93bf-7c993313fa6f
      requestBody:
        $ref: '#/components/requestBodies/JobUpdate'
      responses:
        '200':
          description: Returns the updated Job object
          $ref: '#/components/responses/Job200'
        '400':
          $ref: '#/components/responses/JobUpdate400'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.jobs.update({
                jobId: "e9d84b0d-92ba-43c9-93bf-7c993313fa6f",
                jobUpdateData: {
                  data: {
                    type: "jobs",
                    id: "e9d84b0d-92ba-43c9-93bf-7c993313fa6f",
                    attributes: {
                      activationStatus: "DEACTIVATED",
                    },
                    relationships: {
                      directDepositDefaultDepository: {
                        data: {
                          type: "accounts",
                          id: "2bc7d781-3247-46f6-b60f-4090d214936a",
                        },
                      },
                      directDepositDefaultCard: {
                        data: {
                          type: "accounts",
                          id: "2bc7d781-3247-46f6-b60f-4090d214936a",
                        },
                      },
                    },
                  },
                },
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            UpdateJobRequest req = new UpdateJobRequest() {
                JobId = "e9d84b0d-92ba-43c9-93bf-7c993313fa6f",
                JobUpdateData = new JobUpdateData() {
                    Data = new Data() {
                        Id = "e9d84b0d-92ba-43c9-93bf-7c993313fa6f",
                        Attributes = new JobAttributesInput() {
                            ActivationStatus = ActivationStatus.Deactivated,
                        },
                        Relationships = new JobRelationshipsInput() {
                            DirectDepositDefaultDepository = new AccountRelationship() {
                                Data = new AccountIdentifier() {
                                    Id = "2bc7d781-3247-46f6-b60f-4090d214936a",
                                },
                            },
                            DirectDepositDefaultCard = new AccountRelationship() {
                                Data = new AccountIdentifier() {
                                    Id = "2bc7d781-3247-46f6-b60f-4090d214936a",
                                },
                            },
                        },
                    },
                },
            };

            var res = await sdk.Jobs.UpdateAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Jobs.Update(ctx, operations.UpdateJobRequest{\n        JobID: \"e9d84b0d-92ba-43c9-93bf-7c993313fa6f\",\n        JobUpdateData: components.JobUpdateData{\n            Data: components.Data{\n                ID: \"e9d84b0d-92ba-43c9-93bf-7c993313fa6f\",\n                Attributes: &components.JobAttributesInput{\n                    ActivationStatus: components.ActivationStatusDeactivated.ToPointer(),\n                },\n                Relationships: &components.JobRelationshipsInput{\n                    DirectDepositDefaultDepository: &components.AccountRelationship{\n                        Data: components.AccountIdentifier{\n                            ID: \"2bc7d781-3247-46f6-b60f-4090d214936a\",\n                        },\n                    },\n                    DirectDepositDefaultCard: &components.AccountRelationship{\n                        Data: components.AccountIdentifier{\n                            ID: \"2bc7d781-3247-46f6-b60f-4090d214936a\",\n                        },\n                    },\n                },\n            },\n        },\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.JobData != nil {\n        // handle response\n    }\n}"
  /rest/jobs:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/filter.external_identifiers.primary_identifier'
      - $ref: '#/components/parameters/filter.external_identifiers.employee_id'
      - $ref: '#/components/parameters/filter.external_identifiers.group'
      - $ref: '#/components/parameters/filter.person.id'
      - $ref: '#/components/parameters/filter.organization.id'
      - $ref: '#/components/parameters/filter'
    get:
      tags:
        - Jobs
      summary: Get a list of job objects
      description: >
        Returns a collection of job objects. This object represents a person's
        employment details.

        See [Filtering
        Jobs](https://developer.dailypay.com/tag/Filtering#section/Supported-Endpoint-Filters)
        for a description of filterable fields.
      operationId: listJobs
      security:
        - oauth_client_credentials_token:
            - client:lookup
            - client:admin
        - oauth_user_token:
            - user:read
      responses:
        '200':
          $ref: '#/components/responses/Jobs200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.jobs.list();

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ListJobsRequest req = new ListJobsRequest() {};

            var res = await sdk.Jobs.ListAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Jobs.List(ctx, operations.ListJobsRequest{})\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.JobsData != nil {\n        // handle response\n    }\n}"
  /rest/accounts/{account_id}:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/account_id'
    get:
      tags:
        - Accounts
      summary: Get an Account object
      description: >-
        Returns details about an account. This object represents a person's bank
        accounts, debit and pay cards, and earnings balance accounts.
      operationId: readAccount
      security:
        - oauth_client_credentials_token:
            - client:lookup
            - client:admin
        - oauth_user_token:
            - user:read
      responses:
        '200':
          $ref: '#/components/responses/Account200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.accounts.read({
                accountId: "2bc7d781-3247-46f6-b60f-4090d214936a",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ReadAccountRequest req = new ReadAccountRequest() {
                AccountId = "2bc7d781-3247-46f6-b60f-4090d214936a",
            };

            var res = await sdk.Accounts.ReadAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Accounts.Read(ctx, operations.ReadAccountRequest{\n        AccountID: \"2bc7d781-3247-46f6-b60f-4090d214936a\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.AccountData != nil {\n        // handle response\n    }\n}"
  /rest/accounts:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
    get:
      tags:
        - Accounts
      summary: Get a list of Account objects
      description: >
        Returns a list of account objects. An account object represents a
        person's bank accounts, debit and pay cards, and earnings balance
        accounts.

        See [Filtering
        Accounts](https://developer.dailypay.com/tag/Filtering#section/Supported-Endpoint-Filters)
        for a description of filterable fields.
      security:
        - oauth_client_credentials_token:
            - client:lookup
            - client:admin
        - oauth_user_token:
            - user:read
      x-speakeasy-usage-example:
        title: Look up accounts
        description: Fetch a list of accounts, including earnings balance accounts.
        position: 1
      operationId: listAccounts
      parameters:
        - $ref: '#/components/parameters/filter.person.id'
        - $ref: '#/components/parameters/filter.account_type'
        - $ref: '#/components/parameters/filter.account_subtype'
        - $ref: '#/components/parameters/filter'
      responses:
        '200':
          $ref: '#/components/responses/Accounts200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.accounts.list({
                filterAccountType: "EARNINGS_BALANCE",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ListAccountsRequest req = new ListAccountsRequest() {
                FilterAccountType = FilterAccountType.EarningsBalance,
            };

            var res = await sdk.Accounts.ListAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Accounts.List(ctx, operations.ListAccountsRequest{\n        FilterAccountType: components.FilterAccountTypeEarningsBalance.ToPointer(),\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.AccountsData != nil {\n        // handle response\n    }\n}"
    post:
      tags:
        - Accounts
      summary: Create an Account object
      description: >-
        Create an account object to store a person's bank or card information as
        a destination for funds.
      operationId: createAccount
      security:
        - oauth_user_token:
            - user:read_write
      requestBody:
        $ref: '#/components/requestBodies/AccountCreate'
      responses:
        '200':
          $ref: '#/components/responses/Account200'
        '400':
          $ref: '#/components/responses/AccountCreate400'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.accounts.create({
                data: {
                  type: "accounts",
                  attributes: {
                    name: "Acme Bank Checking Account",
                    accountType: "DEPOSITORY",
                    subtype: "CHECKING",
                    depositoryAccountDetails: {
                      firstName: "Edith",
                      lastName: "Clarke",
                      routingNumber: "XXXXX2021",
                      accountNumber: "XXXXXX4321",
                    },
                  },
                  relationships: {
                    person: {
                      data: {
                        type: "people",
                        id: "3fa8f641-5717-4562-b3fc-2c963f66afa6",
                      },
                    },
                  },
                },
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            CreateAccountRequest req = new CreateAccountRequest() {
                AccountData = new AccountDataInput() {
                    Data = new AccountResourceInput() {
                        Attributes = AccountAttributesInput.CreateDepositoryInput(
                            new DepositoryInput() {
                                Name = "Acme Bank Checking Account",
                                Subtype = AccountAttributesDepositorySubtype.Checking,
                                DepositoryAccountDetails = new DepositoryAccountDetails() {
                                    FirstName = "Edith",
                                    LastName = "Clarke",
                                    RoutingNumber = "XXXXX2021",
                                    AccountNumber = "XXXXXX4321",
                                },
                            }
                        ),
                        Relationships = new AccountRelationships() {
                            Person = new PersonRelationship() {
                                Data = new PersonIdentifier() {
                                    Id = "3fa8f641-5717-4562-b3fc-2c963f66afa6",
                                },
                            },
                        },
                    },
                },
            };

            var res = await sdk.Accounts.CreateAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Accounts.Create(ctx, components.AccountDataInput{\n        Data: components.AccountResourceInput{\n            Attributes: components.CreateAccountAttributesInputDepositoryInput(\n                components.DepositoryInput{\n                    Name: \"Acme Bank Checking Account\",\n                    Subtype: components.AccountAttributesDepositorySubtypeChecking,\n                    DepositoryAccountDetails: components.DepositoryAccountDetails{\n                        FirstName: \"Edith\",\n                        LastName: \"Clarke\",\n                        RoutingNumber: \"XXXXX2021\",\n                        AccountNumber: \"XXXXXX4321\",\n                    },\n                },\n            ),\n            Relationships: components.AccountRelationships{\n                Person: components.PersonRelationship{\n                    Data: components.PersonIdentifier{\n                        ID: \"3fa8f641-5717-4562-b3fc-2c963f66afa6\",\n                    },\n                },\n            },\n        },\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.AccountData != nil {\n        // handle response\n    }\n}"
  /rest/transfers/{transfer_id}:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/include'
        examples:
          fundingSources:
            summary: Include related funding sources in the response
            value: estimated_funding_sources,final_funding_sources
    get:
      tags:
        - Transfers
      summary: Get a transfer object
      description: >
        Returns details about a transfer of money from one account to another. 


        Created when a person takes an advance against a future paycheck, or on
        a daily basis when available balance is updated based on current
        employment.
      operationId: readTransfer
      security:
        - oauth_client_credentials_token:
            - client:admin
        - oauth_user_token:
            - user:read
      parameters:
        - $ref: '#/components/parameters/transfer_id'
      responses:
        '200':
          $ref: '#/components/responses/Transfer200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.transfers.read({
                transferId: "aba332a2-24a2-46de-8257-5040e71ab210",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ReadTransferRequest req = new ReadTransferRequest() {
                TransferId = "aba332a2-24a2-46de-8257-5040e71ab210",
            };

            var res = await sdk.Transfers.ReadAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Transfers.Read(ctx, operations.ReadTransferRequest{\n        TransferID: \"aba332a2-24a2-46de-8257-5040e71ab210\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.TransferData != nil {\n        // handle response\n    }\n}"
  /rest/transfers:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/include'
        examples:
          fundingSources:
            summary: Include related funding sources in the response
            value: estimated_funding_sources,final_funding_sources
    get:
      tags:
        - Transfers
      summary: Get a list of transfers
      description: >
        Returns a list of transfer objects.

        See [Filtering
        Transfers](https://developer.dailypay.com/tag/Filtering#section/Supported-Endpoint-Filters)
        for a description of filterable fields.
      operationId: listTransfers
      security:
        - oauth_client_credentials_token:
            - client:admin
        - oauth_user_token:
            - user:read
      parameters:
        - $ref: '#/components/parameters/filter.person.id'
        - $ref: '#/components/parameters/include'
          examples:
            fundingSources:
              summary: Include related funding sources in the response
              value: estimated_funding_sources,final_funding_sources
        - $ref: '#/components/parameters/filter'
      responses:
        '200':
          $ref: '#/components/responses/Transfers200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.transfers.list();

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ListTransfersRequest req = new ListTransfersRequest() {};

            var res = await sdk.Transfers.ListAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Transfers.List(ctx, operations.ListTransfersRequest{})\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.TransfersData != nil {\n        // handle response\n    }\n}"
    post:
      tags:
        - Transfers
      summary: Request a transfer
      description: |
        Request transfer of funds from an `EARNINGS_BALANCE` account to a
        personal `DEPOSITORY` or `CARD` account.
      operationId: createTransfer
      security:
        - oauth_user_token:
            - user:read_write
      x-speakeasy-usage-example:
        title: Request a transfer
        description: >-
          Initiate a transfer of funds from an earnings balance account to a
          personal depository or card account.
        position: 2
      parameters:
        - $ref: '#/components/parameters/idempotency_key'
        - $ref: '#/components/parameters/include'
          examples:
            fundingSources:
              summary: Include related funding sources in the response
              value: estimated_funding_sources,final_funding_sources
      requestBody:
        $ref: '#/components/requestBodies/TransferCreate'
      responses:
        '200':
          $ref: '#/components/responses/Transfer200'
        '400':
          $ref: '#/components/responses/TransferCreate400'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.transfers.create({
                idempotencyKey: "ea9f2225-403b-4e2c-93b0-0eda090ffa65",
                transferCreateData: {
                  data: {
                    type: "transfers",
                    id: "aba332a2-24a2-46de-8257-5040e71ab210",
                    attributes: {
                      preview: true,
                      amount: 2500,
                      currency: "USD",
                      schedule: "WITHIN_THIRTY_MINUTES",
                    },
                    relationships: {
                      origin: {
                        data: {
                          type: "accounts",
                          id: "2bc7d781-3247-46f6-b60f-4090d214936a",
                        },
                      },
                      destination: {
                        data: {
                          type: "accounts",
                          id: "2bc7d781-3247-46f6-b60f-4090d214936a",
                        },
                      },
                      person: {
                        data: {
                          type: "people",
                          id: "3fa8f641-5717-4562-b3fc-2c963f66afa6",
                        },
                      },
                    },
                  },
                },
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            CreateTransferRequest req = new CreateTransferRequest() {
                IdempotencyKey = "ea9f2225-403b-4e2c-93b0-0eda090ffa65",
                TransferCreateData = new TransferCreateData() {
                    Data = new TransferCreateResource() {
                        Id = "aba332a2-24a2-46de-8257-5040e71ab210",
                        Attributes = new TransferAttributesInput() {
                            Preview = true,
                            Amount = 2500,
                            Currency = "USD",
                            Schedule = TransferAttributesSchedule.WithinThirtyMinutes,
                        },
                        Relationships = new TransferCreateRelationships() {
                            Origin = new AccountRelationship() {
                                Data = new AccountIdentifier() {
                                    Id = "2bc7d781-3247-46f6-b60f-4090d214936a",
                                },
                            },
                            Destination = new AccountRelationship() {
                                Data = new AccountIdentifier() {
                                    Id = "2bc7d781-3247-46f6-b60f-4090d214936a",
                                },
                            },
                            Person = new PersonRelationship() {
                                Data = new PersonIdentifier() {
                                    Id = "3fa8f641-5717-4562-b3fc-2c963f66afa6",
                                },
                            },
                        },
                    },
                },
            };

            var res = await sdk.Transfers.CreateAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Transfers.Create(ctx, operations.CreateTransferRequest{\n        IdempotencyKey: \"ea9f2225-403b-4e2c-93b0-0eda090ffa65\",\n        TransferCreateData: components.TransferCreateData{\n            Data: components.TransferCreateResource{\n                ID: dailypay.Pointer(\"aba332a2-24a2-46de-8257-5040e71ab210\"),\n                Attributes: components.TransferAttributesInput{\n                    Preview: dailypay.Pointer(true),\n                    Amount: 2500,\n                    Currency: \"USD\",\n                    Schedule: components.TransferAttributesScheduleWithinThirtyMinutes,\n                },\n                Relationships: components.TransferCreateRelationships{\n                    Origin: components.AccountRelationship{\n                        Data: components.AccountIdentifier{\n                            ID: \"2bc7d781-3247-46f6-b60f-4090d214936a\",\n                        },\n                    },\n                    Destination: components.AccountRelationship{\n                        Data: components.AccountIdentifier{\n                            ID: \"2bc7d781-3247-46f6-b60f-4090d214936a\",\n                        },\n                    },\n                    Person: components.PersonRelationship{\n                        Data: components.PersonIdentifier{\n                            ID: \"3fa8f641-5717-4562-b3fc-2c963f66afa6\",\n                        },\n                    },\n                },\n            },\n        },\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.TransferData != nil {\n        // handle response\n    }\n}"
  /rest/paychecks/{paycheck_id}:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/paycheck_id'
    get:
      tags:
        - Paychecks
      summary: Get a Paycheck object
      description: Returns details about a paycheck object.
      operationId: readPaycheck
      security:
        - oauth_user_token:
            - user:read
      responses:
        '200':
          $ref: '#/components/responses/Paycheck200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.paychecks.read({
                paycheckId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ReadPaycheckRequest req = new ReadPaycheckRequest() {
                PaycheckId = "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            };

            var res = await sdk.Paychecks.ReadAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Paychecks.Read(ctx, operations.ReadPaycheckRequest{\n        PaycheckID: \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.PaycheckData != nil {\n        // handle response\n    }\n}"
  /rest/paychecks:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
    get:
      tags:
        - Paychecks
      summary: Get a list of paycheck objects
      description: >
        Returns a collection of paycheck objects. This object details a person's
        pay and pay period.

        See [Filtering
        Paychecks](https://developer.dailypay.com/tag/Filtering#section/Supported-Endpoint-Filters)
        for a description of filterable fields.
      operationId: listPaychecks
      security:
        - oauth_user_token:
            - user:read
      parameters:
        - $ref: '#/components/parameters/filter.job.id'
        - $ref: '#/components/parameters/filter.paycheck_status'
        - $ref: '#/components/parameters/filter.deposit_expected_at__gte'
        - $ref: '#/components/parameters/filter.deposit_expected_at__lt'
        - $ref: '#/components/parameters/filter.pay_period_ends_at__gte'
        - $ref: '#/components/parameters/filter.pay_period_ends_at__lt'
        - $ref: '#/components/parameters/filter.pay_period_starts_at__gte'
        - $ref: '#/components/parameters/filter.pay_period_starts_at__lt'
        - $ref: '#/components/parameters/filter'
          examples:
            job:
              value: job_id:"aa860051-c411-4709-9685-c1b716df611b"
              summary: Limit the collection to objects matching a specific job
            status:
              value: status:"DEPOSITED"
              summary: Limit the collection to objects with a specific status
      responses:
        '200':
          $ref: '#/components/responses/Paychecks200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.paychecks.list({
                filterDepositExpectedAtGte: new Date("2023-03-15T04:00:00Z"),
                filterDepositExpectedAtLt: new Date("2023-03-15T04:00:00Z"),
                filterPayPeriodEndsAtGte: new Date("2023-03-15T04:00:00Z"),
                filterPayPeriodEndsAtLt: new Date("2023-03-15T04:00:00Z"),
                filterPayPeriodStartsAtGte: new Date("2023-03-15T04:00:00Z"),
                filterPayPeriodStartsAtLt: new Date("2023-03-15T04:00:00Z"),
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;
            using System;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ListPaychecksRequest req = new ListPaychecksRequest() {
                FilterDepositExpectedAtGte = System.DateTime.Parse("2023-03-15T04:00:00Z"),
                FilterDepositExpectedAtLt = System.DateTime.Parse("2023-03-15T04:00:00Z"),
                FilterPayPeriodEndsAtGte = System.DateTime.Parse("2023-03-15T04:00:00Z"),
                FilterPayPeriodEndsAtLt = System.DateTime.Parse("2023-03-15T04:00:00Z"),
                FilterPayPeriodStartsAtGte = System.DateTime.Parse("2023-03-15T04:00:00Z"),
                FilterPayPeriodStartsAtLt = System.DateTime.Parse("2023-03-15T04:00:00Z"),
            };

            var res = await sdk.Paychecks.ListAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/types\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Paychecks.List(ctx, operations.ListPaychecksRequest{\n        FilterDepositExpectedAtGte: types.MustNewTimeFromString(\"2023-03-15T04:00:00Z\"),\n        FilterDepositExpectedAtLt: types.MustNewTimeFromString(\"2023-03-15T04:00:00Z\"),\n        FilterPayPeriodEndsAtGte: types.MustNewTimeFromString(\"2023-03-15T04:00:00Z\"),\n        FilterPayPeriodEndsAtLt: types.MustNewTimeFromString(\"2023-03-15T04:00:00Z\"),\n        FilterPayPeriodStartsAtGte: types.MustNewTimeFromString(\"2023-03-15T04:00:00Z\"),\n        FilterPayPeriodStartsAtLt: types.MustNewTimeFromString(\"2023-03-15T04:00:00Z\"),\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.PaychecksData != nil {\n        // handle response\n    }\n}"
  /rest/organizations/{organization_id}:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/organization_id'
    get:
      summary: Get an organization
      description: Lookup organization by ID for a detailed view of single organization.
      operationId: readOrganization
      security:
        - oauth_client_credentials_token:
            - client:admin
      tags:
        - Organizations
      responses:
        '200':
          $ref: '#/components/responses/Organization200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.organizations.read({
                organizationId: "123e4567-e89b-12d3-a456-426614174000",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ReadOrganizationRequest req = new ReadOrganizationRequest() {
                OrganizationId = "123e4567-e89b-12d3-a456-426614174000",
            };

            var res = await sdk.Organizations.ReadAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Organizations.Read(ctx, operations.ReadOrganizationRequest{\n        OrganizationID: \"123e4567-e89b-12d3-a456-426614174000\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.OrganizationData != nil {\n        // handle response\n    }\n}"
  /rest/organizations:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/filter'
        examples:
          exactName:
            value: name:"DailyPay"
            summary: Limit the collection to objects matching a name exactly
          partialName:
            value: name~"Daily"
            summary: Limit the collection to objects with a name containing a substring
    get:
      summary: List organizations
      description: Get organizations with an optional filter
      operationId: listOrganizations
      security:
        - oauth_client_credentials_token:
            - client:admin
      tags:
        - Organizations
      responses:
        '200':
          $ref: '#/components/responses/Organizations200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.organizations.list();

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ListOrganizationsRequest req = new ListOrganizationsRequest() {};

            var res = await sdk.Organizations.ListAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Organizations.List(ctx, operations.ListOrganizationsRequest{})\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.OrganizationsData != nil {\n        // handle response\n    }\n}"
  /rest/people/{person_id}:
    parameters:
      - $ref: '#/components/parameters/apiversion'
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/person_id'
    get:
      tags:
        - People
      summary: Get a person object
      description: Returns details about a person.
      operationId: readPerson
      security:
        - oauth_client_credentials_token:
            - client:admin
        - oauth_user_token:
            - user:read
      responses:
        '200':
          $ref: '#/components/responses/Person200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.people.read({
                personId: "aa860051-c411-4709-9685-c1b716df611b",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            ReadPersonRequest req = new ReadPersonRequest() {
                PersonId = "aa860051-c411-4709-9685-c1b716df611b",
            };

            var res = await sdk.People.ReadAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.People.Read(ctx, operations.ReadPersonRequest{\n        PersonID: \"aa860051-c411-4709-9685-c1b716df611b\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.PersonData != nil {\n        // handle response\n    }\n}"
    patch:
      tags:
        - People
      summary: Update a person
      description: Update a person object.
      operationId: updatePerson
      security:
        - oauth_user_token:
            - user:read_write
      requestBody:
        $ref: '#/components/requestBodies/PersonUpdate'
      responses:
        '200':
          $ref: '#/components/responses/Person200'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              version: 3,
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.people.update({
                personId: "aa860051-c411-4709-9685-c1b716df611b",
                personData: {
                  data: {
                    type: "people",
                    id: "aa860051-c411-4709-9685-c1b716df611b",
                    attributes: {
                      stateOfResidence: "NY",
                    },
                  },
                },
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;
            using DailyPay.SDK.DotNet8.Models.Requests;

            var sdk = new SDK(
                version: 3,
                security: new Security() {
                    OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                        ClientID = "<YOUR_CLIENT_ID_HERE>",
                        ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                        TokenURL = "<YOUR_TOKEN_URL_HERE>",
                    },
                }
            );

            UpdatePersonRequest req = new UpdatePersonRequest() {
                PersonId = "aa860051-c411-4709-9685-c1b716df611b",
                PersonData = new PersonDataInput() {
                    Data = new PersonResourceInput() {
                        Id = "aa860051-c411-4709-9685-c1b716df611b",
                        Attributes = new PersonAttributesInput() {
                            StateOfResidence = "NY",
                        },
                    },
                },
            };

            var res = await sdk.People.UpdateAsync(req);

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.People.Update(ctx, operations.UpdatePersonRequest{\n        PersonID: \"aa860051-c411-4709-9685-c1b716df611b\",\n        PersonData: components.PersonDataInput{\n            Data: components.PersonResourceInput{\n                ID: \"aa860051-c411-4709-9685-c1b716df611b\",\n                Attributes: components.PersonAttributesInput{\n                    StateOfResidence: dailypay.Pointer(\"NY\"),\n                },\n            },\n        },\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.PersonData != nil {\n        // handle response\n    }\n}"
  /cards/generic:
    post:
      summary: Obtain a card token
      servers:
        - url: https://payments.dailypay.com/v2
      description: >-
        Obtain a PCI DSS Compliant card token. This token must be used in order
        to add a card to a user’s DailyPay account.
      operationId: createGenericCardToken
      security: []
      tags:
        - Card Tokenization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - first_name
                - last_name
                - card_number
                - expiration_year
                - expiration_month
                - address_line_one
                - address_city
                - address_state
                - address_zip_code
                - address_country
              properties:
                first_name:
                  type: string
                  description: The first name or given name of the cardholder.
                  example: Edith
                last_name:
                  type: string
                  description: The last name or surname of the cardholder.
                  example: Clarke
                card_number:
                  type: string
                  description: The full card number without spaces or hyphenation.
                  example: '4007589999999912'
                expiration_year:
                  type: string
                  description: The four-digit year of expiration for the card.
                  example: '2027'
                expiration_month:
                  type: string
                  description: The two-digit month of the expiration date for the card.
                  example: '02'
                cvv:
                  type:
                    - string
                    - 'null'
                  description: The CVV card code.
                  example: '123'
                address_line_one:
                  type: string
                  description: The first line of the address associated with the card.
                  example: 123 Kebly Street
                address_line_two:
                  type:
                    - string
                    - 'null'
                  description: The second line of the address associated with the card.
                  example: Unit C
                address_city:
                  type: string
                  description: The city component of the address associated with the card.
                  example: Fort Lee
                address_state:
                  type: string
                  description: >-
                    The two-letter state component of the address associated
                    with the card.
                  example: NJ
                address_zip_code:
                  type: string
                  description: >-
                    The 5 digit zip-code component of the address associated
                    with the card.
                  example: '07237'
                address_country:
                  type: string
                  description: >-
                    The two-letter ISO 3166 country code component of the
                    address associated with the card.
                  example: US
      responses:
        '200':
          description: |
            Returns an opaque string representing the card details.
          content:
            application/json:
              schema:
                type: object
                required:
                  - token
                properties:
                  token:
                    type: string
                    description: >
                      This token should be supplied in the `generic_token` field
                      when creating a TransferAccount with 

                      `transfer_account_type` of DebitCard using the Extend API
                      "Create a transfer account" endpoint.
                    example: >-
                      eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.ZR3Eq5MAuS_03RopT9QWK1MUiFFIOoZoDgwkiDWzz-7S6Zeda0JdvzwI51lHxuvi6EFdXLi7-1thIpPt49JMiLtzZgcf7UCJrVOZTf88JhIL5X5rvmnpO2NADfR9PVzrSV2AwxLCRy6vRfgCHGJZy1o5AZzwaaMLCRzqb3vdCaXn9gKvGPmvHKg9PkR-Zrfs9XDsRHeCVtfvu8PBzMNO5r_Dfo-fo3l3cyV4pKFtbvjlJXm--Ko5XiJPxffnBofmlYabXHku5yuo6IsVTnd9ETksMu1tnfr4T9AC14fiZew0FJetIayf_-kmiR1t7_aU3Q_A8Uwy7kTmxrFTvu6Cgw.yT7WptQfjKXswG_N.DY77q22ZGV5efeh6LNI6bWRmhZikY0dLAyIDVrK7nite1B7T_4IL9XdM7Luf9BOpXHTscu9y6Zqun-687bclLnzOYB7nNpV_DZM-5stWz2MuQeLiokqTfrF5jfXtpLDaDEiwAY9HHTBrKoD91Wkp5aX1CsB4jFBTfFDES0BQbTrRXqLTMIItZqKFbh5btqFCskfl7JKtozo3UgMNj__HnNiF5GUN-QgiOrYZKn7d2hXPpUABPmYGFkpXSXTnnCRGTVoZHoyh5L-4Apr8yVRUxUX1rrMFjOurr8VqmQPg-9-2Z7zxmwp5joms19JdgV2FhgJnbKilwFY4IQrYbhfLdfuApHgpptvrODLdPB5DJnT6tAfsJM_-LuFC7cg9kg6Xm6G-8jGEuO56sd-Og3cvK-jnhSR6Vu9O6nSGKZ1X3H0O_EHgMhHV-WTtf8KfrUHdVsSBIZvA6J_5gmOAB53KPaCPy8AU8XQBUgPVBt35h9J4HLuWq3HGRKEw5nHNNdSSjgWXfpC9X8OXgric1540nZz5A-zBP3XNOZuD26yPNDg2g7jCzVZs1TfRgX9DXqZHUkugPuyXN82FMT3bxKAZzH5OsmVSnir8f75OAx18hVG-jheEBTYzbx4yh6YwlaWKkekKKwGAAdEnUg5cQxNNmeOpTzQiSyMCnFOtQyn67qSk9I3e5ig9l5ElSoX-MhL9g2liAKbX6_fl4wJ1elvrhy0w6Xuf6V74UrwKP5deKxtGLbWoSVC-v0k5lrweP8SbD1R62DyfdcdgZSPDmiiSgF8YuHO_8fW96xQeOD_fJ59qf4-qvfuToM39X52s5vH7Qj53v5kp-Tg23Ki2C-ENPIqa6hKl0BaTHltIKwZt1ll4l7ho1vMxPdPVq47FmTzPyliB0JuK6VoQIaR4ej4CCSrQmRTXMohXnbIaVubm-kLyK5RebvnJFJr5J2YswT5ZnUuEb5MbkNaeqJ0CUaQ8Z_vRXI-UaZOuGI_BPYsuIDmBKsfihoGUHau6WBNqqCDBRQsHlLRc3pUBfLLWQyO8pdB2JHjco_8wh2SuxLrD9abLNwjt9NNNmQdW8Qzm-E7aG-DnLN0y6z1T1dTr-YiUO4TBw1sPNysVX6v2Pz5jN7xQ6ukZ59rXgJ4Rozci5ip0V28whvs5Aw8oiOY9Uo0qS9UEHjILCDdhPuBgt7v_v6ylsIPEy9ZL8Z0F-Dh_SqqJl9H4TSKVbalk4PJ8f2TGywbB7b2l5t5wHPZexuhkZZ1X_lChvi7nistQQ9952S6quPhT8OZntWqHe2X63THSVweupbe0D21tftdNsiZFP4rptJ6SfkmcEiS4CDA233CjCTy5sMALIYMsATL5dQxG5myUc3hiDQqpT_n7pIMhSuVrMcFi0bfpLSVYtLShmhQno8wqrm1p5aqahY1YQQmMM4VLT-05Fz53cTlJsEqnu6_2tg6v_j4cWYnHnP4IAvtJmw4BRQ.3yAMw37rs8X_gfRMqpYD1w
        '500':
          description: A server error has occurred.
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK();

            async function run() {
              const result = await sdk.cards.create({
                firstName: "Edith",
                lastName: "Clarke",
                cardNumber: "4007589999999912",
                expirationYear: "2027",
                expirationMonth: "02",
                cvv: "123",
                addressLineOne: "123 Kebly Street",
                addressLineTwo: "Unit C",
                addressCity: "Fort Lee",
                addressState: "NJ",
                addressZipCode: "07237",
                addressCountry: "US",
              });

              console.log(result);
            }

            run();
        - lang: C#
          source: >-
            using DailyPay.SDK.DotNet8;

            using DailyPay.SDK.DotNet8.Models.Requests;


            var sdk = new SDK();


            CreateGenericCardTokenRequest req = new
            CreateGenericCardTokenRequest() {
                FirstName = "Edith",
                LastName = "Clarke",
                CardNumber = "4007589999999912",
                ExpirationYear = "2027",
                ExpirationMonth = "02",
                Cvv = "123",
                AddressLineOne = "123 Kebly Street",
                AddressLineTwo = "Unit C",
                AddressCity = "Fort Lee",
                AddressState = "NJ",
                AddressZipCode = "07237",
                AddressCountry = "US",
            };


            var res = await sdk.Cards.CreateAsync(req);


            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New()\n\n    res, err := s.Cards.Create(ctx, operations.CreateGenericCardTokenRequest{\n        FirstName: \"Edith\",\n        LastName: \"Clarke\",\n        CardNumber: \"4007589999999912\",\n        ExpirationYear: \"2027\",\n        ExpirationMonth: \"02\",\n        Cvv: dailypay.Pointer(\"123\"),\n        AddressLineOne: \"123 Kebly Street\",\n        AddressLineTwo: dailypay.Pointer(\"Unit C\"),\n        AddressCity: \"Fort Lee\",\n        AddressState: \"NJ\",\n        AddressZipCode: \"07237\",\n        AddressCountry: \"US\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.Object != nil {\n        // handle response\n    }\n}"
  /rest/health:
    get:
      tags:
        - Health
      summary: Verify the status of the API
      description: |
        Returns a 200 status code if the API is up and running.
      security:
        - oauth_client_credentials_token:
            - health:read
      operationId: getHealth
      responses:
        '200':
          $ref: '#/components/responses/Health200'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/Unexpected'
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import { SDK } from "@dailypay/dailypay";

            const sdk = new SDK({
              security: {
                oauthClientCredentialsToken: {
                  clientID: "<YOUR_CLIENT_ID_HERE>",
                  clientSecret: "<YOUR_CLIENT_SECRET_HERE>",
                  tokenURL: "<YOUR_TOKEN_URL_HERE>",
                },
              },
            });

            async function run() {
              const result = await sdk.health.getHealth();

              console.log(result);
            }

            run();
        - lang: C#
          source: |-
            using DailyPay.SDK.DotNet8;
            using DailyPay.SDK.DotNet8.Models.Components;

            var sdk = new SDK(security: new Security() {
                OauthClientCredentialsToken = new SchemeOauthClientCredentialsToken() {
                    ClientID = "<YOUR_CLIENT_ID_HERE>",
                    ClientSecret = "<YOUR_CLIENT_SECRET_HERE>",
                    TokenURL = "<YOUR_TOKEN_URL_HERE>",
                },
            });

            var res = await sdk.Health.GetHealthAsync();

            // handle response
        - lang: Go
          source: "package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithSecurity(components.Security{\n            OauthClientCredentialsToken: &components.SchemeOauthClientCredentialsToken{\n                ClientID: \"<YOUR_CLIENT_ID_HERE>\",\n                ClientSecret: \"<YOUR_CLIENT_SECRET_HERE>\",\n                TokenURL: \"<YOUR_TOKEN_URL_HERE>\",\n            },\n        }),\n    )\n\n    res, err := s.Health.GetHealth(ctx)\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.Health200 != nil {\n        // handle response\n    }\n}"
components:
  securitySchemes:
    oauth_client_credentials_token:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.dailypay.com/oauth2/token
          scopes:
            client:lookup: >-
              Read access to resources necessary to find a person by known
              identifiers.
    oauth_user_token:
      type: oauth2
      flows:
        authorizationCode:
          x-usePkce: true
          authorizationUrl: https://auth.dailypay.com/oauth2/auth
          tokenUrl: https://auth.dailypay.com/oauth2/token
          scopes:
            user:read: >-
              Read access to all relevant objects for a non-application user, 
              including accounts, jobs, people, transfers, and paychecks.
            user:read_write: >-
              Read and write access to all relevant objects for a
              non-application user, including accounts, jobs, people, transfers,
              and paychecks.
  parameters:
    apiversion:
      name: DailyPay-API-Version
      in: header
      schema:
        type: integer
        default: 3
      required: false
      x-speakeasy-globals-hidden: true
      x-speakeasy-name-override: version
      description: >
        The version of the DailyPay API to use for this request. If not
        provided, the latest version of the API will be used.
    accept:
      name: Accept
      in: header
      schema:
        type: string
        default: application/vnd.api+json
        enum:
          - application/vnd.api+json
          - '*/*'
      x-speakeasy-globals-hidden: true
      description: >
        The media type of the requested payload. This should be set to
        `application/vnd.api+json` to signify your client can receive responses
        in the JSON:API format.  For more details, see https://jsonapi.org.
    job_id:
      name: job_id
      description: Unique ID of the job
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: aa860051-c411-4709-9685-c1b716df611b
    filter.external_identifiers.primary_identifier:
      name: filter[external_identifiers.primary_identifier]
      in: query
      description: >-
        Limit the results to documents with an external identifier matching
        exactly at the specified key.
      required: false
      schema:
        type: string
    filter.external_identifiers.employee_id:
      name: filter[external_identifiers.employee_id]
      in: query
      description: >-
        Limit the results to documents with an external identifier matching
        exactly at the specified key.
      required: false
      schema:
        type: string
    filter.external_identifiers.group:
      name: filter[external_identifiers.group]
      in: query
      description: >-
        Limit the results to documents with an external identifier matching
        exactly at the specified key.
      required: false
      schema:
        type: string
    filter.person.id:
      name: filter[person.id]
      in: query
      description: Limit the results to documents related to a specific person
      required: false
      schema:
        type: string
    filter.organization.id:
      name: filter[organization.id]
      in: query
      description: >-
        _Not yet supported_ Limit the results to documents related to a specific
        organization
      required: false
      schema:
        type: string
    filter:
      name: filter
      x-speakeasy-name-override: filter-by
      in: query
      required: false
      deprecated: true
      schema:
        type: string
    account_id:
      name: account_id
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 2bc7d781-3247-46f6-b60f-4090d214936a
      description: Unique UUID of the Account.
    filter.account_type:
      name: filter[account_type]
      in: query
      description: Limit the results to documents matching the specified account type.
      required: false
      schema:
        type: string
        example: EARNINGS_BALANCE
        enum:
          - EARNINGS_BALANCE
          - DEPOSITORY
          - CARD
    filter.account_subtype:
      name: filter[subtype]
      in: query
      description: Limit the results to documents matching the specified account subtype.
      required: false
      schema:
        type: string
    include:
      name: include
      in: query
      description: >
        Add related resources to the response. 


        The value of the include parameter must be a comma-separated (U+002C
        COMMA, “,”) list of relationship paths.
      required: false
      schema:
        type: string
    transfer_id:
      name: transfer_id
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: aba332a2-24a2-46de-8257-5040e71ab210
      description: Unique ID of the transfer
    idempotency_key:
      name: Idempotency-Key
      in: header
      schema:
        type: string
        format: uuid
      required: true
      description: >
        An idempotency key is a unique string that you provide to ensure a
        request is only processed once.

        Any number of requests with the same idempotency key and payload will
        return an identical response.
    paycheck_id:
      name: paycheck_id
      description: Unique ID of the paycheck
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
    filter.job.id:
      name: filter[job.id]
      in: query
      description: Limit the results to documents related to a specific job
      required: false
      schema:
        type: string
    filter.paycheck_status:
      name: filter[status]
      in: query
      description: Limit the results to paychecks with the specified status
      required: false
      schema:
        type: string
        enum:
          - ESTIMATED
          - PROCESSING
          - IN_TRANSIT
          - DEPOSITED
    filter.deposit_expected_at__gte:
      name: filter[deposit_expected_at__gte]
      in: query
      description: >-
        Limit the results to paychecks with deposit_expected_at greater than or
        equal to the specified date
      required: false
      schema:
        type: string
        example: '2023-03-15T04:00:00Z'
        format: date-time
    filter.deposit_expected_at__lt:
      name: filter[deposit_expected_at__lt]
      in: query
      description: >-
        Limit the results to paychecks with deposit_expected_at less than the
        specified date
      required: false
      schema:
        type: string
        example: '2023-03-15T04:00:00Z'
        format: date-time
    filter.pay_period_ends_at__gte:
      name: filter[pay_period_ends_at__gte]
      in: query
      description: >-
        Limit the results to paychecks with pay_period_ends_at greater than or
        equal to the specified date
      required: false
      schema:
        type: string
        example: '2023-03-15T04:00:00Z'
        format: date-time
    filter.pay_period_ends_at__lt:
      name: filter[pay_period_ends_at__lt]
      in: query
      description: >-
        Limit the results to paychecks with pay_period_ends_at less than the
        specified date
      required: false
      schema:
        type: string
        example: '2023-03-15T04:00:00Z'
        format: date-time
    filter.pay_period_starts_at__gte:
      name: filter[pay_period_starts_at__gte]
      in: query
      description: >-
        Limit the results to paychecks with pay_period_starts_at greater than or
        equal to the specified date
      required: false
      schema:
        type: string
        example: '2023-03-15T04:00:00Z'
        format: date-time
    filter.pay_period_starts_at__lt:
      name: filter[pay_period_starts_at__lt]
      in: query
      description: >-
        Limit the results to paychecks with pay_period_starts_at less than the
        specified date
      required: false
      schema:
        type: string
        example: '2023-03-15T04:00:00Z'
        format: date-time
    organization_id:
      name: organization_id
      in: path
      required: true
      description: Unique ID of the organization
      schema:
        description: >-
          String identifier that is unique across this resource. You can safely
          assume the identifier to never exceed 64 characters.
        example: 123e4567-e89b-12d3-a456-426614174000
        readOnly: true
        type: string
    person_id:
      name: person_id
      description: Unique ID of the person
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: aa860051-c411-4709-9685-c1b716df611b
  schemas:
    Amount:
      type: integer
      minimum: 0
      example: 2500
      description: >-
        A monetary quantity expressed in units of the lowest denomination in the
        associated currency. For example, `{ amount: 7250, currency: 'USD' }`
        resolves to $72.50.
    Currency:
      type: string
      example: USD
      description: >-
        A three-letter ISO 4217 currency code. For example, `USD` for US
        Dollars, `EUR` for Euros, or `JPY` for Japanese Yen.
    JobAttributes:
      type: object
      required:
        - wage_rate
        - direct_deposit_status
      properties:
        external_identifiers:
          readOnly: true
          type: object
          description: >-
            Holds unique identifiers for the employee or job defined by external
            organizations.
          additionalProperties:
            type: string
          examples:
            - primary_identifier: '0123456789'
        first_name:
          readOnly: true
          description: >-
            The first name of the person as it is listed in their employee
            profile.
          example: Edith
          type: string
        last_name:
          readOnly: true
          description: >-
            The last name of the person as it is listed in their employee
            profile.
          example: Clarke
          type: string
        activation_status:
          type: string
          enum:
            - DEACTIVATED
            - DEACTIVATION_PENDING
            - ACTIVATION_REQUIRED
            - ACTIVATION_UNDER_REVIEW
            - ACTIVATED
          examples:
            - DEACTIVATED
            - ACTIVATED
          x-enumDescriptions:
            DEACTIVATED: Job is no longer activated for DailyPay.
            DEACTIVATION_PENDING: >-
              Job is no longer activated for DailyPay, and deactivation is
              pending.
            ACTIVATION_REQUIRED: >-
              Job data is available but a person has not activated this Job for
              a DailyPay account.
            ACTIVATION_UNDER_REVIEW: Job data is available but a manual review step is underway.
            ACTIVATED: >-
              Job data is available and ready for use with DailyPay. A remainder
              pay account may still need to be configured by setting
              `default_paycheck_destinations`.
          description: >
            Activation is the process of verifying that data is available for a
            Job,  and that a person has verified their identity as the Person
            associated with the Job. Only paychecks from Jobs with `activated`
            status will contribute to an earnings balance account.


            To deactivate a job, update activation_status to `DEACTIVATED`.
        wage_rate:
          type: object
          x-go-type-name: WageRate
          readOnly: true
          required:
            - amount
            - currency
            - frequency
          properties:
            amount:
              $ref: '#/components/schemas/Amount'
            currency:
              $ref: '#/components/schemas/Currency'
            frequency:
              type: string
              enum:
                - HOURLY
                - WEEKLY
                - BIWEEKLY
                - TWICE_MONTHLY
                - MONTHLY
                - ANNUALLY
              example: HOURLY
        title:
          type:
            - string
            - 'null'
          readOnly: true
          example: Computer
        department:
          type:
            - string
            - 'null'
          readOnly: true
          example: Finance
        location:
          readOnly: true
          type: string
          example: New York, New York
        direct_deposit_status:
          readOnly: true
          type: string
          enum:
            - SETUP_REQUIRED
            - SETUP_PENDING
            - SETUP_COMPLETE
          example: SETUP_COMPLETE
          description: >
            - `SETUP_REQUIRED` Direct deposit is not set up for this Job. Update
            this resource's relationships to set up direct deposit.

            - `SETUP_PENDING` A system action is still pending.

            - `SETUP_COMPLETE` Direct deposit is set up for this Job.
    JobLink:
      type: string
      format: uri
      example: https://api.dailypay.com/rest/jobs/e9d84b0d-92ba-43c9-93bf-7c993313fa6f
      readOnly: true
    JobLinks:
      readOnly: true
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/JobLink'
    PersonIdentifier:
      type: object
      required:
        - type
        - id
      properties:
        type:
          type: string
          const: people
        id:
          type: string
          format: uuid
          example: 3fa8f641-5717-4562-b3fc-2c963f66afa6
    PersonRelationshipReadOnly:
      type: object
      readOnly: true
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/PersonIdentifier'
    OrganizationIdentifier:
      type: object
      required:
        - type
        - id
      properties:
        type:
          type: string
          const: organizations
        id:
          type: string
          format: uuid
          example: f0b30634-108c-439c-a8c1-c6a91197f022
    OrganizationRelationship:
      type: object
      readOnly: true
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/OrganizationIdentifier'
    AccountIdentifier:
      type: object
      required:
        - type
        - id
      properties:
        type:
          type: string
          const: accounts
        id:
          type: string
          format: uuid
          examples:
            - 2bc7d781-3247-46f6-b60f-4090d214936a
            - 410ae962-51e1-4f44-b0a0-a0fd230a4dc5
    AccountRelationship:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AccountIdentifier'
    JobRelationships:
      type: object
      description: >-
        The relationships between the job and other resources, including the
        accounts to which paychecks from this job are deposited.
      required:
        - person
        - organization
      properties:
        person:
          $ref: '#/components/schemas/PersonRelationshipReadOnly'
        organization:
          $ref: '#/components/schemas/OrganizationRelationship'
        direct_deposit_default_depository:
          description: >-
            The `DEPOSITORY` account to which paychecks from this job will
            attempt to be deposited.
          $ref: '#/components/schemas/AccountRelationship'
        direct_deposit_default_card:
          description: >-
            The `CARD` account to which paychecks from this job will attempt to
            be deposited, if the `DEPOSITORY` account fails.
          $ref: '#/components/schemas/AccountRelationship'
    JobResource:
      type: object
      description: >-
        A job describes the financial relationship between a person and an
        organization.
      required:
        - type
        - id
        - attributes
        - links
        - attributes
        - relationships
      properties:
        type:
          type: string
          const: jobs
        id:
          type: string
          format: uuid
          example: e9d84b0d-92ba-43c9-93bf-7c993313fa6f
        attributes:
          $ref: '#/components/schemas/JobAttributes'
        links:
          $ref: '#/components/schemas/JobLinks'
        relationships:
          $ref: '#/components/schemas/JobRelationships'
    JobData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/JobResource'
    BadRequestCodes:
      type: object
      required:
        - code
      properties:
        code:
          description: >-
            A code that indicates what went wrong. Please consider this an open
            enum, where new codes may be added over time.
          example: INVALID_PARAMETERS
          type: string
          x-go-type: string
          x-enumDescriptions:
            INVALID_USER_INPUT: >-
              The server was unable to understand the request. Check for syntax
              or structural errors.
            INVALID_PARAMETERS: >-
              Missing or invalid request parameters provided. See the `details`
              field for specifics.
            INVALID_IDEMPOTENCY_KEY: >-
              Idempotency key was used for a dissimilar request.  Request
              payloads must be identical when reusing an idempotency key.
            INVALID_RESOURCE_LINK: The target resource URI is missing or invalid.
            INVALID_VERSION_HEADER: Request contained an API version header that is not supported
            INVALID_FILTER_QUERY: The filter query is malformed.
            INVALID_FILTER_FIELD: >-
              Filter query is valid, but contains a field that is unsupported
              for this resource
            INVALID_FILTER_VALUE: >-
              Filter query is valid, but contains a value in a format that is
              unsupported for the associated field
            INVALID_FIELD_OPERATION: Indicates an filter operation that is not supported for the field
    Error:
      type: object
      required:
        - status
        - detail
        - meta
        - links
      properties:
        status:
          description: The HTTP status code for the error.
          example: '400'
          type: string
        detail:
          description: >-
            A message that explains the meaning of the error code. Developers
            are advised not to make programmatic use of this value, as it may
            change
          example: >-
            The request failed because it was not in the correct format or did
            not contain valid data.
          type: string
        links:
          description: >-
            A list of links to resources that may be helpful in resolving the
            error.
          type: object
          x-go-type-name: ErrorLinks
          properties:
            about:
              type: string
              format: uri
              example: https://developer.dailypay.com/tag/Errors
        source:
          description: Location in the request that may have caused the error.
          type: object
          x-go-type-name: ErrorSource
          properties:
            parameter:
              description: The name of the parameter that caused the error.
              example: filter[first_name]
              type: string
            pointer:
              description: >-
                A JSON Pointer to the location in the request that caused the
                error.
              example: /data/attributes/first_name
              type: string
            header:
              description: The name of the header that caused the error.
              example: Accept
              type: string
        meta:
          x-go-type-name: ErrorMeta
          description: Additional information about the error.
          type: object
          properties:
            request_id:
              description: A UUID for the originating request.
              example: 3c526bf4-f3c0-4c4a-a4cb-95f7db8b3bbe
              type: string
            trace_id:
              description: An ID used for tracing purposes.
              example: '4016616108459136584'
              type: string
    ErrorBadRequestError:
      allOf:
        - $ref: '#/components/schemas/BadRequestCodes'
        - $ref: '#/components/schemas/Error'
    ErrorBadRequest:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorBadRequestError'
    ErrorUnauthorizedError:
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          required:
            - code
          properties:
            code:
              description: A code that indicates what went wrong.
              example: INVALID_TOKEN
              type: string
              enum:
                - INVALID_TOKEN
                - UNAUTHORIZED
              x-enumDescriptions:
                INVALID_TOKEN: >-
                  Provided token is missing, expired, revoked, or otherwise
                  invalid.
                UNAUTHORIZED: Authentication has not been provided or is invalid.
    ErrorUnauthorized:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorUnauthorizedError'
    ErrorForbiddenError:
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          required:
            - code
          properties:
            code:
              description: A code that indicates what went wrong.
              example: FORBIDDEN
              type: string
              enum:
                - FORBIDDEN
              x-enumDescriptions:
                FORBIDDEN: Requester is not allowed to access this resource or endpoint
    ErrorForbidden:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorForbiddenError'
    ErrorNotFoundError:
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          required:
            - code
          properties:
            code:
              description: A code that indicates what went wrong.
              example: RECORD_NOT_FOUND
              type: string
              enum:
                - RECORD_NOT_FOUND
                - NOT_FOUND
              x-enumDescriptions:
                RECORD_NOT_FOUND: Could not find a record with the provided ID
                NOT_FOUND: Could not find resources matching the query parameters
    ErrorNotFound:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorNotFoundError'
    ErrorUnexpectedError:
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          required:
            - code
          properties:
            code:
              description: A code that indicates what went wrong.
              example: UNEXPECTED_ERROR
              type: string
              enum:
                - UNEXPECTED_ERROR
              x-enumDescriptions:
                UNEXPECTED_ERROR: This one is on us. Something unexpected went wrong
    ErrorUnexpected:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorUnexpectedError'
    JobUpdateData:
      type: object
      required:
        - data
      properties:
        data:
          type: object
          x-go-type-name: JobUpdateResource
          description: >-
            A job describes the financial relationship between a person and an
            organization.
          required:
            - type
            - id
          properties:
            type:
              type: string
              const: jobs
            id:
              type: string
              format: uuid
              example: e9d84b0d-92ba-43c9-93bf-7c993313fa6f
            attributes:
              $ref: '#/components/schemas/JobAttributes'
            relationships:
              $ref: '#/components/schemas/JobRelationships'
    ErrorJobUpdateError:
      allOf:
        - type: object
          required:
            - code
          properties:
            code:
              description: >-
                A code that indicates what went wrong. Please consider this an
                open enum, where new codes may be added over time.
              example: INVALID_PARAMETERS
              type: string
              x-go-type: string
              x-enumDescriptions:
                ACTIVE_JOB_REQUIRED: >-
                  This job must have status ACTIVATED before setting a default
                  bank or debit
                INVALID_USER_INPUT: >-
                  The server was unable to understand the request. Check for
                  syntax or structural errors.
                INVALID_PARAMETERS: >-
                  Missing or invalid request parameters provided. See the
                  `details` field for specifics.
                INVALID_RESOURCE_LINK: The target resource URI is missing or invalid.
                INVALID_VERSION_HEADER: Request contained an API version header that is not supported
        - $ref: '#/components/schemas/Error'
    JobUpdateError:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorJobUpdateError'
    JobsData:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/JobResource'
    TransferDestinationCapability:
      type: object
      required:
        - schedule
        - fee
        - currency
      properties:
        schedule:
          type: string
          description: The expected time for the transfer to be completed.
          enum:
            - WITHIN_THIRTY_MINUTES
            - NEXT_BUSINESS_DAY
          example: WITHIN_THIRTY_MINUTES
        fee:
          type: integer
          description: >
            A monetary quantity expressed in units of the lowest denomination in

            the associated currency. For example, `{ amount: 299, currency:
            'USD'

            }` resolves to $2.99.


            If a transfer incurs a fee, the fee will be deducted from the amount
            of

            the transfer.
          example: 0
        currency:
          $ref: '#/components/schemas/Currency'
    AccountAttributes__Common:
      type: object
      required:
        - balances
        - verification_status
        - capabilities
      properties:
        verification_status:
          readOnly: true
          description: >-
            A code that indicates the status of an account that is a destination
            for funds.
          example: VERIFIED
          type: string
          enum:
            - VERIFICATION_PENDING
            - VERIFICATION_FAILED
            - VERIFIED
        balances:
          type: object
          x-go-type-name: AccountBalances
          x-speakeasy-name-override: accountBalances
          readOnly: true
          required:
            - available
            - current
            - currency
          properties:
            available:
              readOnly: true
              type:
                - integer
                - 'null'
              minimum: 0
              description: >
                The amount of funds available to be withdrawn from the account. 


                For earnings_balance-type accounts, the available balance
                typically

                equals the current balance less any pending outflows, plus any
                pending inflows,



                This value is in units of the lowest denomination in the
                associated

                currency. For example, `{ amount: 7250, currency: 'USD' }`
                resolves to

                $72.50.
              example: 12000
            current:
              readOnly: true
              type:
                - integer
                - 'null'
              minimum: 0
              description: >
                The total amount of funds settled in the account. 


                This value is in units of the lowest denomination in the
                associated

                currency. For example, `{ amount: 7250, currency: 'USD' }`
                resolves to

                $72.50.



                **Special note for earnings_balance-type accounts:**

                During a typical pay period, if a user transfers no money from
                an earnings_balance-type account to a personal account, 

                the `current` balance will generally be 0, because transfers
                from earnings to this account will be 

                PENDING until the paycheck related to those earnings is
                processed. 

                Pending inflows are included in the `available` balance, not the
                `current` balance.
                 
                If a user transfers money from an earnings_balance-type account
                to a personal account, 

                the `current` balance will be negative as those transfers
                settle. When a paycheck is processed, 

                DailyPay will automatically attempt to zero out the balance, 

                transferring any remaining funds to the
                `default_paycheck_destination` set for the associated Job.


                If DailyPay is unable to zero out the balance during paycheck
                processing, the `current` balance will remain negative, 

                which may impact a user's ability to transfer additional funds
                from their earnings balance. 

                In those cases, the available balance will be 0.
              example: 50000
            currency:
              readOnly: true
              type: string
              example: USD
              description: >-
                A three-letter ISO 4217 currency code. For example, `USD` for US
                Dollars, `EUR` for Euros, or `JPY` for Japanese Yen.
        capabilities:
          readOnly: true
          type: object
          x-go-type-name: AccountCapabilities
          x-speakeasy-name-override: accountCapabilities
          required:
            - transfer_destination
          properties:
            transfer_destination:
              description: >
                List of the timing and associate fees available when crediting
                this account as a

                transfer destination.


                Actual fees may differ at the time of transfer; please refer to 

                the transfer preview attribute for the most accurate fee
                information 

                for any given transfer. 
              type: array
              items:
                $ref: '#/components/schemas/TransferDestinationCapability'
              minItems: 0
              example:
                - schedule: WITHIN_THIRTY_MINUTES
                  fee: 300
                  currency: USD
                - schedule: NEXT_BUSINESS_DAY
                  fee: 0
                  currency: USD
    AccountAttributes_Card:
      allOf:
        - $ref: '#/components/schemas/AccountAttributes__Common'
        - type: object
          title: Card
          description: An account with type `CARD` and subtype `DAILYPAY` or `DEBIT`.
          required:
            - account_type
            - subtype
            - details
            - name
          properties:
            name:
              type: string
              description: Display name for this account.
              example: Debit Card
            account_type:
              type: string
              description: >-
                The type of account. It differentiates between depository
                accounts (e.g. bank account), cards (e.g. debit) and earnings
                balance type of accounts (e.g. on demand pay).
              const: CARD
            subtype:
              type: string
              description: >-
                The subtype of the account. Additional subtypes may be added
                over time
              enum:
                - DEBIT
                - DAILYPAY
              example: DEBIT
            details:
              description: The banking details of the account and account holder.
              type: object
              x-go-type-name: CardAccountDetails
              x-speakeasy-name-override: CardAccountDetails
              required:
                - token
                - last_four
                - issuer
                - first_name
                - last_name
                - expiration_month
                - expiration_year
                - address_line_one
                - address_city
                - address_state
                - address_zip_code
                - address_country
              properties:
                token:
                  writeOnly: true
                  description: A tokenized string replacement for the card data.
                  type: string
                  example: HX46TY794RG
                last_four:
                  description: Last four digits of the card number.
                  example: '0003'
                  type: string
                  readOnly: true
                issuer:
                  description: The issuer of the card.
                  example: '411600'
                  type: string
                first_name:
                  description: The first name of the account holder.
                  example: Edith
                  type: string
                last_name:
                  description: The last name of the account holder.
                  example: Clarke
                  type: string
                expiration_month:
                  description: The month of the expiration date for the card.
                  type: string
                  example: '02'
                expiration_year:
                  description: The year of the expiration date for the card.
                  type: string
                  example: '2025'
                address_line_one:
                  writeOnly: true
                  type: string
                  description: The first line of the address for the card.
                  example: 123 Kebly Street
                address_line_two:
                  writeOnly: true
                  type: string
                  description: The second line of the address for the card.
                  example: 'Apt #12'
                address_city:
                  writeOnly: true
                  type: string
                  description: The city of the address for the card.
                  example: Fort Lee
                address_state:
                  writeOnly: true
                  type: string
                  description: >-
                    The two-letter abbreviation of the state in the address for
                    the card.
                  example: NJ
                address_zip_code:
                  writeOnly: true
                  type: string
                  description: The zip code of the address for the card.
                  example: '72374'
                address_country:
                  writeOnly: true
                  type: string
                  description: The country code of the address for the card.
                  example: US
    AccountAttributes_EarningsBalance:
      allOf:
        - $ref: '#/components/schemas/AccountAttributes__Common'
        - type: object
          title: Earnings Balance (read only)
          description: An account with type `EARNINGS_BALANCE` and subtype `ODP`.
          required:
            - account_type
            - subtype
            - details
            - name
          properties:
            name:
              type: string
              description: Display name for this account.
              example: DailyPay Pay Balance
              readOnly: true
            account_type:
              readOnly: true
              type: string
              description: >-
                The type of account. It differentiates between depository
                accounts (e.g. bank account), cards (e.g. debit) and earnings
                balance type of accounts (e.g. on demand pay).
              const: EARNINGS_BALANCE
            subtype:
              readOnly: true
              type: string
              description: The subtype of the account.
              const: ODP
            details:
              type: object
              description: An empty object for earnings balance accounts.
              readOnly: true
              minProperties: 0
              maxProperties: 0
    AccountAttributes_Depository:
      allOf:
        - $ref: '#/components/schemas/AccountAttributes__Common'
        - type: object
          title: Depository
          description: >-
            An account with type `DEPOSITORY` and subtype `SAVINGS` or
            `CHECKING`.
          required:
            - account_type
            - subtype
            - details
            - name
          properties:
            name:
              type: string
              description: Display name for this account.
              example: Checking Account
            account_type:
              type: string
              description: >-
                The type of account. It differentiates between depository
                accounts (e.g. bank account), cards (e.g. debit) and earnings
                balance type of accounts (e.g. on demand pay).
              const: DEPOSITORY
            subtype:
              type: string
              description: The subtype of the account.
              enum:
                - SAVINGS
                - CHECKING
              example: CHECKING
            details:
              type: object
              x-go-type-name: DepositoryAccountDetails
              x-speakeasy-name-override: DepositoryAccountDetails
              description: The banking details of the account and account holder.
              required:
                - routing_number
                - account_number
                - first_name
                - last_name
              properties:
                first_name:
                  description: The first name of the account holder.
                  example: Edith
                  type: string
                last_name:
                  description: The last name of the account holder.
                  example: Clarke
                  type: string
                routing_number:
                  description: >-
                    The routing number of the bank that holds this account.
                    Responses from this API that return this number are masked
                    to the last four digits.
                  example: XXXXX2021
                  type: string
                account_number:
                  description: >-
                    The account number. Responses from this API that return this
                    number are masked to the last four digits.
                  example: XXXXXX4321
                  type: string
    AccountAttributes:
      type: object
      description: The details of the account.
      oneOf:
        - $ref: '#/components/schemas/AccountAttributes_Card'
        - $ref: '#/components/schemas/AccountAttributes_EarningsBalance'
        - $ref: '#/components/schemas/AccountAttributes_Depository'
    AccountLink:
      type: string
      format: uri
      readOnly: true
      description: The URI for the account
      example: >-
        https://api.dailypay.com/rest/accounts/2bc7d781-3247-46f6-b60f-4090d214936a
    AccountLinks:
      readOnly: true
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/AccountLink'
    PersonRelationship:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/PersonIdentifier'
    AccountRelationships:
      type: object
      required:
        - person
      properties:
        person:
          $ref: '#/components/schemas/PersonRelationship'
    AccountResource:
      type: object
      required:
        - type
        - id
        - attributes
        - links
        - relationships
      properties:
        id:
          readOnly: true
          type: string
          format: uuid
          description: The unique identifier of the Account.
          example: 2bc7d781-3247-46f6-b60f-4090d214936a
        type:
          type: string
          const: accounts
          example: accounts
          description: The type of the resource. Always `accounts`.
        attributes:
          $ref: '#/components/schemas/AccountAttributes'
        links:
          $ref: '#/components/schemas/AccountLinks'
        relationships:
          $ref: '#/components/schemas/AccountRelationships'
    AccountData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AccountResource'
    AccountsData:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountResource'
    ErrorAccountCreateError:
      allOf:
        - type: object
          required:
            - code
          properties:
            code:
              description: >-
                A code that indicates what went wrong. Please consider this an
                open enum, where new codes may be added over time.
              type: string
              x-go-type: string
              x-enumDescriptions:
                ACCOUNT_TYPE_INVALID: Provided account type is not one of DEPOSITORY or CARD
                ACCOUNT_SUBTYPE_INVALID: Provided subtype is not one of CHECKING SAVINGS DEBIT
                ACCOUNT_TYPE_SUBTYPE_MISMATCH: >-
                  The provided account subtype is not supported on the provided
                  account type
                DEBIT_CARD_CREATION_BLOCKED: Debit card creation blocked for this bin number
                BANK_ACCOUNT_CREATION_BLOCKED: >-
                  Bank account creation blocked for accounts with this routing
                  number and first four digits of account number
                DUPLICATE_ACCOUNT: Provided input matches an already existing account
                INVALID_DEBIT_CARD: Provided debit card is invalid
                INVALID_CARD_TOKEN: Provided card token is invalid
                MISSING_REQUIRED_FIELD: Required field was not provided
                INVALID_USER_INPUT: >-
                  The server was unable to understand the request. Check for
                  syntax or structural errors.
                INVALID_PARAMETERS: >-
                  Missing or invalid request parameters provided. See the
                  `details` field for specifics.
                INVALID_RESOURCE_LINK: The target resource URI is missing or invalid.
                INVALID_VERSION_HEADER: Request contained an API version header that is not supported
        - $ref: '#/components/schemas/Error'
    AccountCreateError:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorAccountCreateError'
    TransferAttributes:
      type: object
      required:
        - fee
        - status
        - submitted_at
        - resolved_at
        - amount
        - schedule
        - currency
      description: >
        An object representing a transfer of money from one account to another. 

        Created when a person takes an advance against a future paycheck, or on
        a daily basis 

        when we update estimated earnings based on current employment.
      properties:
        preview:
          type: boolean
          default: false
          example: true
          description: >
            Include this field to preview a transfer without sending it, to see,
            for example, the fee that would be charged. This will return the
            same response as a typical transfer request.

            When the preview field is true in the response to creating a
            transfer, that indicates no transfer was created.
        amount:
          description: >
            The amount of funds requested to move from the origin account to the
            destination account. Any fees will be subtracted from this amount
            prior to landing in the destination account.


            A monetary quantity expressed in units of the lowest denomination in
            the associated currency. For example, `{ amount: 7250, currency:
            'USD' }` resolves to $72.50.
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
        status:
          readOnly: true
          type: string
          enum:
            - PENDING
            - SETTLED
            - FAILED
          description: The status of the transfer.
          x-enumDescriptions:
            PENDING: >-
              The transfer is in process, or funds have been scheduled but a
              final status is not yet known.
            SETTLED: Funds have been successfully transferred.
            FAILED: The transfer has failed.
        schedule:
          type: string
          enum:
            - WITHIN_THIRTY_MINUTES
            - NEXT_BUSINESS_DAY
          example: WITHIN_THIRTY_MINUTES
          description: >
            Set the schedule for the transfer. If not set, the transfer will be
            processed immediately. 

            A preview transfer will never send.
        submitted_at:
          description: An ISO 8601 timestamp denoting the receipt for the request.
          type: string
          example: '2021-04-21T21:30:58.051Z'
          format: date-time
          readOnly: true
        resolved_at:
          type:
            - string
            - 'null'
          description: >-
            An ISO 8601 date denoting a successful or unsuccessful resolution
            for the request.
          example: '2021-04-21T21:30:58.051Z'
          format: date-time
          readOnly: true
        fee:
          readOnly: true
          description: >-
            A monetary quantity expressed in units of the lowest denomination in
            the associated currency. For example, `{ amount: 7250, currency:
            'USD' }` resolves to $72.50.

            If a transfer incurs a fee, the fee will be deducted from the amount
            of the transfer.
          type: integer
          minimum: 0
          example: 0
    TransferLink:
      type: string
      format: uri
      readOnly: true
      example: >-
        https://api.dailypay.com/rest/transfers/aba332a2-24a2-46de-8257-5040e71ab210
    TransferLinks:
      type: object
      readOnly: true
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/TransferLink'
    PaycheckIdentifier:
      type: object
      readOnly: true
      required:
        - type
        - id
      properties:
        type:
          type: string
          const: paychecks
          readOnly: true
        id:
          type: string
          format: uuid
          readOnly: true
          example: 3fa8f641-5717-4562-b3fc-2c963f66afa6
    PaycheckRelationship:
      type: object
      readOnly: true
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/PaycheckIdentifier'
    FundingSourceIdentifier:
      type: object
      readOnly: true
      required:
        - type
        - id
      properties:
        type:
          type: string
          readOnly: true
          const: funding_sources
        id:
          type: string
          readOnly: true
          example: b5393c00b7c113fc2e5ae3e80c785bb2
    FundingSourcesRelationship:
      type: object
      readOnly: true
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/FundingSourceIdentifier'
          minItems: 0
    TransferRelationships_Common:
      type: object
      description: >
        The relationships between the transfer and other resources, including
        the destination account, the origination account, and the person who
        initiated the transfer.
      required:
        - destination
        - origin
        - person
        - estimated_funding_sources
        - final_funding_sources
      properties:
        destination:
          description: >
            The account to which funds are transferred. 


            User-created transfers should have a destination Account with
            `account_type` `DEPOSITORY` or `CARD`.
          $ref: '#/components/schemas/AccountRelationship'
        person:
          $ref: '#/components/schemas/PersonRelationship'
        estimated_funding_sources:
          description: >
            On user-created transfers, details the paychecks that are likely to
            be used to reimburse this transfer. 


            The paychecks impacted, and final amount allocated from each
            paycheck is subject to change. 

            See `final_funding_sources` for the final allocations.
          $ref: '#/components/schemas/FundingSourcesRelationship'
        final_funding_sources:
          description: >
            On user-created transfers, details the paychecks that were used to
            reimburse this transfer and the amount allocated from each paycheck.


            If this relationship has members, its members and their values are
            immutable.
          $ref: '#/components/schemas/FundingSourcesRelationship'
    TransferRelationships:
      allOf:
        - type: object
          required:
            - origin
          properties:
            origin:
              description: >
                Origin may be a reference to either a Paycheck or an Account.


                User-created transfers always originate from an Account with
                `account_type` `EARNINGS_BALANCE`.


                A transfer that originates from a Paycheck is a  

                system-created record that describes a credit of earnings to an
                account with `account_type` `EARNINGS_BALANCE`.
              oneOf:
                - $ref: '#/components/schemas/AccountRelationship'
                - $ref: '#/components/schemas/PaycheckRelationship'
        - $ref: '#/components/schemas/TransferRelationships_Common'
    TransferResource:
      type: object
      required:
        - type
        - id
        - attributes
        - links
        - relationships
      properties:
        type:
          type: string
          const: transfers
        id:
          type: string
          format: uuid
          example: aba332a2-24a2-46de-8257-5040e71ab210
        attributes:
          $ref: '#/components/schemas/TransferAttributes'
        links:
          $ref: '#/components/schemas/TransferLinks'
        relationships:
          $ref: '#/components/schemas/TransferRelationships'
    FundingSourceAttributes:
      type: object
      readOnly: true
      required:
        - amount
        - currency
      properties:
        amount:
          description: >
            The amount of money from the related paycheck allocated towards
            funding the related transfer.


            A monetary quantity expressed in units of the lowest denomination in
            the

            associated currency. For example, `{ amount: 7250, currency: 'USD'
            }` resolves to $72.50.
          $ref: '#/components/schemas/Amount'
        currency:
          $ref: '#/components/schemas/Currency'
    TransferIdentifier:
      type: object
      readOnly: true
      required:
        - type
        - id
      properties:
        type:
          type: string
          readOnly: true
          const: transfers
        id:
          type: string
          format: uuid
          readOnly: true
          example: aba332a2-24a2-46de-8257-5040e71ab210
    TransferRelationship:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/TransferIdentifier'
    FundingSourceRelationships:
      type: object
      readOnly: true
      required:
        - source
        - transfer
      properties:
        source:
          description: >-
            Identifies a resource, usually a paycheck, used as a source of funds
            for a transfer.
          $ref: '#/components/schemas/PaycheckRelationship'
        transfer:
          $ref: '#/components/schemas/TransferRelationship'
    FundingSourceResource:
      type: object
      readOnly: true
      required:
        - id
        - type
        - attributes
        - relationships
      description: >-
        A source describes how transfers with an origin of EARNINGS_BALANCE
        account are funded.
      properties:
        id:
          type: string
          example: b5393c00b7c113fc2e5ae3e80c785bb2
        type:
          type: string
          const: funding_sources
        attributes:
          $ref: '#/components/schemas/FundingSourceAttributes'
        relationships:
          $ref: '#/components/schemas/FundingSourceRelationships'
    TransferData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/TransferResource'
        included:
          readOnly: true
          type: array
          items:
            $ref: '#/components/schemas/FundingSourceResource'
    TransfersData:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/TransferResource'
        included:
          type: array
          items:
            $ref: '#/components/schemas/FundingSourceResource'
    TransferCreateRelationships:
      allOf:
        - type: object
          required:
            - origin
          properties:
            origin:
              description: >
                User-created transfers must originate from an Account with
                `account_type` `EARNINGS_BALANCE`.
              $ref: '#/components/schemas/AccountRelationship'
        - $ref: '#/components/schemas/TransferRelationships_Common'
    TransferCreateResource:
      type: object
      required:
        - type
        - attributes
        - relationships
      properties:
        type:
          type: string
          const: transfers
        id:
          type: string
          format: uuid
          description: >-
            The unique identifier of the transfer. Any UUID version is valid,
            lower-cased.
          example: aba332a2-24a2-46de-8257-5040e71ab210
        attributes:
          $ref: '#/components/schemas/TransferAttributes'
        relationships:
          $ref: '#/components/schemas/TransferCreateRelationships'
    TransferCreateData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/TransferCreateResource'
    ErrorTransferCreateError:
      allOf:
        - type: object
          required:
            - code
          properties:
            code:
              description: >-
                A code that indicates what went wrong. Please consider this an
                open enum, where new codes may be added over time.
              example: INVALID_ORIGIN
              type: string
              x-go-type: string
              x-enumDescriptions:
                DISCLOSURE_REQUIRED: >-
                  A signed Wage Disclosure is required before requesting the
                  transfer.
                DUPLICATE_TRANSFER: >-
                  Another recent advance with the same amount and destination
                  was detected.
                EARNINGS_BALANCE_EXCEEDED: >-
                  The requested transfer amount was greater than the origin
                  account's available balance.
                INELIGIBLE_ORIGIN: >-
                  The origin specified is not eligible for transfers at this
                  time.
                INVALID_DESTINATION: >-
                  The provided destination relationship must reference an
                  existing transfer account.
                INVALID_DIRECT_DEPOSIT_STATUS: >-
                  Transfers from this origin account are unavailable unless
                  `direct_deposit_status` is `SETUP_COMPLETE` on one or more
                  associated jobs.
                INVALID_IDEMPOTENCY_KEY: >-
                  Idempotency key was used for a dissimilar request. Request
                  payloads must be identical when reusing an idempotency key.
                INVALID_PARAMETERS: >-
                  Missing or invalid request parameters provided. See the
                  `details` field for specifics.
                INVALID_RESOURCE_STATE: >-
                  Unable to process the transfer due to another resource in an
                  invalid state. See the embedding guide for more information.
                INVALID_TRANSFER_SCHEDULE: >-
                  The provided schedule is invalid for the selected destination
                  account.
                INVALID_USER_INPUT: >-
                  The server was unable to understand the request. Check for
                  syntax or structural errors.
                MAXIMUM_AMOUNT_EXCEEDED: >-
                  The requested transfer amount was greater than the maximum
                  allowed for a single transfer.
                MAXIMUM_FEE_EXCEEDED: >-
                  Requesting this transfer would incur more fees than is
                  permitted.
                MINIMUM_AMOUNT_SUBCEEDED: >-
                  The requested transfer amount was less than the minimum amount
                  set for this provider. Generally $5.
                MISSING_DEFAULT_DEPOSITORY_ACCOUNT: >-
                  A default bank account must be set for all jobs related to the
                  owner of the selected origin account.
                MISSING_STATE_OF_RESIDENCE: >-
                  The `state_of_residence` attribute on the related person is
                  required before requesting the transfer.
                OVERPAYMENT_RESOLVING: >-
                  An overpayment from a previous transfer is being resolved and
                  transfers are currently disabled.
                OVERPAYMENT_RESOLUTION_REQUIRED: >-
                  The origin specified may have been previously subject to an
                  overpayment and a resolution has not been selected.
                TRANSFER_AMOUNT_LIMIT_EXCEEDED: >-
                  The amount requested within the last 24 hours exceeded the
                  daily limit for associated person.
                TRANSFER_LIMIT_EXCEEDED: >-
                  The number of transfers requested within the last 24 hours
                  exceeded the daily transfer limit for associated person.
                TRANSFERS_DISABLED: Transfers are disabled from the selected origin account.
        - $ref: '#/components/schemas/Error'
    TransferCreateError:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorTransferCreateError'
    ErrorConflictError:
      allOf:
        - type: object
          required:
            - code
          properties:
            code:
              description: A code that indicates what went wrong.
              example: IDEMPOTENCY_KEY_LOCKED
              type: string
              x-go-type: string
              x-enumDescriptions:
                IDEMPOTENCY_KEY_LOCKED: >-
                  The provided idempotency key is currently being used by
                  another request.  This can happen if there are multiple
                  simultaneous requests with the same idempotency key. It is
                  safe to retry the request.
        - $ref: '#/components/schemas/Error'
    ErrorConflict:
      type: object
      required:
        - errors
      properties:
        errors:
          description: A list of errors that occurred.
          type: array
          items:
            $ref: '#/components/schemas/ErrorConflictError'
    PaycheckAttributes:
      type: object
      required:
        - status
        - pay_period_ends_at
        - pay_period_starts_at
        - deposit_expected_at
        - total_debited
        - gross_earnings
        - employer_withholdings
        - net_earnings
        - currency
      properties:
        status:
          type: string
          enum:
            - ESTIMATED
            - PROCESSING
            - IN_TRANSIT
            - DEPOSITED
          description: >-
            A paycheck expected for an open pay period will have the status
            ESTIMATED. At the end of the pay period, the paycheck will begin
            PROCESSING. When it is sent, it will become IN_TRANSIT. Finally,
            once deposited in an account it will have the status DEPOSITED.
        pay_period_ends_at:
          description: >-
            An ISO 8601 timestamp denoting the ending day of a paycheck's pay
            period. For example, a pay period that ends during the day of March
            15 will have a value of 2023-03-15T04:00:00Z.
          type: string
          example: '2023-03-15T04:00:00Z'
          format: date-time
        pay_period_starts_at:
          description: >-
            An ISO 8601 timestamp denoting the first day of a paycheck's pay
            period. For example, a pay period that starts during the day of
            March 15 will have a value of 2023-03-15T04:00:00Z.
          type: string
          example: '2023-03-15T04:00:00Z'
          format: date-time
        deposit_expected_at:
          description: >-
            An ISO 8601 timestamp denoting the day the paycheck is scheduled to
            be delivered.
          type: string
          example: '2023-03-15T04:00:00Z'
          format: date-time
        total_debited:
          description: >-
            The amount debited and settled from this paycheck prior to the end
            of the pay period. Debits are settled during a pay period in order
            to cover withdrawals from an earnings balance account. This amount
            is given as a monetary quantity expressed in units of the lowest
            denomination in the associated currency. For example, {
            total_debited: 7050 } with currency USD resolves to $70.50.
          type:
            - integer
            - 'null'
          minimum: 0
          example: 0
        gross_earnings:
          description: >-
            The total earnings for this paycheck before any deductions are
            applied. This amount is given as a monetary quantity expressed in
            units of the lowest denomination in the associated currency. For
            example, { gross_earnings: 55370 } with currency USD resolves to
            $553.70
          type: integer
          example: 0
        employer_withholdings:
          description: >-
            The amount withheld from this paycheck by the employer, usually for
            taxes. This amount is given as a monetary quantity expressed in
            units of the lowest denomination in the associated currency. For
            example, { withholdings: 5000 } with currency USD resolves to
            $50.00.
          type:
            - integer
            - 'null'
          example: 0
        net_earnings:
          description: >-
            The net earnings for the paycheck once settled given in a monetary
            quantity expressed in units of the lowest denomination in the
            associated currency. For example, { earnings: 50370 } with currency
            USD resolves to $503.70.
          type:
            - integer
            - 'null'
          example: 0
        currency:
          $ref: '#/components/schemas/Currency'
    PaycheckLink:
      type: string
      format: uri
      readOnly: true
      example: >-
        https://api.dailypay.com/rest/paychecks/f4e2fd6c-b567-447c-a003-b7315b8d22d2
    PaycheckLinks:
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/PaycheckLink'
    JobIdentifier:
      type: object
      required:
        - type
        - id
      properties:
        type:
          type: string
          readOnly: true
          const: jobs
        id:
          type: string
          format: uuid
          readOnly: true
          example: e9d84b0d-92ba-43c9-93bf-7c993313fa6f
    JobRelationship:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/JobIdentifier'
    PaycheckRelationships:
      type: object
      required:
        - person
        - job
      properties:
        person:
          $ref: '#/components/schemas/PersonRelationship'
        job:
          $ref: '#/components/schemas/JobRelationship'
    PaycheckResource:
      type: object
      required:
        - type
        - id
        - attributes
        - links
        - relationships
      properties:
        type:
          type: string
          const: paychecks
        id:
          type: string
          format: uuid
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        attributes:
          $ref: '#/components/schemas/PaycheckAttributes'
        links:
          $ref: '#/components/schemas/PaycheckLinks'
        relationships:
          $ref: '#/components/schemas/PaycheckRelationships'
    PaycheckData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/PaycheckResource'
    PaychecksData:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PaycheckResource'
    OrganizationID:
      description: >-
        String identifier that is unique to this organization. You can safely
        assume the identifier to never exceed 64 characters.
      example: f0b30634-108c-439c-a8c1-c6a91197f022
      readOnly: true
      type: string
      format: uuid
    OrganizationAttributes:
      type: object
      properties:
        name:
          description: Organization's name
          example: DailyPay
          readOnly: true
          type: string
        products:
          readOnly: true
          description: List of the names of products available for this organization.
          example:
            - ODP
            - DAILYPAY_CARD
          type: array
          items:
            type: string
            x-enumDescriptions:
              ODP: >-
                On-Demand Pay (ODP) is a DailyPay product that allows employees
                to access their earned wages before payday. An organization with
                this product enabled will have on-demand pay available to its
                members; an account with type `EARNINGS_BALANCE` will
                automatically be created for each job associated with this
                organization.
              DAILYPAY_CARD: >-
                An organization with this product enabled will have the DailyPay
                Visa®️ Prepaid Card program available to its members.
              FRIDAY: >-
                _deprecated_. An organization with this product enabled will
                have the DailyPay Visa®️ Prepaid Card program available to its
                members.
    OrganizationLink:
      type: string
      format: uri
      readOnly: true
      example: >-
        https://api.dailypay.com/rest/organizations/f0b30634-108c-439c-a8c1-c6a91197f022
    OrganizationLinks:
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/OrganizationLink'
    OrganizationResource:
      type: object
      required:
        - type
        - id
        - attributes
        - links
      properties:
        type:
          type: string
          readOnly: true
          const: organizations
        id:
          $ref: '#/components/schemas/OrganizationID'
        attributes:
          $ref: '#/components/schemas/OrganizationAttributes'
        links:
          $ref: '#/components/schemas/OrganizationLinks'
    OrganizationData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/OrganizationResource'
    OrganizationsData:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationResource'
    PersonAttributes:
      type: object
      required:
        - disallow_reason
        - products
      description: >-
        A person is a record of someone known to DailyPay. There will only ever
        be one person record per human being.
      properties:
        disallow_reason:
          readOnly: true
          type:
            - string
            - 'null'
          enum:
            - INACTIVE
            - DELINQUENT
            - BANNED
            - null
          example: null
          description: >
            The statuses and required actions are:

            - `null` The person has not been disallowed, and is free to use
            DailyPay.

            - `INACTIVE` The person has not completed registration or account
            verification.

            - `DELINQUENT` The person has an outstanding, unrecoverable balance
            with DailyPay, and should contact support.

            - `BANNED` Access has been revoked.
        state_of_residence:
          type: string
          description: >
            The two-letter abbreviation for the state in which the person
            resides, if located in the United States.  This is used for
            regulatory compliance purposes.
          maxLength: 2
          example: NY
        products:
          type: object
          x-go-type-name: PersonProducts
          x-speakeasy-name-override: Products
          readOnly: true
          description: >
            Products that the person is enrolled in or eligible for. This data
            is refreshed nightly.
          required:
            - dailypay_card
          properties:
            dailypay_card:
              type: object
              x-go-type-name: DPCardProductEntitlement
              x-speakeasy-name-override: DailyPayCardProductEntitlement
              description: >
                The DailyPay Visa®️ Prepaid Card program. A person can be either
                eligible or enrolled, but not both.
              required:
                - eligible
                - enrolled
              properties:
                eligible:
                  type: boolean
                  example: true
                  description: >
                    Whether the person is eligible to enroll in the DailyPay
                    Visa®️ Prepaid Card program.
                enrolled:
                  type: boolean
                  description: >
                    Whether the person is enrolled in the DailyPay Visa®️
                    Prepaid Card program.
                  example: false
    PersonLink:
      type: string
      format: uri
      readOnly: true
      description: The URI for the user
      example: >-
        https://api.dailypay.com/rest/people/aa860051-c411-4709-9685-c1b716df611b
    PersonLinks:
      type: object
      readOnly: true
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/PersonLink'
    PersonResource:
      type: object
      required:
        - type
        - id
        - attributes
        - links
      properties:
        type:
          type: string
          const: people
        id:
          type: string
          format: uuid
          example: aa860051-c411-4709-9685-c1b716df611b
        attributes:
          $ref: '#/components/schemas/PersonAttributes'
        links:
          $ref: '#/components/schemas/PersonLinks'
    PersonData:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/PersonResource'
  responses:
    Job200:
      description: Returns the job object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JobData'
    BadRequest:
      description: Bad Request
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorBadRequest'
    Unauthorized:
      description: Invalid authentication credentials
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorUnauthorized'
    Forbidden:
      description: Not authorized to perform this operation
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorForbidden'
    NotFound:
      description: Resource was not found
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorNotFound'
    Unexpected:
      description: Unexpected error occured
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorUnexpected'
    JobUpdate400:
      description: Bad Request
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JobUpdateError'
    Jobs200:
      description: Returns a list of job objects.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JobsData'
    Account200:
      description: Returns the account object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/AccountData'
    Accounts200:
      description: Returns the account object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/AccountsData'
    AccountCreate400:
      description: The request contained an error
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/AccountCreateError'
    Transfer200:
      description: Returns the newly created transfer object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/TransferData'
    Transfers200:
      description: A list of transfer objects.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/TransfersData'
    TransferCreate400:
      description: The request contained an error
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/TransferCreateError'
    Conflict:
      description: A conflict occurred with the current state of the resource
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorConflict'
    Paycheck200:
      description: Returns the paycheck object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/PaycheckData'
    Paychecks200:
      description: Returns the paycheck object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/PaychecksData'
    Organization200:
      description: Returns details about an organization.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/OrganizationData'
    Organizations200:
      description: >-
        Returns a list of organization objects that match the filter. If no
        organizations match the filter, the resulting collection will be empty.
        If no filter is provider, the resulting collection will include all
        accessible organizations.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/OrganizationsData'
    Person200:
      description: Returns the person object.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/PersonData'
    Health200:
      description: Returns a healthcheck document
      content:
        application/json:
          schema:
            type: object
            required:
              - status
              - version
            properties:
              status:
                type: string
                description: The status of the API
                example: UP
              version:
                type: string
                description: The version of the API
                example: 3.0.0
  requestBodies:
    JobUpdate:
      required: true
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/JobUpdateData'
    AccountCreate:
      required: true
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/AccountData'
          examples:
            Depository:
              value:
                data:
                  type: accounts
                  id: 2bc7d781-3247-46f6-b60f-4090d214936a
                  attributes:
                    name: Acme Bank Checking Account
                    account_type: DEPOSITORY
                    subtype: CHECKING
                    details:
                      first_name: Edith
                      last_name: Clarke
                      routing_number: XXXXX2021
                      account_number: XXXXXX4321
                  relationships:
                    person:
                      data:
                        type: people
                        id: 3fa8f641-5717-4562-b3fc-2c963f66afa6
            Card:
              value:
                data:
                  type: accounts
                  id: 410ae962-51e1-4f44-b0a0-a0fd230a4dc5
                  attributes:
                    name: Acme Bank Debit Card
                    account_type: CARD
                    subtype: DEBIT
                    details:
                      token: abc.efg.123
                      issuer: '411600'
                      first_name: Edith
                      last_name: Clarke
                      expiration_month: '02'
                      expiration_year: '2027'
                      address_line_one: 123 Kebly Street
                      address_city: Fort Lee
                      address_state: NJ
                      address_zip_code: '72374'
                      address_country: US
                  relationships:
                    person:
                      data:
                        type: people
                        id: 3fa8f641-5717-4562-b3fc-2c963f66afa6
    TransferCreate:
      required: true
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/TransferCreateData'
    PersonUpdate:
      required: true
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/PersonData'
x-speakeasy-name-override:
  - operationId: ^read*
    methodNameOverride: read
  - operationId: ^list*
    methodNameOverride: list
  - operationId: ^create*
    methodNameOverride: create
  - operationId: ^update*
    methodNameOverride: update
x-speakeasy-globals:
  parameters:
    - $ref: '#/components/parameters/apiversion'
x-tagGroups:
  - name: Documentation
    tags:
      - API Status
      - Environments
      - Filtering
      - Idempotency
      - Versioning
  - name: Core Resources
    tags:
      - Accounts
      - Health
      - Jobs
      - Organizations
      - Paychecks
      - People
      - Transfers
  - name: Payments API
    tags:
      - Card Tokenization
