diff --git a/.stats.yml b/.stats.yml
index 2d2fedb..6ec2b33 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1 +1 @@
-configured_endpoints: 18
+configured_endpoints: 20
diff --git a/api.md b/api.md
index d611d76..dc13458 100644
--- a/api.md
+++ b/api.md
@@ -1,5 +1,13 @@
# finchgo
+Response Types:
+
+- finchgo.FinchgoForwardResponse
+
+Methods:
+
+- client.Forward(ctx context.Context, body finchgo.FinchgoForwardParams) (finchgo.FinchgoForwardResponse, error)
+
# HRIS
Response Types:
@@ -116,6 +124,7 @@ Methods:
Response Types:
+- finchgo.BenefitSupportType
- finchgo.Provider
Methods:
@@ -139,3 +148,15 @@ Methods:
Custom Methods:
- VerifySignature
+
+# Employer
+
+## Benefits
+
+Response Types:
+
+- finchgo.RegisterCompanyBenefitsResponse
+
+Methods:
+
+- client.Employer.Benefits.Register(ctx context.Context, body finchgo.EmployerBenefitRegisterParams) (finchgo.RegisterCompanyBenefitsResponse, error)
diff --git a/client.go b/client.go
index 42096b5..44e930e 100644
--- a/client.go
+++ b/client.go
@@ -3,8 +3,11 @@
package finchgo
import (
+ "context"
+ "net/http"
"os"
+ "github.com/Finch-API/finch-api-go/internal/requestconfig"
"github.com/Finch-API/finch-api-go/option"
)
@@ -17,6 +20,7 @@ type Client struct {
Providers *ProviderService
Account *AccountService
Webhooks *WebhookService
+ Employer *EmployerService
}
// NewClient generates a new client with the default option read from the
@@ -42,6 +46,18 @@ func NewClient(opts ...option.RequestOption) (r *Client) {
r.Providers = NewProviderService(opts...)
r.Account = NewAccountService(opts...)
r.Webhooks = NewWebhookService(opts...)
+ r.Employer = NewEmployerService(opts...)
return
}
+
+// The Forward API allows you to make direct requests to an employment system. If
+// Finch’s unified API doesn’t have a data model that cleanly fits your needs, then
+// Forward allows you to push or pull data models directly against an integration’s
+// API.
+func (r *Client) Forward(ctx context.Context, body FinchgoForwardParams, opts ...option.RequestOption) (res *FinchgoForwardResponse, err error) {
+ opts = append(r.Options[:], opts...)
+ path := "forward"
+ err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
+ return
+}
diff --git a/employer.go b/employer.go
new file mode 100644
index 0000000..3853d8e
--- /dev/null
+++ b/employer.go
@@ -0,0 +1,26 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package finchgo
+
+import (
+ "github.com/Finch-API/finch-api-go/option"
+)
+
+// EmployerService contains methods and other services that help with interacting
+// with the Finch API. Note, unlike clients, this service does not read variables
+// from the environment automatically. You should not instantiate this service
+// directly, and instead use the [NewEmployerService] method instead.
+type EmployerService struct {
+ Options []option.RequestOption
+ Benefits *EmployerBenefitService
+}
+
+// NewEmployerService generates a new service that applies the given options to
+// each request. These options are applied after the parent client's options (if
+// there is one), and before any request-specific options.
+func NewEmployerService(opts ...option.RequestOption) (r *EmployerService) {
+ r = &EmployerService{}
+ r.Options = opts
+ r.Benefits = NewEmployerBenefitService(opts...)
+ return
+}
diff --git a/employerbenefit.go b/employerbenefit.go
new file mode 100644
index 0000000..425b14b
--- /dev/null
+++ b/employerbenefit.go
@@ -0,0 +1,72 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package finchgo
+
+import (
+ "context"
+ "net/http"
+
+ "github.com/Finch-API/finch-api-go/internal/apijson"
+ "github.com/Finch-API/finch-api-go/internal/param"
+ "github.com/Finch-API/finch-api-go/internal/requestconfig"
+ "github.com/Finch-API/finch-api-go/option"
+)
+
+// EmployerBenefitService contains methods and other services that help with
+// interacting with the Finch API. Note, unlike clients, this service does not read
+// variables from the environment automatically. You should not instantiate this
+// service directly, and instead use the [NewEmployerBenefitService] method
+// instead.
+type EmployerBenefitService struct {
+ Options []option.RequestOption
+}
+
+// NewEmployerBenefitService generates a new service that applies the given options
+// to each request. These options are applied after the parent client's options (if
+// there is one), and before any request-specific options.
+func NewEmployerBenefitService(opts ...option.RequestOption) (r *EmployerBenefitService) {
+ r = &EmployerBenefitService{}
+ r.Options = opts
+ return
+}
+
+// **Availability: Assisted Benefits providers only**
+//
+// Register existing benefits from the customer on the provider, on Finch's end.
+// Please use the `/provider` endpoint to view available types for each provider.
+func (r *EmployerBenefitService) Register(ctx context.Context, body EmployerBenefitRegisterParams, opts ...option.RequestOption) (res *RegisterCompanyBenefitsResponse, err error) {
+ opts = append(r.Options[:], opts...)
+ path := "employer/benefits/register"
+ err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
+ return
+}
+
+type RegisterCompanyBenefitsResponse struct {
+ BenefitID string `json:"benefit_id,required"`
+ JobID string `json:"job_id,required"`
+ JSON registerCompanyBenefitsResponseJSON
+}
+
+// registerCompanyBenefitsResponseJSON contains the JSON metadata for the struct
+// [RegisterCompanyBenefitsResponse]
+type registerCompanyBenefitsResponseJSON struct {
+ BenefitID apijson.Field
+ JobID apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *RegisterCompanyBenefitsResponse) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type EmployerBenefitRegisterParams struct {
+ Description param.Field[string] `json:"description"`
+ Frequency param.Field[BenefitFrequency] `json:"frequency"`
+ // Type of benefit.
+ Type param.Field[BenefitType] `json:"type"`
+}
+
+func (r EmployerBenefitRegisterParams) MarshalJSON() (data []byte, err error) {
+ return apijson.MarshalRoot(r)
+}
diff --git a/employerbenefit_test.go b/employerbenefit_test.go
new file mode 100644
index 0000000..e5b4845
--- /dev/null
+++ b/employerbenefit_test.go
@@ -0,0 +1,40 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package finchgo_test
+
+import (
+ "context"
+ "errors"
+ "os"
+ "testing"
+
+ finchgo "github.com/Finch-API/finch-api-go"
+ "github.com/Finch-API/finch-api-go/internal/testutil"
+ "github.com/Finch-API/finch-api-go/option"
+)
+
+func TestEmployerBenefitRegisterWithOptionalParams(t *testing.T) {
+ baseURL := "http://localhost:4010"
+ if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
+ baseURL = envURL
+ }
+ if !testutil.CheckTestServer(t, baseURL) {
+ return
+ }
+ client := finchgo.NewClient(
+ option.WithBaseURL(baseURL),
+ option.WithAccessToken("AccessToken"),
+ )
+ _, err := client.Employer.Benefits.Register(context.TODO(), finchgo.EmployerBenefitRegisterParams{
+ Description: finchgo.F("string"),
+ Frequency: finchgo.F(finchgo.BenefitFrequencyOneTime),
+ Type: finchgo.F(finchgo.BenefitType401k),
+ })
+ if err != nil {
+ var apierr *finchgo.Error
+ if errors.As(err, &apierr) {
+ t.Log(string(apierr.DumpRequest(true)))
+ }
+ t.Fatalf("err should be nil: %s", err.Error())
+ }
+}
diff --git a/finchgo.go b/finchgo.go
new file mode 100644
index 0000000..f77429f
--- /dev/null
+++ b/finchgo.go
@@ -0,0 +1,101 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package finchgo
+
+import (
+ "github.com/Finch-API/finch-api-go/internal/apijson"
+ "github.com/Finch-API/finch-api-go/internal/param"
+)
+
+type FinchgoForwardResponse struct {
+ // A string representation of the HTTP response body of the forwarded request’s
+ // response received from the underlying integration’s API. This field may be null
+ // in the case where the upstream system’s response is empty.
+ Data string `json:"data,required,nullable"`
+ // The HTTP headers of the forwarded request’s response, exactly as received from
+ // the underlying integration’s API.
+ Headers interface{} `json:"headers,required,nullable"`
+ // An object containing details of your original forwarded request, for your ease
+ // of reference.
+ Request FinchgoForwardResponseRequest `json:"request,required"`
+ // The HTTP status code of the forwarded request’s response, exactly received from
+ // the underlying integration’s API. This value will be returned as an integer.
+ StatusCode int64 `json:"statusCode,required"`
+ JSON finchgoForwardResponseJSON
+}
+
+// finchgoForwardResponseJSON contains the JSON metadata for the struct
+// [FinchgoForwardResponse]
+type finchgoForwardResponseJSON struct {
+ Data apijson.Field
+ Headers apijson.Field
+ Request apijson.Field
+ StatusCode apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *FinchgoForwardResponse) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+// An object containing details of your original forwarded request, for your ease
+// of reference.
+type FinchgoForwardResponseRequest struct {
+ // The body that was specified for the forwarded request. If a value was not
+ // specified in the original request, this value will be returned as null ;
+ // otherwise, this value will always be returned as a string.
+ Data string `json:"data,required,nullable"`
+ // The specified HTTP headers that were included in the forwarded request. If no
+ // headers were specified, this will be returned as `null`.
+ Headers interface{} `json:"headers,required,nullable"`
+ // The HTTP method that was specified for the forwarded request. Valid values
+ // include: `GET` , `POST` , `PUT` , `DELETE` , and `PATCH`.
+ Method string `json:"method,required"`
+ // The query parameters that were included in the forwarded request. If no query
+ // parameters were specified, this will be returned as `null`.
+ Params interface{} `json:"params,required,nullable"`
+ // The URL route path that was specified for the forwarded request.
+ Route string `json:"route,required"`
+ JSON finchgoForwardResponseRequestJSON
+}
+
+// finchgoForwardResponseRequestJSON contains the JSON metadata for the struct
+// [FinchgoForwardResponseRequest]
+type finchgoForwardResponseRequestJSON struct {
+ Data apijson.Field
+ Headers apijson.Field
+ Method apijson.Field
+ Params apijson.Field
+ Route apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *FinchgoForwardResponseRequest) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type FinchgoForwardParams struct {
+ // The HTTP method for the forwarded request. Valid values include: `GET` , `POST`
+ // , `PUT` , `DELETE` , and `PATCH`.
+ Method param.Field[string] `json:"method,required"`
+ // The URL route path for the forwarded request. This value must begin with a
+ // forward-slash ( / ) and may only contain alphanumeric characters, hyphens, and
+ // underscores.
+ Route param.Field[string] `json:"route,required"`
+ // The body for the forwarded request. This value must be specified as either a
+ // string or a valid JSON object.
+ Data param.Field[string] `json:"data"`
+ // The HTTP headers to include on the forwarded request. This value must be
+ // specified as an object of key-value pairs. Example:
+ // `{"Content-Type": "application/xml", "X-API-Version": "v1" }`
+ Headers param.Field[interface{}] `json:"headers"`
+ // The query parameters for the forwarded request. This value must be specified as
+ // a valid JSON object rather than a query string.
+ Params param.Field[interface{}] `json:"params"`
+}
+
+func (r FinchgoForwardParams) MarshalJSON() (data []byte, err error) {
+ return apijson.MarshalRoot(r)
+}
diff --git a/finchgo_test.go b/finchgo_test.go
new file mode 100644
index 0000000..2777d3c
--- /dev/null
+++ b/finchgo_test.go
@@ -0,0 +1,42 @@
+// File generated from our OpenAPI spec by Stainless.
+
+package finchgo_test
+
+import (
+ "context"
+ "errors"
+ "os"
+ "testing"
+
+ finchgo "github.com/Finch-API/finch-api-go"
+ "github.com/Finch-API/finch-api-go/internal/testutil"
+ "github.com/Finch-API/finch-api-go/option"
+)
+
+func TestFinchgoForwardWithOptionalParams(t *testing.T) {
+ baseURL := "http://localhost:4010"
+ if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
+ baseURL = envURL
+ }
+ if !testutil.CheckTestServer(t, baseURL) {
+ return
+ }
+ client := finchgo.NewClient(
+ option.WithBaseURL(baseURL),
+ option.WithAccessToken("AccessToken"),
+ )
+ _, err := client.Forward(context.TODO(), finchgo.FinchgoForwardParams{
+ Method: finchgo.F("string"),
+ Route: finchgo.F("string"),
+ Data: finchgo.F("string"),
+ Headers: finchgo.F[any](map[string]interface{}{}),
+ Params: finchgo.F[any](map[string]interface{}{}),
+ })
+ if err != nil {
+ var apierr *finchgo.Error
+ if errors.As(err, &apierr) {
+ t.Log(string(apierr.DumpRequest(true)))
+ }
+ t.Fatalf("err should be nil: %s", err.Error())
+ }
+}
diff --git a/hris.go b/hris.go
index 9ce81bb..c0c5b7b 100644
--- a/hris.go
+++ b/hris.go
@@ -122,7 +122,7 @@ func (r *Location) UnmarshalJSON(data []byte) (err error) {
type Money struct {
// Amount for money object (in cents)
- Amount int64 `json:"amount"`
+ Amount int64 `json:"amount,nullable"`
Currency string `json:"currency"`
JSON moneyJSON
}
diff --git a/hrisbenefit.go b/hrisbenefit.go
index 4e295d1..030a0da 100644
--- a/hrisbenefit.go
+++ b/hrisbenefit.go
@@ -125,6 +125,7 @@ type BenefitFrequency string
const (
BenefitFrequencyOneTime BenefitFrequency = "one_time"
BenefitFrequencyEveryPaycheck BenefitFrequency = "every_paycheck"
+ BenefitFrequencyMonthly BenefitFrequency = "monthly"
)
// Type of benefit.
diff --git a/hrisemployment.go b/hrisemployment.go
index efe4b17..2bbbb65 100644
--- a/hrisemployment.go
+++ b/hrisemployment.go
@@ -66,6 +66,9 @@ type EmploymentData struct {
ID string `json:"id"`
// Worker's compensation classification code for this employee
ClassCode string `json:"class_code,nullable"`
+ // Custom fields for the individual. These are fields which are defined by the
+ // employer in the system.
+ CustomFields []EmploymentDataCustomField `json:"custom_fields,nullable"`
// The department object.
Department EmploymentDataDepartment `json:"department,nullable"`
// The employment object.
@@ -91,7 +94,9 @@ type EmploymentData struct {
// Note: This property is only available if enabled for your account. Please reach
// out to your Finch representative if you would like access.
PayGroupIDs []string `json:"pay_group_ids,nullable"`
- StartDate string `json:"start_date,nullable"`
+ // The source system's unique employment identifier for this individual
+ SourceID string `json:"source_id,nullable"`
+ StartDate string `json:"start_date,nullable"`
// The current title of the individual.
Title string `json:"title,nullable"`
// Note: This property is only available if enabled for your account. Please reach
@@ -107,6 +112,7 @@ type EmploymentData struct {
type employmentDataJSON struct {
ID apijson.Field
ClassCode apijson.Field
+ CustomFields apijson.Field
Department apijson.Field
Employment apijson.Field
EndDate apijson.Field
@@ -119,6 +125,7 @@ type employmentDataJSON struct {
Manager apijson.Field
MiddleName apijson.Field
PayGroupIDs apijson.Field
+ SourceID apijson.Field
StartDate apijson.Field
Title apijson.Field
WorkID apijson.Field
@@ -131,6 +138,25 @@ func (r *EmploymentData) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
+type EmploymentDataCustomField struct {
+ Name string `json:"name"`
+ Value interface{} `json:"value"`
+ JSON employmentDataCustomFieldJSON
+}
+
+// employmentDataCustomFieldJSON contains the JSON metadata for the struct
+// [EmploymentDataCustomField]
+type employmentDataCustomFieldJSON struct {
+ Name apijson.Field
+ Value apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *EmploymentDataCustomField) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
// The department object.
type EmploymentDataDepartment struct {
// The name of the department associated with the individual.
diff --git a/hrisindividual.go b/hrisindividual.go
index dfa3030..321faf3 100644
--- a/hrisindividual.go
+++ b/hrisindividual.go
@@ -58,6 +58,8 @@ type Individual struct {
ID string `json:"id"`
Dob string `json:"dob,nullable"`
Emails []IndividualEmail `json:"emails,nullable"`
+ // The EEOC-defined ethnicity of the individual.
+ Ethnicity IndividualEthnicity `json:"ethnicity,nullable"`
// The legal first name of the individual.
FirstName string `json:"first_name,nullable"`
// The gender of the individual.
@@ -81,6 +83,7 @@ type individualJSON struct {
ID apijson.Field
Dob apijson.Field
Emails apijson.Field
+ Ethnicity apijson.Field
FirstName apijson.Field
Gender apijson.Field
LastName apijson.Field
@@ -122,6 +125,20 @@ const (
IndividualEmailsTypePersonal IndividualEmailsType = "personal"
)
+// The EEOC-defined ethnicity of the individual.
+type IndividualEthnicity string
+
+const (
+ IndividualEthnicityAsian IndividualEthnicity = "asian"
+ IndividualEthnicityWhite IndividualEthnicity = "white"
+ IndividualEthnicityBlackOrAfricanAmerican IndividualEthnicity = "black_or_african_american"
+ IndividualEthnicityNativeHawaiianOrPacificIslander IndividualEthnicity = "native_hawaiian_or_pacific_islander"
+ IndividualEthnicityAmericanIndianOrAlaskaNative IndividualEthnicity = "american_indian_or_alaska_native"
+ IndividualEthnicityHispanicOrLatino IndividualEthnicity = "hispanic_or_latino"
+ IndividualEthnicityTwoOrMoreRaces IndividualEthnicity = "two_or_more_races"
+ IndividualEthnicityDeclineToSpecify IndividualEthnicity = "decline_to_specify"
+)
+
// The gender of the individual.
type IndividualGender string
diff --git a/hrispaystatement.go b/hrispaystatement.go
index cde9fc4..e038416 100644
--- a/hrispaystatement.go
+++ b/hrispaystatement.go
@@ -75,7 +75,7 @@ type PayStatement struct {
// The array of taxes objects associated with this pay statement.
Taxes []PayStatementTax `json:"taxes,nullable"`
// The number of hours worked for this pay period
- TotalHours int64 `json:"total_hours,nullable"`
+ TotalHours float64 `json:"total_hours,nullable"`
// The type of the payment associated with the pay statement.
Type PayStatementType `json:"type,nullable"`
JSON payStatementJSON
diff --git a/provider.go b/provider.go
index d9bc36f..00be333 100644
--- a/provider.go
+++ b/provider.go
@@ -52,17 +52,349 @@ func (r *ProviderService) ListAutoPaging(ctx context.Context, opts ...option.Req
return shared.NewSinglePageAutoPager(r.List(ctx, opts...))
}
+type BenefitSupportType struct {
+ SupportedFeatures BenefitSupportTypeSupportedFeatures `json:"supported_features"`
+ SupportedOperations BenefitSupportTypeSupportedOperations `json:"supported_operations"`
+ JSON benefitSupportTypeJSON
+}
+
+// benefitSupportTypeJSON contains the JSON metadata for the struct
+// [BenefitSupportType]
+type benefitSupportTypeJSON struct {
+ SupportedFeatures apijson.Field
+ SupportedOperations apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *BenefitSupportType) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type BenefitSupportTypeSupportedFeatures struct {
+ // Whether the provider supports an annual maximum for this benefit.
+ AnnualMaximum bool `json:"annual_maximum,nullable"`
+ // Whether the provider supports catch up for this benefit. This field will only be
+ // true for retirement benefits.
+ CatchUp bool `json:"catch_up,nullable"`
+ // Supported contribution types. An empty array indicates contributions are not
+ // supported.
+ CompanyContribution []BenefitSupportTypeSupportedFeaturesCompanyContribution `json:"company_contribution,nullable"`
+ Description string `json:"description,nullable"`
+ // Supported deduction types. An empty array indicates deductions are not
+ // supported.
+ EmployeeDeduction []BenefitSupportTypeSupportedFeaturesEmployeeDeduction `json:"employee_deduction,nullable"`
+ // The list of frequencies supported by the provider for this benefit
+ Frequencies []BenefitFrequency `json:"frequencies"`
+ // Whether the provider supports HSA contribution limits. Empty if this feature is
+ // not supported for the benefit. This array only has values for HSA benefits.
+ HsaContributionLimit []BenefitSupportTypeSupportedFeaturesHsaContributionLimit `json:"hsa_contribution_limit,nullable"`
+ JSON benefitSupportTypeSupportedFeaturesJSON
+}
+
+// benefitSupportTypeSupportedFeaturesJSON contains the JSON metadata for the
+// struct [BenefitSupportTypeSupportedFeatures]
+type benefitSupportTypeSupportedFeaturesJSON struct {
+ AnnualMaximum apijson.Field
+ CatchUp apijson.Field
+ CompanyContribution apijson.Field
+ Description apijson.Field
+ EmployeeDeduction apijson.Field
+ Frequencies apijson.Field
+ HsaContributionLimit apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *BenefitSupportTypeSupportedFeatures) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type BenefitSupportTypeSupportedFeaturesCompanyContribution string
+
+const (
+ BenefitSupportTypeSupportedFeaturesCompanyContributionFixed BenefitSupportTypeSupportedFeaturesCompanyContribution = "fixed"
+ BenefitSupportTypeSupportedFeaturesCompanyContributionPercent BenefitSupportTypeSupportedFeaturesCompanyContribution = "percent"
+)
+
+type BenefitSupportTypeSupportedFeaturesEmployeeDeduction string
+
+const (
+ BenefitSupportTypeSupportedFeaturesEmployeeDeductionFixed BenefitSupportTypeSupportedFeaturesEmployeeDeduction = "fixed"
+ BenefitSupportTypeSupportedFeaturesEmployeeDeductionPercent BenefitSupportTypeSupportedFeaturesEmployeeDeduction = "percent"
+)
+
+type BenefitSupportTypeSupportedFeaturesHsaContributionLimit string
+
+const (
+ BenefitSupportTypeSupportedFeaturesHsaContributionLimitIndividual BenefitSupportTypeSupportedFeaturesHsaContributionLimit = "individual"
+ BenefitSupportTypeSupportedFeaturesHsaContributionLimitFamily BenefitSupportTypeSupportedFeaturesHsaContributionLimit = "family"
+)
+
+type BenefitSupportTypeSupportedOperations struct {
+ CompanyBenefits BenefitSupportTypeSupportedOperationsCompanyBenefits `json:"company_benefits"`
+ IndividualBenefits BenefitSupportTypeSupportedOperationsIndividualBenefits `json:"individual_benefits"`
+ JSON benefitSupportTypeSupportedOperationsJSON
+}
+
+// benefitSupportTypeSupportedOperationsJSON contains the JSON metadata for the
+// struct [BenefitSupportTypeSupportedOperations]
+type benefitSupportTypeSupportedOperationsJSON struct {
+ CompanyBenefits apijson.Field
+ IndividualBenefits apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *BenefitSupportTypeSupportedOperations) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type BenefitSupportTypeSupportedOperationsCompanyBenefits struct {
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Create BenefitSupportTypeSupportedOperationsCompanyBenefitsCreate `json:"create"`
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Delete BenefitSupportTypeSupportedOperationsCompanyBenefitsDelete `json:"delete"`
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Read BenefitSupportTypeSupportedOperationsCompanyBenefitsRead `json:"read"`
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Update BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdate `json:"update"`
+ JSON benefitSupportTypeSupportedOperationsCompanyBenefitsJSON
+}
+
+// benefitSupportTypeSupportedOperationsCompanyBenefitsJSON contains the JSON
+// metadata for the struct [BenefitSupportTypeSupportedOperationsCompanyBenefits]
+type benefitSupportTypeSupportedOperationsCompanyBenefitsJSON struct {
+ Create apijson.Field
+ Delete apijson.Field
+ Read apijson.Field
+ Update apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *BenefitSupportTypeSupportedOperationsCompanyBenefits) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsCompanyBenefitsCreate string
+
+const (
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsCreateSupported BenefitSupportTypeSupportedOperationsCompanyBenefitsCreate = "supported"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsCreateNotSupportedByFinch BenefitSupportTypeSupportedOperationsCompanyBenefitsCreate = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsCreateNotSupportedByProvider BenefitSupportTypeSupportedOperationsCompanyBenefitsCreate = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsCreateClientAccessOnly BenefitSupportTypeSupportedOperationsCompanyBenefitsCreate = "client_access_only"
+)
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsCompanyBenefitsDelete string
+
+const (
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsDeleteSupported BenefitSupportTypeSupportedOperationsCompanyBenefitsDelete = "supported"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsDeleteNotSupportedByFinch BenefitSupportTypeSupportedOperationsCompanyBenefitsDelete = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsDeleteNotSupportedByProvider BenefitSupportTypeSupportedOperationsCompanyBenefitsDelete = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsDeleteClientAccessOnly BenefitSupportTypeSupportedOperationsCompanyBenefitsDelete = "client_access_only"
+)
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsCompanyBenefitsRead string
+
+const (
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsReadSupported BenefitSupportTypeSupportedOperationsCompanyBenefitsRead = "supported"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsReadNotSupportedByFinch BenefitSupportTypeSupportedOperationsCompanyBenefitsRead = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsReadNotSupportedByProvider BenefitSupportTypeSupportedOperationsCompanyBenefitsRead = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsReadClientAccessOnly BenefitSupportTypeSupportedOperationsCompanyBenefitsRead = "client_access_only"
+)
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdate string
+
+const (
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdateSupported BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdate = "supported"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdateNotSupportedByFinch BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdate = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdateNotSupportedByProvider BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdate = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdateClientAccessOnly BenefitSupportTypeSupportedOperationsCompanyBenefitsUpdate = "client_access_only"
+)
+
+type BenefitSupportTypeSupportedOperationsIndividualBenefits struct {
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Create BenefitSupportTypeSupportedOperationsIndividualBenefitsCreate `json:"create"`
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Delete BenefitSupportTypeSupportedOperationsIndividualBenefitsDelete `json:"delete"`
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Read BenefitSupportTypeSupportedOperationsIndividualBenefitsRead `json:"read"`
+ // - `supported`: This operation is supported by both the provider and Finch
+ // - `not_supported_by_finch`: This operation is not supported by Finch but
+ // supported by the provider
+ // - `not_supported_by_provider`: This operation is not supported by the provider,
+ // so Finch cannot support
+ // - `client_access_only`: This behavior is supported by the provider, but only
+ // available to the client and not to Finch
+ Update BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdate `json:"update"`
+ JSON benefitSupportTypeSupportedOperationsIndividualBenefitsJSON
+}
+
+// benefitSupportTypeSupportedOperationsIndividualBenefitsJSON contains the JSON
+// metadata for the struct
+// [BenefitSupportTypeSupportedOperationsIndividualBenefits]
+type benefitSupportTypeSupportedOperationsIndividualBenefitsJSON struct {
+ Create apijson.Field
+ Delete apijson.Field
+ Read apijson.Field
+ Update apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *BenefitSupportTypeSupportedOperationsIndividualBenefits) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsIndividualBenefitsCreate string
+
+const (
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsCreateSupported BenefitSupportTypeSupportedOperationsIndividualBenefitsCreate = "supported"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsCreateNotSupportedByFinch BenefitSupportTypeSupportedOperationsIndividualBenefitsCreate = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsCreateNotSupportedByProvider BenefitSupportTypeSupportedOperationsIndividualBenefitsCreate = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsCreateClientAccessOnly BenefitSupportTypeSupportedOperationsIndividualBenefitsCreate = "client_access_only"
+)
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsIndividualBenefitsDelete string
+
+const (
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsDeleteSupported BenefitSupportTypeSupportedOperationsIndividualBenefitsDelete = "supported"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsDeleteNotSupportedByFinch BenefitSupportTypeSupportedOperationsIndividualBenefitsDelete = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsDeleteNotSupportedByProvider BenefitSupportTypeSupportedOperationsIndividualBenefitsDelete = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsDeleteClientAccessOnly BenefitSupportTypeSupportedOperationsIndividualBenefitsDelete = "client_access_only"
+)
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsIndividualBenefitsRead string
+
+const (
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsReadSupported BenefitSupportTypeSupportedOperationsIndividualBenefitsRead = "supported"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsReadNotSupportedByFinch BenefitSupportTypeSupportedOperationsIndividualBenefitsRead = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsReadNotSupportedByProvider BenefitSupportTypeSupportedOperationsIndividualBenefitsRead = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsReadClientAccessOnly BenefitSupportTypeSupportedOperationsIndividualBenefitsRead = "client_access_only"
+)
+
+// - `supported`: This operation is supported by both the provider and Finch
+// - `not_supported_by_finch`: This operation is not supported by Finch but
+// supported by the provider
+// - `not_supported_by_provider`: This operation is not supported by the provider,
+// so Finch cannot support
+// - `client_access_only`: This behavior is supported by the provider, but only
+// available to the client and not to Finch
+type BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdate string
+
+const (
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdateSupported BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdate = "supported"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdateNotSupportedByFinch BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdate = "not_supported_by_finch"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdateNotSupportedByProvider BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdate = "not_supported_by_provider"
+ BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdateClientAccessOnly BenefitSupportTypeSupportedOperationsIndividualBenefitsUpdate = "client_access_only"
+)
+
type Provider struct {
// The id of the payroll provider used in Connect.
ID string `json:"id"`
+ // The list of authentication methods supported by the provider.
+ AuthenticationMethods []ProviderAuthenticationMethod `json:"authentication_methods"`
// The display name of the payroll provider.
DisplayName string `json:"display_name"`
// The url to the official icon of the payroll provider.
Icon string `json:"icon"`
// The url to the official logo of the payroll provider.
Logo string `json:"logo"`
- // Whether the Finch integration with this provider uses the Assisted Connect Flow
- // by default.
+ // [DEPRECATED] Whether the Finch integration with this provider uses the Assisted
+ // Connect Flow by default. This field is now deprecated. Please check for a `type`
+ // of `assisted` in the `authentication_methods` field instead.
Manual bool `json:"manual"`
// whether MFA is required for the provider.
MfaRequired bool `json:"mfa_required"`
@@ -75,18 +407,840 @@ type Provider struct {
// providerJSON contains the JSON metadata for the struct [Provider]
type providerJSON struct {
- ID apijson.Field
- DisplayName apijson.Field
- Icon apijson.Field
- Logo apijson.Field
- Manual apijson.Field
- MfaRequired apijson.Field
- PrimaryColor apijson.Field
- Products apijson.Field
+ ID apijson.Field
+ AuthenticationMethods apijson.Field
+ DisplayName apijson.Field
+ Icon apijson.Field
+ Logo apijson.Field
+ Manual apijson.Field
+ MfaRequired apijson.Field
+ PrimaryColor apijson.Field
+ Products apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *Provider) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethod struct {
+ // Each benefit type and their supported features. If the benefit type is not
+ // supported, the property will be null
+ BenefitsSupport ProviderAuthenticationMethodsBenefitsSupport `json:"benefits_support,nullable"`
+ // The supported data fields returned by our HR and payroll endpoints
+ SupportedFields ProviderAuthenticationMethodsSupportedFields `json:"supported_fields,nullable"`
+ // The type of authentication method.
+ Type ProviderAuthenticationMethodsType `json:"type"`
+ JSON providerAuthenticationMethodJSON
+}
+
+// providerAuthenticationMethodJSON contains the JSON metadata for the struct
+// [ProviderAuthenticationMethod]
+type providerAuthenticationMethodJSON struct {
+ BenefitsSupport apijson.Field
+ SupportedFields apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethod) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+// Each benefit type and their supported features. If the benefit type is not
+// supported, the property will be null
+type ProviderAuthenticationMethodsBenefitsSupport struct {
+ Retirement401k BenefitSupportType `json:"401k,nullable"`
+ Retirement401kLoan BenefitSupportType `json:"401k_loan,nullable"`
+ Retirement401kRoth BenefitSupportType `json:"401k_roth,nullable"`
+ Retirement403B BenefitSupportType `json:"403b,nullable"`
+ Retirement403BRoth BenefitSupportType `json:"403b_roth,nullable"`
+ Retirement457 BenefitSupportType `json:"457,nullable"`
+ Retirement457Roth BenefitSupportType `json:"457_roth,nullable"`
+ Commuter BenefitSupportType `json:"commuter,nullable"`
+ CustomPostTax BenefitSupportType `json:"custom_post_tax,nullable"`
+ CustomPreTax BenefitSupportType `json:"custom_pre_tax,nullable"`
+ FsaDependentCare BenefitSupportType `json:"fsa_dependent_care,nullable"`
+ FsaMedical BenefitSupportType `json:"fsa_medical,nullable"`
+ HsaPost BenefitSupportType `json:"hsa_post,nullable"`
+ HsaPre BenefitSupportType `json:"hsa_pre,nullable"`
+ S125Dental BenefitSupportType `json:"s125_dental,nullable"`
+ S125Medical BenefitSupportType `json:"s125_medical,nullable"`
+ S125Vision BenefitSupportType `json:"s125_vision,nullable"`
+ Simple BenefitSupportType `json:"simple,nullable"`
+ SimpleIra BenefitSupportType `json:"simple_ira,nullable"`
+ JSON providerAuthenticationMethodsBenefitsSupportJSON
+}
+
+// providerAuthenticationMethodsBenefitsSupportJSON contains the JSON metadata for
+// the struct [ProviderAuthenticationMethodsBenefitsSupport]
+type providerAuthenticationMethodsBenefitsSupportJSON struct {
+ Retirement401k apijson.Field
+ Retirement401kLoan apijson.Field
+ Retirement401kRoth apijson.Field
+ Retirement403B apijson.Field
+ Retirement403BRoth apijson.Field
+ Retirement457 apijson.Field
+ Retirement457Roth apijson.Field
+ Commuter apijson.Field
+ CustomPostTax apijson.Field
+ CustomPreTax apijson.Field
+ FsaDependentCare apijson.Field
+ FsaMedical apijson.Field
+ HsaPost apijson.Field
+ HsaPre apijson.Field
+ S125Dental apijson.Field
+ S125Medical apijson.Field
+ S125Vision apijson.Field
+ Simple apijson.Field
+ SimpleIra apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsBenefitsSupport) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+// The supported data fields returned by our HR and payroll endpoints
+type ProviderAuthenticationMethodsSupportedFields struct {
+ Company ProviderAuthenticationMethodsSupportedFieldsCompany `json:"company"`
+ Directory ProviderAuthenticationMethodsSupportedFieldsDirectory `json:"directory"`
+ Employment ProviderAuthenticationMethodsSupportedFieldsEmployment `json:"employment"`
+ Individual ProviderAuthenticationMethodsSupportedFieldsIndividual `json:"individual"`
+ PayStatement ProviderAuthenticationMethodsSupportedFieldsPayStatement `json:"pay_statement"`
+ Payment ProviderAuthenticationMethodsSupportedFieldsPayment `json:"payment"`
+ JSON providerAuthenticationMethodsSupportedFieldsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsJSON contains the JSON metadata for
+// the struct [ProviderAuthenticationMethodsSupportedFields]
+type providerAuthenticationMethodsSupportedFieldsJSON struct {
+ Company apijson.Field
+ Directory apijson.Field
+ Employment apijson.Field
+ Individual apijson.Field
+ PayStatement apijson.Field
+ Payment apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
-func (r *Provider) UnmarshalJSON(data []byte) (err error) {
+func (r *ProviderAuthenticationMethodsSupportedFields) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsCompany struct {
+ ID bool `json:"id"`
+ Accounts ProviderAuthenticationMethodsSupportedFieldsCompanyAccounts `json:"accounts"`
+ Departments ProviderAuthenticationMethodsSupportedFieldsCompanyDepartments `json:"departments"`
+ Ein bool `json:"ein"`
+ Entity ProviderAuthenticationMethodsSupportedFieldsCompanyEntity `json:"entity"`
+ LegalName bool `json:"legal_name"`
+ Locations ProviderAuthenticationMethodsSupportedFieldsCompanyLocations `json:"locations"`
+ PrimaryEmail bool `json:"primary_email"`
+ PrimaryPhoneNumber bool `json:"primary_phone_number"`
+ JSON providerAuthenticationMethodsSupportedFieldsCompanyJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsCompanyJSON contains the JSON
+// metadata for the struct [ProviderAuthenticationMethodsSupportedFieldsCompany]
+type providerAuthenticationMethodsSupportedFieldsCompanyJSON struct {
+ ID apijson.Field
+ Accounts apijson.Field
+ Departments apijson.Field
+ Ein apijson.Field
+ Entity apijson.Field
+ LegalName apijson.Field
+ Locations apijson.Field
+ PrimaryEmail apijson.Field
+ PrimaryPhoneNumber apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsCompany) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsCompanyAccounts struct {
+ AccountName bool `json:"account_name"`
+ AccountNumber bool `json:"account_number"`
+ AccountType bool `json:"account_type"`
+ InstitutionName bool `json:"institution_name"`
+ RoutingNumber bool `json:"routing_number"`
+ JSON providerAuthenticationMethodsSupportedFieldsCompanyAccountsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsCompanyAccountsJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsCompanyAccounts]
+type providerAuthenticationMethodsSupportedFieldsCompanyAccountsJSON struct {
+ AccountName apijson.Field
+ AccountNumber apijson.Field
+ AccountType apijson.Field
+ InstitutionName apijson.Field
+ RoutingNumber apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsCompanyAccounts) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsCompanyDepartments struct {
+ Name bool `json:"name"`
+ Parent ProviderAuthenticationMethodsSupportedFieldsCompanyDepartmentsParent `json:"parent"`
+ JSON providerAuthenticationMethodsSupportedFieldsCompanyDepartmentsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsCompanyDepartmentsJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsCompanyDepartments]
+type providerAuthenticationMethodsSupportedFieldsCompanyDepartmentsJSON struct {
+ Name apijson.Field
+ Parent apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsCompanyDepartments) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsCompanyDepartmentsParent struct {
+ Name bool `json:"name"`
+ JSON providerAuthenticationMethodsSupportedFieldsCompanyDepartmentsParentJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsCompanyDepartmentsParentJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsCompanyDepartmentsParent]
+type providerAuthenticationMethodsSupportedFieldsCompanyDepartmentsParentJSON struct {
+ Name apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsCompanyDepartmentsParent) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsCompanyEntity struct {
+ Subtype bool `json:"subtype"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsCompanyEntityJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsCompanyEntityJSON contains the JSON
+// metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsCompanyEntity]
+type providerAuthenticationMethodsSupportedFieldsCompanyEntityJSON struct {
+ Subtype apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsCompanyEntity) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsCompanyLocations struct {
+ City bool `json:"city"`
+ Country bool `json:"country"`
+ Line1 bool `json:"line1"`
+ Line2 bool `json:"line2"`
+ PostalCode bool `json:"postal_code"`
+ State bool `json:"state"`
+ JSON providerAuthenticationMethodsSupportedFieldsCompanyLocationsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsCompanyLocationsJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsCompanyLocations]
+type providerAuthenticationMethodsSupportedFieldsCompanyLocationsJSON struct {
+ City apijson.Field
+ Country apijson.Field
+ Line1 apijson.Field
+ Line2 apijson.Field
+ PostalCode apijson.Field
+ State apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsCompanyLocations) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsDirectory struct {
+ Individuals ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividuals `json:"individuals"`
+ Paging ProviderAuthenticationMethodsSupportedFieldsDirectoryPaging `json:"paging"`
+ JSON providerAuthenticationMethodsSupportedFieldsDirectoryJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsDirectoryJSON contains the JSON
+// metadata for the struct [ProviderAuthenticationMethodsSupportedFieldsDirectory]
+type providerAuthenticationMethodsSupportedFieldsDirectoryJSON struct {
+ Individuals apijson.Field
+ Paging apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsDirectory) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividuals struct {
+ ID bool `json:"id"`
+ Department interface{} `json:"department"`
+ FirstName bool `json:"first_name"`
+ IsActive bool `json:"is_active"`
+ LastName bool `json:"last_name"`
+ Manager ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividualsManager `json:"manager"`
+ MiddleName bool `json:"middle_name"`
+ JSON providerAuthenticationMethodsSupportedFieldsDirectoryIndividualsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsDirectoryIndividualsJSON contains
+// the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividuals]
+type providerAuthenticationMethodsSupportedFieldsDirectoryIndividualsJSON struct {
+ ID apijson.Field
+ Department apijson.Field
+ FirstName apijson.Field
+ IsActive apijson.Field
+ LastName apijson.Field
+ Manager apijson.Field
+ MiddleName apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividuals) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividualsManager struct {
+ ID bool `json:"id"`
+ JSON providerAuthenticationMethodsSupportedFieldsDirectoryIndividualsManagerJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsDirectoryIndividualsManagerJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividualsManager]
+type providerAuthenticationMethodsSupportedFieldsDirectoryIndividualsManagerJSON struct {
+ ID apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsDirectoryIndividualsManager) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsDirectoryPaging struct {
+ Count bool `json:"count"`
+ Offset bool `json:"offset"`
+ JSON providerAuthenticationMethodsSupportedFieldsDirectoryPagingJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsDirectoryPagingJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsDirectoryPaging]
+type providerAuthenticationMethodsSupportedFieldsDirectoryPagingJSON struct {
+ Count apijson.Field
+ Offset apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsDirectoryPaging) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsEmployment struct {
+ ID bool `json:"id"`
+ ClassCode bool `json:"class_code"`
+ CustomFields bool `json:"custom_fields"`
+ Department ProviderAuthenticationMethodsSupportedFieldsEmploymentDepartment `json:"department"`
+ Employment ProviderAuthenticationMethodsSupportedFieldsEmploymentEmployment `json:"employment"`
+ EndDate bool `json:"end_date"`
+ FirstName bool `json:"first_name"`
+ Income ProviderAuthenticationMethodsSupportedFieldsEmploymentIncome `json:"income"`
+ IncomeHistory bool `json:"income_history"`
+ IsActive bool `json:"is_active"`
+ LastName bool `json:"last_name"`
+ Location ProviderAuthenticationMethodsSupportedFieldsEmploymentLocation `json:"location"`
+ Manager interface{} `json:"manager"`
+ MiddleName bool `json:"middle_name"`
+ StartDate bool `json:"start_date"`
+ Title bool `json:"title"`
+ JSON providerAuthenticationMethodsSupportedFieldsEmploymentJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsEmploymentJSON contains the JSON
+// metadata for the struct [ProviderAuthenticationMethodsSupportedFieldsEmployment]
+type providerAuthenticationMethodsSupportedFieldsEmploymentJSON struct {
+ ID apijson.Field
+ ClassCode apijson.Field
+ CustomFields apijson.Field
+ Department apijson.Field
+ Employment apijson.Field
+ EndDate apijson.Field
+ FirstName apijson.Field
+ Income apijson.Field
+ IncomeHistory apijson.Field
+ IsActive apijson.Field
+ LastName apijson.Field
+ Location apijson.Field
+ Manager apijson.Field
+ MiddleName apijson.Field
+ StartDate apijson.Field
+ Title apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsEmployment) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsEmploymentDepartment struct {
+ Name bool `json:"name"`
+ JSON providerAuthenticationMethodsSupportedFieldsEmploymentDepartmentJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsEmploymentDepartmentJSON contains
+// the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsEmploymentDepartment]
+type providerAuthenticationMethodsSupportedFieldsEmploymentDepartmentJSON struct {
+ Name apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsEmploymentDepartment) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsEmploymentEmployment struct {
+ Subtype bool `json:"subtype"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsEmploymentEmploymentJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsEmploymentEmploymentJSON contains
+// the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsEmploymentEmployment]
+type providerAuthenticationMethodsSupportedFieldsEmploymentEmploymentJSON struct {
+ Subtype apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsEmploymentEmployment) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
+
+type ProviderAuthenticationMethodsSupportedFieldsEmploymentIncome struct {
+ Amount bool `json:"amount"`
+ Currency bool `json:"currency"`
+ Unit bool `json:"unit"`
+ JSON providerAuthenticationMethodsSupportedFieldsEmploymentIncomeJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsEmploymentIncomeJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsEmploymentIncome]
+type providerAuthenticationMethodsSupportedFieldsEmploymentIncomeJSON struct {
+ Amount apijson.Field
+ Currency apijson.Field
+ Unit apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsEmploymentIncome) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsEmploymentLocation struct {
+ City bool `json:"city"`
+ Country bool `json:"country"`
+ Line1 bool `json:"line1"`
+ Line2 bool `json:"line2"`
+ PostalCode bool `json:"postal_code"`
+ State bool `json:"state"`
+ JSON providerAuthenticationMethodsSupportedFieldsEmploymentLocationJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsEmploymentLocationJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsEmploymentLocation]
+type providerAuthenticationMethodsSupportedFieldsEmploymentLocationJSON struct {
+ City apijson.Field
+ Country apijson.Field
+ Line1 apijson.Field
+ Line2 apijson.Field
+ PostalCode apijson.Field
+ State apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsEmploymentLocation) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsIndividual struct {
+ ID bool `json:"id"`
+ Dob bool `json:"dob"`
+ Emails ProviderAuthenticationMethodsSupportedFieldsIndividualEmails `json:"emails"`
+ Ethnicity bool `json:"ethnicity"`
+ FirstName bool `json:"first_name"`
+ Gender bool `json:"gender"`
+ LastName bool `json:"last_name"`
+ MiddleName bool `json:"middle_name"`
+ PhoneNumbers ProviderAuthenticationMethodsSupportedFieldsIndividualPhoneNumbers `json:"phone_numbers"`
+ PreferredName bool `json:"preferred_name"`
+ Residence ProviderAuthenticationMethodsSupportedFieldsIndividualResidence `json:"residence"`
+ Ssn bool `json:"ssn"`
+ JSON providerAuthenticationMethodsSupportedFieldsIndividualJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsIndividualJSON contains the JSON
+// metadata for the struct [ProviderAuthenticationMethodsSupportedFieldsIndividual]
+type providerAuthenticationMethodsSupportedFieldsIndividualJSON struct {
+ ID apijson.Field
+ Dob apijson.Field
+ Emails apijson.Field
+ Ethnicity apijson.Field
+ FirstName apijson.Field
+ Gender apijson.Field
+ LastName apijson.Field
+ MiddleName apijson.Field
+ PhoneNumbers apijson.Field
+ PreferredName apijson.Field
+ Residence apijson.Field
+ Ssn apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsIndividual) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsIndividualEmails struct {
+ Data bool `json:"data"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsIndividualEmailsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsIndividualEmailsJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsIndividualEmails]
+type providerAuthenticationMethodsSupportedFieldsIndividualEmailsJSON struct {
+ Data apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsIndividualEmails) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsIndividualPhoneNumbers struct {
+ Data bool `json:"data"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsIndividualPhoneNumbersJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsIndividualPhoneNumbersJSON contains
+// the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsIndividualPhoneNumbers]
+type providerAuthenticationMethodsSupportedFieldsIndividualPhoneNumbersJSON struct {
+ Data apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsIndividualPhoneNumbers) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsIndividualResidence struct {
+ City bool `json:"city"`
+ Country bool `json:"country"`
+ Line1 bool `json:"line1"`
+ Line2 bool `json:"line2"`
+ PostalCode bool `json:"postal_code"`
+ State bool `json:"state"`
+ JSON providerAuthenticationMethodsSupportedFieldsIndividualResidenceJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsIndividualResidenceJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsIndividualResidence]
+type providerAuthenticationMethodsSupportedFieldsIndividualResidenceJSON struct {
+ City apijson.Field
+ Country apijson.Field
+ Line1 apijson.Field
+ Line2 apijson.Field
+ PostalCode apijson.Field
+ State apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsIndividualResidence) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatement struct {
+ Paging ProviderAuthenticationMethodsSupportedFieldsPayStatementPaging `json:"paging"`
+ PayStatements ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatements `json:"pay_statements"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementJSON contains the JSON
+// metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatement]
+type providerAuthenticationMethodsSupportedFieldsPayStatementJSON struct {
+ Paging apijson.Field
+ PayStatements apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatement) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatementPaging struct {
+ Count bool `json:"count,required"`
+ Offset bool `json:"offset,required"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementPagingJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementPagingJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatementPaging]
+type providerAuthenticationMethodsSupportedFieldsPayStatementPagingJSON struct {
+ Count apijson.Field
+ Offset apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatementPaging) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatements struct {
+ Earnings ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarnings `json:"earnings"`
+ EmployeeDeductions ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductions `json:"employee_deductions"`
+ EmployerDeductions ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductions `json:"employer_deductions"`
+ GrossPay bool `json:"gross_pay"`
+ IndividualID bool `json:"individual_id"`
+ NetPay bool `json:"net_pay"`
+ PaymentMethod bool `json:"payment_method"`
+ Taxes ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxes `json:"taxes"`
+ TotalHours bool `json:"total_hours"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatements]
+type providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsJSON struct {
+ Earnings apijson.Field
+ EmployeeDeductions apijson.Field
+ EmployerDeductions apijson.Field
+ GrossPay apijson.Field
+ IndividualID apijson.Field
+ NetPay apijson.Field
+ PaymentMethod apijson.Field
+ Taxes apijson.Field
+ TotalHours apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatements) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarnings struct {
+ Amount bool `json:"amount"`
+ Currency bool `json:"currency"`
+ Name bool `json:"name"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarningsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarningsJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarnings]
+type providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarningsJSON struct {
+ Amount apijson.Field
+ Currency apijson.Field
+ Name apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEarnings) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductions struct {
+ Amount bool `json:"amount"`
+ Currency bool `json:"currency"`
+ Name bool `json:"name"`
+ PreTax bool `json:"pre_tax"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductionsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductionsJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductions]
+type providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductionsJSON struct {
+ Amount apijson.Field
+ Currency apijson.Field
+ Name apijson.Field
+ PreTax apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployeeDeductions) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductions struct {
+ Amount bool `json:"amount"`
+ Currency bool `json:"currency"`
+ Name bool `json:"name"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductionsJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductionsJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductions]
+type providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductionsJSON struct {
+ Amount apijson.Field
+ Currency apijson.Field
+ Name apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsEmployerDeductions) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxes struct {
+ Amount bool `json:"amount"`
+ Currency bool `json:"currency"`
+ Employer bool `json:"employer"`
+ Name bool `json:"name"`
+ Type bool `json:"type"`
+ JSON providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxesJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxesJSON
+// contains the JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxes]
+type providerAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxesJSON struct {
+ Amount apijson.Field
+ Currency apijson.Field
+ Employer apijson.Field
+ Name apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayStatementPayStatementsTaxes) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPayment struct {
+ ID bool `json:"id"`
+ CompanyDebit bool `json:"company_debit"`
+ DebitDate bool `json:"debit_date"`
+ EmployeeTaxes bool `json:"employee_taxes"`
+ EmployerTaxes bool `json:"employer_taxes"`
+ GrossPay bool `json:"gross_pay"`
+ IndividualIDs bool `json:"individual_ids"`
+ NetPay bool `json:"net_pay"`
+ PayDate bool `json:"pay_date"`
+ PayPeriod ProviderAuthenticationMethodsSupportedFieldsPaymentPayPeriod `json:"pay_period"`
+ JSON providerAuthenticationMethodsSupportedFieldsPaymentJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPaymentJSON contains the JSON
+// metadata for the struct [ProviderAuthenticationMethodsSupportedFieldsPayment]
+type providerAuthenticationMethodsSupportedFieldsPaymentJSON struct {
+ ID apijson.Field
+ CompanyDebit apijson.Field
+ DebitDate apijson.Field
+ EmployeeTaxes apijson.Field
+ EmployerTaxes apijson.Field
+ GrossPay apijson.Field
+ IndividualIDs apijson.Field
+ NetPay apijson.Field
+ PayDate apijson.Field
+ PayPeriod apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPayment) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+type ProviderAuthenticationMethodsSupportedFieldsPaymentPayPeriod struct {
+ EndDate bool `json:"end_date"`
+ StartDate bool `json:"start_date"`
+ JSON providerAuthenticationMethodsSupportedFieldsPaymentPayPeriodJSON
+}
+
+// providerAuthenticationMethodsSupportedFieldsPaymentPayPeriodJSON contains the
+// JSON metadata for the struct
+// [ProviderAuthenticationMethodsSupportedFieldsPaymentPayPeriod]
+type providerAuthenticationMethodsSupportedFieldsPaymentPayPeriodJSON struct {
+ EndDate apijson.Field
+ StartDate apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *ProviderAuthenticationMethodsSupportedFieldsPaymentPayPeriod) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+// The type of authentication method.
+type ProviderAuthenticationMethodsType string
+
+const (
+ ProviderAuthenticationMethodsTypeAssisted ProviderAuthenticationMethodsType = "assisted"
+ ProviderAuthenticationMethodsTypeCredential ProviderAuthenticationMethodsType = "credential"
+ ProviderAuthenticationMethodsTypeAPIToken ProviderAuthenticationMethodsType = "api_token"
+ ProviderAuthenticationMethodsTypeOauth ProviderAuthenticationMethodsType = "oauth"
+)