← back to Cli Printing Press
feat(catalog): generate Plaid CLI from official OpenAPI spec
66bc4ea8e5103a7dac8ce6ba1edd840a64f3ffeb · 2026-03-25 00:02:29 -0700 · Matt Van Horn
51 resource groups, 7/7 quality gates pass. All new template features
verified: --select, error hints, generation comments, README with
quickstart. Auth via PLAID_CLIENT_ID + PLAID_SECRET env vars.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Files touched
A catalog/plaid.yamlA plaid-cli/.golangci.ymlA plaid-cli/.goreleaser.yamlA plaid-cli/MakefileA plaid-cli/README.mdA plaid-cli/cmd/plaid-cli/main.goA plaid-cli/go.modA plaid-cli/go.sumA plaid-cli/internal/cli/accounts.goA plaid-cli/internal/cli/application.goA plaid-cli/internal/cli/asset-report.goA plaid-cli/internal/cli/auth.goA plaid-cli/internal/cli/bank-transfer.goA plaid-cli/internal/cli/beacon.goA plaid-cli/internal/cli/beta.goA plaid-cli/internal/cli/business-verification.goA plaid-cli/internal/cli/cashflow-report.goA plaid-cli/internal/cli/categories.goA plaid-cli/internal/cli/consent.goA plaid-cli/internal/cli/consumer-report.goA plaid-cli/internal/cli/cra.goA plaid-cli/internal/cli/credit.goA plaid-cli/internal/cli/dashboard-user.goA plaid-cli/internal/cli/doctor.goA plaid-cli/internal/cli/employers.goA plaid-cli/internal/cli/employment.goA plaid-cli/internal/cli/fdx.goA plaid-cli/internal/cli/helpers.goA plaid-cli/internal/cli/identity-verification.goA plaid-cli/internal/cli/identity.goA plaid-cli/internal/cli/income.goA plaid-cli/internal/cli/institutions.goA plaid-cli/internal/cli/investments.goA plaid-cli/internal/cli/issues.goA plaid-cli/internal/cli/item.goA plaid-cli/internal/cli/liabilities.goA plaid-cli/internal/cli/link-delivery.goA plaid-cli/internal/cli/link.goA plaid-cli/internal/cli/network-insights.goA plaid-cli/internal/cli/network.goA plaid-cli/internal/cli/oauth.goA plaid-cli/internal/cli/partner.goA plaid-cli/internal/cli/payment-initiation.goA plaid-cli/internal/cli/payment-profile.goA plaid-cli/internal/cli/processor.goA plaid-cli/internal/cli/profile.goA plaid-cli/internal/cli/protect.goA plaid-cli/internal/cli/root.goA plaid-cli/internal/cli/sandbox.goA plaid-cli/internal/cli/session.goA plaid-cli/internal/cli/signal.goA plaid-cli/internal/cli/statements.goA plaid-cli/internal/cli/transactions.goA plaid-cli/internal/cli/transfer.goA plaid-cli/internal/cli/user-account.goA plaid-cli/internal/cli/user.goA plaid-cli/internal/cli/wallet.goA plaid-cli/internal/cli/watchlist-screening.goA plaid-cli/internal/cli/webhook-verification-key.goA plaid-cli/internal/client/client.goA plaid-cli/internal/config/config.goA plaid-cli/internal/types/types.go
Diff
commit 66bc4ea8e5103a7dac8ce6ba1edd840a64f3ffeb
Author: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Date: Wed Mar 25 00:02:29 2026 -0700
feat(catalog): generate Plaid CLI from official OpenAPI spec
51 resource groups, 7/7 quality gates pass. All new template features
verified: --select, error hints, generation comments, README with
quickstart. Auth via PLAID_CLIENT_ID + PLAID_SECRET env vars.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---
catalog/plaid.yaml | 15 +
plaid-cli/.golangci.yml | 12 +
plaid-cli/.goreleaser.yaml | 36 +
plaid-cli/Makefile | 16 +
plaid-cli/README.md | 675 +
plaid-cli/cmd/plaid-cli/main.go | 17 +
plaid-cli/go.mod | 15 +
plaid-cli/go.sum | 16 +
plaid-cli/internal/cli/accounts.go | 110 +
plaid-cli/internal/cli/application.go | 69 +
plaid-cli/internal/cli/asset-report.go | 477 +
plaid-cli/internal/cli/auth.go | 109 +
plaid-cli/internal/cli/bank-transfer.go | 608 +
plaid-cli/internal/cli/beacon.go | 647 +
plaid-cli/internal/cli/beta.go | 552 +
plaid-cli/internal/cli/business-verification.go | 109 +
plaid-cli/internal/cli/cashflow-report.go | 228 +
plaid-cli/internal/cli/categories.go | 51 +
plaid-cli/internal/cli/consent.go | 67 +
plaid-cli/internal/cli/consumer-report.go | 67 +
plaid-cli/internal/cli/cra.go | 918 ++
plaid-cli/internal/cli/credit.go | 1004 ++
plaid-cli/internal/cli/dashboard-user.go | 109 +
plaid-cli/internal/cli/doctor.go | 121 +
plaid-cli/internal/cli/employers.go | 67 +
plaid-cli/internal/cli/employment.go | 67 +
plaid-cli/internal/cli/fdx.go | 145 +
plaid-cli/internal/cli/helpers.go | 357 +
plaid-cli/internal/cli/identity-verification.go | 292 +
plaid-cli/internal/cli/identity.go | 196 +
plaid-cli/internal/cli/income.go | 255 +
plaid-cli/internal/cli/institutions.go | 159 +
plaid-cli/internal/cli/investments.go | 208 +
plaid-cli/internal/cli/issues.go | 168 +
plaid-cli/internal/cli/item.go | 542 +
plaid-cli/internal/cli/liabilities.go | 67 +
plaid-cli/internal/cli/link-delivery.go | 109 +
plaid-cli/internal/cli/link.go | 229 +
plaid-cli/internal/cli/network-insights.go | 61 +
plaid-cli/internal/cli/network.go | 66 +
plaid-cli/internal/cli/oauth.go | 198 +
plaid-cli/internal/cli/partner.go | 284 +
plaid-cli/internal/cli/payment-initiation.go | 608 +
plaid-cli/internal/cli/payment-profile.go | 146 +
plaid-cli/internal/cli/processor.go | 1214 ++
plaid-cli/internal/cli/profile.go | 61 +
plaid-cli/internal/cli/protect.go | 279 +
plaid-cli/internal/cli/root.go | 160 +
plaid-cli/internal/cli/sandbox.go | 1336 ++
plaid-cli/internal/cli/session.go | 87 +
plaid-cli/internal/cli/signal.go | 352 +
plaid-cli/internal/cli/statements.go | 171 +
plaid-cli/internal/cli/transactions.go | 261 +
plaid-cli/internal/cli/transfer.go | 2493 ++++
plaid-cli/internal/cli/user-account.go | 115 +
plaid-cli/internal/cli/user.go | 623 +
plaid-cli/internal/cli/wallet.go | 312 +
plaid-cli/internal/cli/watchlist-screening.go | 990 ++
plaid-cli/internal/cli/webhook-verification-key.go | 67 +
plaid-cli/internal/client/client.go | 300 +
plaid-cli/internal/config/config.go | 105 +
plaid-cli/internal/types/types.go | 12972 +++++++++++++++++++
62 files changed, 32170 insertions(+)
diff --git a/catalog/plaid.yaml b/catalog/plaid.yaml
new file mode 100644
index 00000000..ffccb912
--- /dev/null
+++ b/catalog/plaid.yaml
@@ -0,0 +1,15 @@
+name: plaid
+display_name: Plaid
+description: Banking API for account linking, transactions, identity verification, and income
+category: payments
+spec_url: https://raw.githubusercontent.com/plaid/plaid-openapi/master/2020-09-14.yml
+spec_format: yaml
+openapi_version: "3.0"
+tier: community
+verified_date: "2026-03-25"
+homepage: https://plaid.com/docs/api
+notes: "Fintech devs' go-to banking API. Abandoned community CLI (57 stars) proves demand."
+known_alternatives:
+ - name: plaid-cli
+ url: https://github.com/landakram/plaid-cli
+ language: go
diff --git a/plaid-cli/.golangci.yml b/plaid-cli/.golangci.yml
new file mode 100644
index 00000000..5397226d
--- /dev/null
+++ b/plaid-cli/.golangci.yml
@@ -0,0 +1,12 @@
+linters:
+ enable:
+ - errorlint
+ - govet
+ - ineffassign
+ - staticcheck
+ - unused
+
+formatters:
+ enable:
+ - gofmt
+ - goimports
diff --git a/plaid-cli/.goreleaser.yaml b/plaid-cli/.goreleaser.yaml
new file mode 100644
index 00000000..5e6f4283
--- /dev/null
+++ b/plaid-cli/.goreleaser.yaml
@@ -0,0 +1,36 @@
+version: 2
+project_name: plaid-cli
+changelog:
+ disable: true
+builds:
+ - id: plaid-cli
+ main: ./cmd/plaid-cli
+ binary: plaid-cli
+ env:
+ - CGO_ENABLED=0
+ ldflags:
+ - -s -w -X github.com/USER/plaid-cli/internal/cli.version={{ .Version }}
+ targets:
+ - darwin_amd64
+ - darwin_arm64
+ - linux_amd64
+ - linux_arm64
+ - windows_amd64
+ - windows_arm64
+archives:
+ - formats: [tar.gz]
+ name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
+ format_overrides:
+ - goos: windows
+ formats: [zip]
+checksum:
+ name_template: checksums.txt
+brews:
+ - name: plaid-cli
+ repository:
+ owner: USER
+ name: homebrew-tap
+ homepage: "https://github.com/USER/plaid-cli"
+ description: "The Plaid REST API. Please see https://plaid.com/docs/api for more details."
+ install: |
+ bin.install "plaid-cli"
diff --git a/plaid-cli/Makefile b/plaid-cli/Makefile
new file mode 100644
index 00000000..4729148d
--- /dev/null
+++ b/plaid-cli/Makefile
@@ -0,0 +1,16 @@
+.PHONY: build test lint install clean
+
+build:
+ go build -o bin/plaid-cli ./cmd/plaid-cli
+
+test:
+ go test ./...
+
+lint:
+ golangci-lint run
+
+install:
+ go install ./cmd/plaid-cli
+
+clean:
+ rm -rf bin/
diff --git a/plaid-cli/README.md b/plaid-cli/README.md
new file mode 100644
index 00000000..ea0c95c3
--- /dev/null
+++ b/plaid-cli/README.md
@@ -0,0 +1,675 @@
+# plaid-cli
+
+The Plaid REST API. Please see https://plaid.com/docs/api for more details.
+
+## Install
+
+### Homebrew
+
+```
+brew install USER/tap/plaid-cli
+```
+
+### Go
+
+```
+go install github.com/USER/plaid-cli/cmd/plaid-cli@latest
+```
+
+### Binary
+
+Download from [Releases](https://github.com/USER/plaid-cli/releases).
+
+## Quick Start
+
+```bash
+# 1. Set your API credentials
+export PLAID_CLIENT_ID="your-key-here"
+
+# 2. Verify everything works
+plaid-cli doctor
+
+# 3. Start using it
+plaid-cli accounts --help
+```
+
+## Usage
+
+<!-- HELP_OUTPUT -->
+
+## Commands
+
+### accounts
+
+Manage accounts
+
+- **`plaid-cli accounts balance-get`** - Retrieve real-time balance data
+- **`plaid-cli accounts get`** - Retrieve accounts
+
+### application
+
+Manage application
+
+- **`plaid-cli application get`** - Retrieve information about a Plaid application
+
+### asset-report
+
+Manage asset report
+
+- **`plaid-cli asset-report audit-copy-create`** - Create Asset Report Audit Copy
+- **`plaid-cli asset-report audit-copy-get`** - Retrieve an Asset Report Audit Copy
+- **`plaid-cli asset-report audit-copy-pdf-get`** - Retrieve a PDF Asset Report Audit Copy
+- **`plaid-cli asset-report audit-copy-remove`** - Remove Asset Report Audit Copy
+- **`plaid-cli asset-report create`** - Create an Asset Report
+- **`plaid-cli asset-report filter`** - Filter Asset Report
+- **`plaid-cli asset-report get`** - Retrieve an Asset Report
+- **`plaid-cli asset-report pdf-get`** - Retrieve a PDF Asset Report
+- **`plaid-cli asset-report refresh`** - Refresh an Asset Report
+- **`plaid-cli asset-report remove`** - Delete an Asset Report
+
+### auth
+
+Manage auth
+
+- **`plaid-cli auth get`** - Retrieve auth data
+- **`plaid-cli auth verify`** - Verify auth data
+
+### bank-transfer
+
+Manage bank transfer
+
+- **`plaid-cli bank-transfer balance-get`** - Get balance of your Bank Transfer account
+- **`plaid-cli bank-transfer cancel`** - Cancel a bank transfer
+- **`plaid-cli bank-transfer create`** - Create a bank transfer
+- **`plaid-cli bank-transfer event-list`** - List bank transfer events
+- **`plaid-cli bank-transfer event-sync`** - Sync bank transfer events
+- **`plaid-cli bank-transfer get`** - Retrieve a bank transfer
+- **`plaid-cli bank-transfer list`** - List bank transfers
+- **`plaid-cli bank-transfer migrate-account`** - Migrate account into Bank Transfers
+- **`plaid-cli bank-transfer sweep-get`** - Retrieve a sweep
+- **`plaid-cli bank-transfer sweep-list`** - List sweeps
+
+### beacon
+
+Manage beacon
+
+- **`plaid-cli beacon account-risk-evaluate`** - Evaluate risk of a bank account
+- **`plaid-cli beacon duplicate-get`** - Get a Beacon Duplicate
+- **`plaid-cli beacon report-create`** - Create a Beacon Report
+- **`plaid-cli beacon report-get`** - Get a Beacon Report
+- **`plaid-cli beacon report-list`** - List Beacon Reports for a Beacon User
+- **`plaid-cli beacon report-syndication-get`** - Get a Beacon Report Syndication
+- **`plaid-cli beacon report-syndication-list`** - List Beacon Report Syndications for a Beacon User
+- **`plaid-cli beacon user-account-insights-get`** - Get Account Insights for a Beacon User
+- **`plaid-cli beacon user-create`** - Create a Beacon User
+- **`plaid-cli beacon user-get`** - Get a Beacon User
+- **`plaid-cli beacon user-history-list`** - List a Beacon User's history
+- **`plaid-cli beacon user-review`** - Review a Beacon User
+- **`plaid-cli beacon user-update`** - Update the identity data of a Beacon User
+
+### beta
+
+Manage beta
+
+- **`plaid-cli beta credit-bank-employment-get`** - Retrieve information from the bank accounts used for employment verification
+- **`plaid-cli beta ewa-report-v1-get`** - Get EWA Score Report
+- **`plaid-cli beta partner-customer-v1-create`** - Creates a new end customer for a Plaid reseller.
+- **`plaid-cli beta partner-customer-v1-enable`** - Enables a Plaid reseller's end customer in the Production environment.
+- **`plaid-cli beta partner-customer-v1-get`** - Retrieves the details of a Plaid reseller's end customer.
+- **`plaid-cli beta partner-customer-v1-update`** - Updates an existing end customer.
+- **`plaid-cli beta transactions-enhance`** - enhance locally-held transaction data
+- **`plaid-cli beta transactions-rules-create`** - Create transaction category rule
+- **`plaid-cli beta transactions-rules-list`** - Return a list of rules created for the Item associated with the access token.
+- **`plaid-cli beta transactions-rules-remove`** - Remove transaction rule
+- **`plaid-cli beta transactions-user-insights-get`** - Obtain user insights based on transactions sent through /transactions/enrich
+
+### business-verification
+
+Manage business verification
+
+- **`plaid-cli business-verification create`** - Create a business verification
+- **`plaid-cli business-verification get`** - Get a business verification
+
+### cashflow-report
+
+Manage cashflow report
+
+- **`plaid-cli cashflow-report get`** - Gets transaction data in `cashflow_report`
+- **`plaid-cli cashflow-report insights-get`** - Gets insights data in Cashflow Report
+- **`plaid-cli cashflow-report refresh`** - Refresh transaction data in `cashflow_report`
+- **`plaid-cli cashflow-report transactions-get`** - Gets transaction data in cashflow_report
+
+### categories
+
+Manage categories
+
+- **`plaid-cli categories get`** - (Deprecated) Get legacy categories
+
+### consent
+
+Manage consent
+
+- **`plaid-cli consent events-get`** - List a historical log of item consent events
+
+### consumer-report
+
+Manage consumer report
+
+- **`plaid-cli consumer-report pdf-get`** - Retrieve a PDF Reports
+
+### cra
+
+Manage cra
+
+- **`plaid-cli cra check-report-base-report-get`** - Retrieve a Base Report
+- **`plaid-cli cra check-report-cashflow-insights-get`** - Retrieve cash flow insights from your user's banking data
+- **`plaid-cli cra check-report-create`** - Refresh or create a Consumer Report
+- **`plaid-cli cra check-report-income-insights-get`** - Retrieve cash flow information from your user's banks
+- **`plaid-cli cra check-report-lend-score-get`** - Retrieve the LendScore from your user's banking data
+- **`plaid-cli cra check-report-network-insights-get`** - Retrieve network attributes for the user
+- **`plaid-cli cra check-report-partner-insights-get`** - Retrieve cash flow insights from partners
+- **`plaid-cli cra check-report-pdf-get`** - Retrieve Consumer Reports as a PDF
+- **`plaid-cli cra check-report-verification-get`** - Retrieve various home lending reports for a user.
+- **`plaid-cli cra check-report-verification-pdf-get`** - Retrieve Consumer Reports as a Verification PDF
+- **`plaid-cli cra loans-applications-register`** - Register loan applications and decisions.
+- **`plaid-cli cra loans-register`** - Register a list of loans to their applicants.
+- **`plaid-cli cra loans-unregister`** - Unregister a list of loans.
+- **`plaid-cli cra loans-update`** - Updates loan data.
+- **`plaid-cli cra monitoring-insights-get`** - Retrieve a Monitoring Insights Report
+- **`plaid-cli cra monitoring-insights-subscribe`** - Subscribe to Monitoring Insights
+- **`plaid-cli cra monitoring-insights-unsubscribe`** - Unsubscribe from Monitoring Insights
+- **`plaid-cli cra partner-insights-get`** - Retrieve cash flow insights from the bank accounts used for income verification
+
+### credit
+
+Manage credit
+
+- **`plaid-cli credit asset-report-freddie-mac-get`** - Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.
+- **`plaid-cli credit audit-copy-token-create`** - Create Asset or Income Report Audit Copy Token
+- **`plaid-cli credit audit-copy-token-update`** - Update an Audit Copy Token
+- **`plaid-cli credit bank-income-get`** - Retrieve information from the bank accounts used for income verification
+- **`plaid-cli credit bank-income-pdf-get`** - Retrieve information from the bank accounts used for income verification in PDF format
+- **`plaid-cli credit bank-income-refresh`** - Refresh a user's bank income information
+- **`plaid-cli credit bank-income-webhook-update`** - Subscribe and unsubscribe to proactive notifications for a user's income profile
+- **`plaid-cli credit bank-statements-uploads-get`** - Retrieve data for a user's uploaded bank statements
+- **`plaid-cli credit employment-get`** - Retrieve a summary of an individual's employment information
+- **`plaid-cli credit freddie-mac-reports-get`** - Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of Employment (VOE) report if this one is available. Only Freddie Mac can use this endpoint.
+- **`plaid-cli credit payroll-income-get`** - Retrieve a user's payroll information
+- **`plaid-cli credit payroll-income-parsing-config-update`** - Update the parsing configuration for a document income verification
+- **`plaid-cli credit payroll-income-precheck`** - Check income verification eligibility and optimize conversion
+- **`plaid-cli credit payroll-income-refresh`** - Refresh a digital payroll income verification
+- **`plaid-cli credit payroll-income-risk-signals-get`** - Retrieve fraud insights for a user's manually uploaded document(s).
+- **`plaid-cli credit relay-create`** - Create a relay token to share an Asset Report with a partner client
+- **`plaid-cli credit relay-get`** - Retrieve the reports associated with a relay token that was shared with you
+- **`plaid-cli credit relay-pdf-get`** - Retrieve the pdf reports associated with a relay token that was shared with you (beta)
+- **`plaid-cli credit relay-refresh`** - Refresh a report of a relay token
+- **`plaid-cli credit relay-remove`** - Remove relay token
+- **`plaid-cli credit report-audit-copy-remove`** - Remove an Audit Copy token
+- **`plaid-cli credit sessions-get`** - Retrieve Link sessions for your user
+
+### dashboard-user
+
+Manage dashboard user
+
+- **`plaid-cli dashboard-user get`** - Retrieve a dashboard user
+- **`plaid-cli dashboard-user list`** - List dashboard users
+
+### employers
+
+Manage employers
+
+- **`plaid-cli employers search`** - Search employer database
+
+### employment
+
+Manage employment
+
+- **`plaid-cli employment verification-get`** - (Deprecated) Retrieve a summary of an individual's employment information
+
+### fdx
+
+Manage fdx
+
+- **`plaid-cli fdx get-recipient`** - Get Recipient
+- **`plaid-cli fdx get-recipients`** - Get Recipients
+- **`plaid-cli fdx notifications`** - Webhook receiver for fdx notifications
+
+### identity
+
+Manage identity
+
+- **`plaid-cli identity documents-uploads-get`** - Returns uploaded document identity
+- **`plaid-cli identity get`** - Retrieve identity data
+- **`plaid-cli identity match`** - Retrieve identity match score
+- **`plaid-cli identity refresh`** - Refresh identity data
+
+### identity-verification
+
+Manage identity verification
+
+- **`plaid-cli identity-verification autofill-create`** - Create autofill for an Identity Verification
+- **`plaid-cli identity-verification create`** - Create a new Identity Verification
+- **`plaid-cli identity-verification get`** - Retrieve Identity Verification
+- **`plaid-cli identity-verification list`** - List Identity Verifications
+- **`plaid-cli identity-verification retry`** - Retry an Identity Verification
+
+### income
+
+Manage income
+
+- **`plaid-cli income verification-create`** - (Deprecated) Create an income verification instance
+- **`plaid-cli income verification-documents-download`** - (Deprecated) Download the original documents used for income verification
+- **`plaid-cli income verification-paystubs-get`** - (Deprecated) Retrieve information from the paystubs used for income verification
+- **`plaid-cli income verification-precheck`** - (Deprecated) Check digital income verification eligibility and optimize conversion
+- **`plaid-cli income verification-taxforms-get`** - (Deprecated) Retrieve information from the tax documents used for income verification
+
+### institutions
+
+Manage institutions
+
+- **`plaid-cli institutions get`** - Get details of all supported institutions
+- **`plaid-cli institutions get-by-id`** - Get details of an institution
+- **`plaid-cli institutions search`** - Search institutions
+
+### investments
+
+Manage investments
+
+- **`plaid-cli investments auth-get`** - Get data needed to authorize an investments transfer
+- **`plaid-cli investments holdings-get`** - Get Investment holdings
+- **`plaid-cli investments refresh`** - Refresh investment data
+- **`plaid-cli investments transactions-get`** - Get investment transactions
+
+### issues
+
+Manage issues
+
+- **`plaid-cli issues get`** - Get an Issue
+- **`plaid-cli issues search`** - Search for an Issue
+- **`plaid-cli issues subscribe`** - Subscribe to an Issue
+
+### item
+
+Manage item
+
+- **`plaid-cli item access-token-invalidate`** - Invalidate access_token
+- **`plaid-cli item activity-list`** - List a historical log of user consent events
+- **`plaid-cli item application-list`** - List a user’s connected applications
+- **`plaid-cli item application-scopes-update`** - Update the scopes of access for a particular application
+- **`plaid-cli item application-unlink`** - Unlink a user’s connected application
+- **`plaid-cli item create-public-token`** - Create public token
+- **`plaid-cli item get`** - Retrieve an Item
+- **`plaid-cli item import`** - Import Item
+- **`plaid-cli item public-token-exchange`** - Exchange public token for an access token
+- **`plaid-cli item remove`** - Remove an Item
+- **`plaid-cli item webhook-update`** - Update Webhook URL
+
+### liabilities
+
+Manage liabilities
+
+- **`plaid-cli liabilities get`** - Retrieve Liabilities data
+
+### link
+
+Manage link
+
+- **`plaid-cli link oauth-correlation-id-exchange`** - Exchange the Link Correlation Id for a Link Token
+- **`plaid-cli link token-create`** - Create Link Token
+- **`plaid-cli link token-get`** - Get Link Token
+
+### link-delivery
+
+Manage link delivery
+
+- **`plaid-cli link-delivery create`** - Create Hosted Link session
+- **`plaid-cli link-delivery get`** - Get Hosted Link session
+
+### network
+
+Manage network
+
+- **`plaid-cli network status-get`** - Check a user's Plaid Network status
+
+### network-insights
+
+Manage network insights
+
+- **`plaid-cli network-insights report-get`** - Retrieve network insights for the provided `access_tokens`
+
+### oauth
+
+Manage oauth
+
+- **`plaid-cli oauth introspect`** - Get metadata about an OAuth token
+- **`plaid-cli oauth revoke`** - Revoke an OAuth token
+- **`plaid-cli oauth token`** - Create or refresh an OAuth access token
+
+### partner
+
+Manage partner
+
+- **`plaid-cli partner customer-create`** - Creates a new end customer for a Plaid reseller.
+- **`plaid-cli partner customer-enable`** - Enables a Plaid reseller's end customer in the Production environment.
+- **`plaid-cli partner customer-get`** - Returns a Plaid reseller's end customer.
+- **`plaid-cli partner customer-oauth-institutions-get`** - Returns OAuth-institution registration information for a given end customer.
+- **`plaid-cli partner customer-remove`** - Removes a Plaid reseller's end customer.
+
+### payment-initiation
+
+Manage payment initiation
+
+- **`plaid-cli payment-initiation consent-create`** - Create payment consent
+- **`plaid-cli payment-initiation consent-get`** - Get payment consent
+- **`plaid-cli payment-initiation consent-payment-execute`** - Execute a single payment using consent
+- **`plaid-cli payment-initiation consent-revoke`** - Revoke payment consent
+- **`plaid-cli payment-initiation create-payment-token`** - Create payment token
+- **`plaid-cli payment-initiation payment-create`** - Create a payment
+- **`plaid-cli payment-initiation payment-get`** - Get payment details
+- **`plaid-cli payment-initiation payment-list`** - List payments
+- **`plaid-cli payment-initiation payment-reverse`** - Reverse an existing payment
+- **`plaid-cli payment-initiation recipient-create`** - Create payment recipient
+- **`plaid-cli payment-initiation recipient-get`** - Get payment recipient
+- **`plaid-cli payment-initiation recipient-list`** - List payment recipients
+
+### payment-profile
+
+Manage payment profile
+
+- **`plaid-cli payment-profile create`** - Create payment profile
+- **`plaid-cli payment-profile get`** - Get payment profile
+- **`plaid-cli payment-profile remove`** - Remove payment profile
+
+### processor
+
+Manage processor
+
+- **`plaid-cli processor account-get`** - Retrieve the account associated with a processor token
+- **`plaid-cli processor apex-token-create`** - Create Apex bank account token
+- **`plaid-cli processor auth-get`** - Retrieve Auth data
+- **`plaid-cli processor balance-get`** - Retrieve Balance data
+- **`plaid-cli processor bank-transfer-create`** - Create a bank transfer as a processor
+- **`plaid-cli processor identity-get`** - Retrieve Identity data
+- **`plaid-cli processor identity-match`** - Retrieve identity match score
+- **`plaid-cli processor investments-holdings-get`** - Retrieve Investment Holdings
+- **`plaid-cli processor investments-transactions-get`** - Get investment transactions data
+- **`plaid-cli processor liabilities-get`** - Retrieve Liabilities data
+- **`plaid-cli processor signal-decision-report`** - Report whether you initiated an ACH transaction
+- **`plaid-cli processor signal-evaluate`** - Evaluate a planned ACH transaction
+- **`plaid-cli processor signal-prepare`** - Opt-in a processor token to Signal
+- **`plaid-cli processor signal-return-report`** - Report a return for an ACH transaction
+- **`plaid-cli processor stripe-bank-account-token-create`** - Create Stripe bank account token
+- **`plaid-cli processor token-create`** - Create processor token
+- **`plaid-cli processor token-permissions-get`** - Get a processor token's product permissions
+- **`plaid-cli processor token-permissions-set`** - Control a processor's access to products
+- **`plaid-cli processor token-webhook-update`** - Update a processor token's webhook URL
+- **`plaid-cli processor transactions-get`** - Get transaction data
+- **`plaid-cli processor transactions-recurring-get`** - Fetch recurring transaction streams
+- **`plaid-cli processor transactions-refresh`** - Refresh transaction data
+- **`plaid-cli processor transactions-sync`** - Get incremental transaction updates on a processor token
+
+### profile
+
+Manage profile
+
+- **`plaid-cli profile network-status-get`** - Check a user's Plaid Network status
+
+### protect
+
+Manage protect
+
+- **`plaid-cli protect compute`** - Compute Protect Trust Index Score
+- **`plaid-cli protect event-get`** - Get information about a user event
+- **`plaid-cli protect event-send`** - Send a new event to enrich user data
+- **`plaid-cli protect report-create`** - Create a Protect report
+- **`plaid-cli protect user-insights-get`** - Get Protect user insights
+
+### sandbox
+
+Manage sandbox
+
+- **`plaid-cli sandbox bank-income-fire-webhook`** - Manually fire a bank income webhook in sandbox
+- **`plaid-cli sandbox bank-transfer-fire-webhook`** - Manually fire a Bank Transfer webhook
+- **`plaid-cli sandbox bank-transfer-simulate`** - Simulate a bank transfer event in Sandbox
+- **`plaid-cli sandbox cra-cashflow-updates-update`** - Trigger an update for Cash Flow Updates
+- **`plaid-cli sandbox income-fire-webhook`** - Manually fire an Income webhook
+- **`plaid-cli sandbox item-fire-webhook`** - Fire a test webhook
+- **`plaid-cli sandbox item-reset-login`** - Force a Sandbox Item into an error state
+- **`plaid-cli sandbox item-set-verification-status`** - Set verification status for Sandbox account
+- **`plaid-cli sandbox oauth-select-accounts`** - Save the selected accounts when connecting to the Platypus Oauth institution
+- **`plaid-cli sandbox payment-profile-reset-login`** - Reset the login of a Payment Profile
+- **`plaid-cli sandbox payment-simulate`** - Simulate a payment event in Sandbox
+- **`plaid-cli sandbox processor-token-create`** - Create a test Item and processor token
+- **`plaid-cli sandbox public-token-create`** - Create a test Item
+- **`plaid-cli sandbox transactions-create`** - Create sandbox transactions
+- **`plaid-cli sandbox transfer-fire-webhook`** - Manually fire a Transfer webhook
+- **`plaid-cli sandbox transfer-ledger-deposit-simulate`** - Simulate a ledger deposit event in Sandbox
+- **`plaid-cli sandbox transfer-ledger-simulate-available`** - Simulate converting pending balance to available balance
+- **`plaid-cli sandbox transfer-ledger-withdraw-simulate`** - Simulate a ledger withdraw event in Sandbox
+- **`plaid-cli sandbox transfer-refund-simulate`** - Simulate a refund event in Sandbox
+- **`plaid-cli sandbox transfer-repayment-simulate`** - Trigger the creation of a repayment
+- **`plaid-cli sandbox transfer-simulate`** - Simulate a transfer event in Sandbox
+- **`plaid-cli sandbox transfer-sweep-simulate`** - Simulate creating a sweep
+- **`plaid-cli sandbox transfer-test-clock-advance`** - Advance a test clock
+- **`plaid-cli sandbox transfer-test-clock-create`** - Create a test clock
+- **`plaid-cli sandbox transfer-test-clock-get`** - Get a test clock
+- **`plaid-cli sandbox transfer-test-clock-list`** - List test clocks
+- **`plaid-cli sandbox user-reset-login`** - Force item(s) for a Sandbox User into an error state
+
+### session
+
+Manage session
+
+- **`plaid-cli session token-create`** - Create a Link token for Layer
+
+### signal
+
+Manage signal
+
+- **`plaid-cli signal decision-report`** - Report whether you initiated an ACH transaction
+- **`plaid-cli signal evaluate`** - Evaluate a planned ACH transaction
+- **`plaid-cli signal prepare`** - Opt-in an Item to Signal Transaction Scores
+- **`plaid-cli signal return-report`** - Report a return for an ACH transaction
+- **`plaid-cli signal schedule`** - Schedule a planned ACH transaction
+
+### statements
+
+Manage statements
+
+- **`plaid-cli statements download`** - Retrieve a single statement.
+- **`plaid-cli statements list`** - Retrieve a list of all statements associated with an item.
+- **`plaid-cli statements refresh`** - Refresh statements data.
+
+### transactions
+
+Manage transactions
+
+- **`plaid-cli transactions enrich`** - Enrich locally-held transaction data
+- **`plaid-cli transactions get`** - Get transaction data
+- **`plaid-cli transactions recurring-get`** - Fetch recurring transaction streams
+- **`plaid-cli transactions refresh`** - Refresh transaction data
+- **`plaid-cli transactions sync`** - Get incremental transaction updates on an Item
+
+### transfer
+
+Manage transfer
+
+- **`plaid-cli transfer authorization-cancel`** - Cancel a transfer authorization
+- **`plaid-cli transfer authorization-create`** - Create a transfer authorization
+- **`plaid-cli transfer balance-get`** - (Deprecated) Retrieve a balance held with Plaid
+- **`plaid-cli transfer cancel`** - Cancel a transfer
+- **`plaid-cli transfer capabilities-get`** - Get RTP eligibility information of a transfer
+- **`plaid-cli transfer configuration-get`** - Get transfer product configuration
+- **`plaid-cli transfer create`** - Create a transfer
+- **`plaid-cli transfer diligence-document-upload`** - Upload transfer diligence document on behalf of the originator
+- **`plaid-cli transfer diligence-submit`** - Submit transfer diligence on behalf of the originator
+- **`plaid-cli transfer event-list`** - List transfer events
+- **`plaid-cli transfer event-sync`** - Sync transfer events
+- **`plaid-cli transfer get`** - Retrieve a transfer
+- **`plaid-cli transfer intent-create`** - Create a transfer intent object to invoke the Transfer UI
+- **`plaid-cli transfer intent-get`** - Retrieve more information about a transfer intent
+- **`plaid-cli transfer ledger-deposit`** - Deposit funds into a Plaid Ledger balance
+- **`plaid-cli transfer ledger-distribute`** - Move available balance between ledgers
+- **`plaid-cli transfer ledger-event-list`** - List transfer ledger events
+- **`plaid-cli transfer ledger-get`** - Retrieve Plaid Ledger balance
+- **`plaid-cli transfer ledger-withdraw`** - Withdraw funds from a Plaid Ledger balance
+- **`plaid-cli transfer list`** - List transfers
+- **`plaid-cli transfer metrics-get`** - Get transfer product usage metrics
+- **`plaid-cli transfer migrate-account`** - Migrate account into Transfers
+- **`plaid-cli transfer originator-create`** - Create a new originator
+- **`plaid-cli transfer originator-funding-account-create`** - Create a new funding account for an originator
+- **`plaid-cli transfer originator-funding-account-update`** - Update the funding account associated with the originator
+- **`plaid-cli transfer originator-get`** - Get status of an originator's onboarding
+- **`plaid-cli transfer originator-list`** - Get status of all originators' onboarding
+- **`plaid-cli transfer platform-originator-create`** - Create an originator for Transfer for Platforms customers
+- **`plaid-cli transfer platform-person-create`** - Create a person associated with an originator
+- **`plaid-cli transfer platform-requirement-submit`** - Submit additional onboarding information on behalf of an originator
+- **`plaid-cli transfer questionnaire-create`** - Generate a Plaid-hosted onboarding UI URL.
+- **`plaid-cli transfer recurring-cancel`** - Cancel a recurring transfer.
+- **`plaid-cli transfer recurring-create`** - Create a recurring transfer
+- **`plaid-cli transfer recurring-get`** - Retrieve a recurring transfer
+- **`plaid-cli transfer recurring-list`** - List recurring transfers
+- **`plaid-cli transfer refund-cancel`** - Cancel a refund
+- **`plaid-cli transfer refund-create`** - Create a refund
+- **`plaid-cli transfer refund-get`** - Retrieve a refund
+- **`plaid-cli transfer repayment-list`** - Lists historical repayments
+- **`plaid-cli transfer repayment-return-list`** - List the returns included in a repayment
+- **`plaid-cli transfer sweep-get`** - Retrieve a sweep
+- **`plaid-cli transfer sweep-list`** - List sweeps
+
+### user
+
+Manage user
+
+- **`plaid-cli user create`** - Create user
+- **`plaid-cli user financial-data-refresh`** - Refresh user items for Financial-Insights bundle
+- **`plaid-cli user get`** - Retrieve user identity and information
+- **`plaid-cli user identity-remove`** - Remove user identity data
+- **`plaid-cli user items-associate`** - Associate Items to a User
+- **`plaid-cli user items-get`** - Get Items associated with a User
+- **`plaid-cli user items-remove`** - Remove Items from a User
+- **`plaid-cli user products-terminate`** - Terminate user-based products
+- **`plaid-cli user remove`** - Remove user
+- **`plaid-cli user third-party-token-create`** - Create a third-party user token
+- **`plaid-cli user third-party-token-remove`** - Remove a third-party user token
+- **`plaid-cli user transactions-refresh`** - Refresh user items for Transactions bundle
+- **`plaid-cli user update`** - Update user information
+
+### user-account
+
+Manage user account
+
+- **`plaid-cli user-account session-event-send`** - Send User Account Session Event
+- **`plaid-cli user-account session-get`** - Retrieve User Account
+
+### wallet
+
+Manage wallet
+
+- **`plaid-cli wallet create`** - Create an e-wallet
+- **`plaid-cli wallet get`** - Fetch an e-wallet
+- **`plaid-cli wallet list`** - Fetch a list of e-wallets
+- **`plaid-cli wallet transaction-execute`** - Execute a transaction using an e-wallet
+- **`plaid-cli wallet transaction-get`** - Fetch an e-wallet transaction
+- **`plaid-cli wallet transaction-list`** - List e-wallet transactions
+
+### watchlist-screening
+
+Manage watchlist screening
+
+- **`plaid-cli watchlist-screening entity-create`** - Create a watchlist screening for an entity
+- **`plaid-cli watchlist-screening entity-get`** - Get an entity screening
+- **`plaid-cli watchlist-screening entity-history-list`** - List history for entity watchlist screenings
+- **`plaid-cli watchlist-screening entity-hit-list`** - List hits for entity watchlist screenings
+- **`plaid-cli watchlist-screening entity-list`** - List entity watchlist screenings
+- **`plaid-cli watchlist-screening entity-program-get`** - Get entity watchlist screening program
+- **`plaid-cli watchlist-screening entity-program-list`** - List entity watchlist screening programs
+- **`plaid-cli watchlist-screening entity-review-create`** - Create a review for an entity watchlist screening
+- **`plaid-cli watchlist-screening entity-review-list`** - List reviews for entity watchlist screenings
+- **`plaid-cli watchlist-screening entity-update`** - Update an entity screening
+- **`plaid-cli watchlist-screening individual-create`** - Create a watchlist screening for a person
+- **`plaid-cli watchlist-screening individual-get`** - Retrieve an individual watchlist screening
+- **`plaid-cli watchlist-screening individual-history-list`** - List history for individual watchlist screenings
+- **`plaid-cli watchlist-screening individual-hit-list`** - List hits for individual watchlist screening
+- **`plaid-cli watchlist-screening individual-list`** - List Individual Watchlist Screenings
+- **`plaid-cli watchlist-screening individual-program-get`** - Get individual watchlist screening program
+- **`plaid-cli watchlist-screening individual-program-list`** - List individual watchlist screening programs
+- **`plaid-cli watchlist-screening individual-review-create`** - Create a review for an individual watchlist screening
+- **`plaid-cli watchlist-screening individual-review-list`** - List reviews for individual watchlist screenings
+- **`plaid-cli watchlist-screening individual-update`** - Update individual watchlist screening
+
+### webhook-verification-key
+
+Manage webhook verification key
+
+- **`plaid-cli webhook-verification-key get`** - Get webhook verification key
+
+
+## Output Formats
+
+```bash
+# Human-readable table (default)
+plaid-cli accounts list
+
+# JSON for scripting and agents
+plaid-cli accounts list --json
+
+# Filter specific fields
+plaid-cli accounts list --json --select id,name,status
+
+# Plain tab-separated for piping
+plaid-cli accounts list --plain
+
+# Dry run (show request without sending)
+plaid-cli accounts list --dry-run
+```
+
+## Agent Usage
+
+This CLI is designed for AI agent consumption:
+
+```bash
+# All commands support --json for structured output
+plaid-cli accounts list --json --select id,name
+
+# --dry-run shows the exact API request without sending
+plaid-cli accounts list --dry-run
+
+# Non-interactive - never prompts, never pages
+# Errors go to stderr with typed exit codes
+```
+
+Exit codes: `0` success, `2` usage error, `3` not found, `4` auth error, `5` API error, `7` rate limited, `10` config error.
+
+## Health Check
+
+```bash
+plaid-cli doctor
+```
+
+<!-- DOCTOR_OUTPUT -->
+
+## Configuration
+
+Config file: `~/.config/plaid-cli/config.toml`
+
+Environment variables:
+- `PLAID_CLIENT_ID`
+
+## Troubleshooting
+
+**Authentication errors (exit code 4)**
+- Run `plaid-cli doctor` to check credentials
+- Verify the environment variable is set: `echo $PLAID_CLIENT_ID`
+
+**Not found errors (exit code 3)**
+- Check the resource ID is correct
+- Run the `list` command to see available items
+
+**Rate limit errors (exit code 7)**
+- The CLI auto-retries with exponential backoff
+- If persistent, wait a few minutes and try again
+
+---
+
+Generated by [CLI Printing Press](https://github.com/mvanhorn/cli-printing-press)
diff --git a/plaid-cli/cmd/plaid-cli/main.go b/plaid-cli/cmd/plaid-cli/main.go
new file mode 100644
index 00000000..e12964f6
--- /dev/null
+++ b/plaid-cli/cmd/plaid-cli/main.go
@@ -0,0 +1,17 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/USER/plaid-cli/internal/cli"
+)
+
+func main() {
+ if err := cli.Execute(); err != nil {
+ fmt.Fprintln(os.Stderr, err.Error())
+ os.Exit(cli.ExitCode(err))
+ }
+}
diff --git a/plaid-cli/go.mod b/plaid-cli/go.mod
new file mode 100644
index 00000000..f6b23334
--- /dev/null
+++ b/plaid-cli/go.mod
@@ -0,0 +1,15 @@
+module github.com/USER/plaid-cli
+
+go 1.23
+
+require (
+ github.com/mattn/go-isatty v0.0.20
+ github.com/pelletier/go-toml/v2 v2.2.4
+ github.com/spf13/cobra v1.9.1
+)
+
+require (
+ github.com/inconshreveable/mousetrap v1.1.0 // indirect
+ github.com/spf13/pflag v1.0.6 // indirect
+ golang.org/x/sys v0.6.0 // indirect
+)
diff --git a/plaid-cli/go.sum b/plaid-cli/go.sum
new file mode 100644
index 00000000..d0bfb4e0
--- /dev/null
+++ b/plaid-cli/go.sum
@@ -0,0 +1,16 @@
+github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
+github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
+github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
+github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
+github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
+github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/plaid-cli/internal/cli/accounts.go b/plaid-cli/internal/cli/accounts.go
new file mode 100644
index 00000000..dcb8144a
--- /dev/null
+++ b/plaid-cli/internal/cli/accounts.go
@@ -0,0 +1,110 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newAccountsCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "accounts",
+ Short: "Manage accounts",
+ }
+
+ cmd.AddCommand(newAccountsBalanceGetCmd(flags))
+ cmd.AddCommand(newAccountsGetCmd(flags))
+ return cmd
+}
+
+func newAccountsBalanceGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "balance-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve real-time balance data",
+ Example: " plaid-cli accounts balance-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/accounts/balance/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAccountsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve accounts",
+ Example: " plaid-cli accounts get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/accounts/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/application.go b/plaid-cli/internal/cli/application.go
new file mode 100644
index 00000000..f303bcf1
--- /dev/null
+++ b/plaid-cli/internal/cli/application.go
@@ -0,0 +1,69 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newApplicationCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "application",
+ Short: "Manage application",
+ }
+
+ cmd.AddCommand(newApplicationGetCmd(flags))
+ return cmd
+}
+
+func newApplicationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyApplicationId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Retrieve information about a Plaid application",
+ Example: " plaid-cli application get --application-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/application/get"
+ body := map[string]any{}
+ if bodyApplicationId != "" {
+ body["application_id"] = bodyApplicationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyApplicationId, "application-id", "", "This field will map to the application ID that is returned from /item/application/list, or provided to the...")
+ _ = cmd.MarkFlagRequired("application-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ _ = cmd.MarkFlagRequired("client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ _ = cmd.MarkFlagRequired("secret")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/asset-report.go b/plaid-cli/internal/cli/asset-report.go
new file mode 100644
index 00000000..f95a0e7c
--- /dev/null
+++ b/plaid-cli/internal/cli/asset-report.go
@@ -0,0 +1,477 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newAssetReportCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "asset-report",
+ Short: "Manage asset report",
+ }
+
+ cmd.AddCommand(newAssetReportAuditCopyCreateCmd(flags))
+ cmd.AddCommand(newAssetReportAuditCopyGetCmd(flags))
+ cmd.AddCommand(newAssetReportAuditCopyPdfGetCmd(flags))
+ cmd.AddCommand(newAssetReportAuditCopyRemoveCmd(flags))
+ cmd.AddCommand(newAssetReportCreateCmd(flags))
+ cmd.AddCommand(newAssetReportFilterCmd(flags))
+ cmd.AddCommand(newAssetReportGetCmd(flags))
+ cmd.AddCommand(newAssetReportPdfGetCmd(flags))
+ cmd.AddCommand(newAssetReportRefreshCmd(flags))
+ cmd.AddCommand(newAssetReportRemoveCmd(flags))
+ return cmd
+}
+
+func newAssetReportAuditCopyCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssetReportToken string
+ var bodyAuditorId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "audit-copy-create",
+ Short: "Create Asset Report Audit Copy",
+ Example: " plaid-cli asset-report audit-copy-create --asset-report-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/audit_copy/create"
+ body := map[string]any{}
+ if bodyAssetReportToken != "" {
+ body["asset_report_token"] = bodyAssetReportToken
+ }
+ if bodyAuditorId != "" {
+ body["auditor_id"] = bodyAuditorId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssetReportToken, "asset-report-token", "", "A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update...")
+ _ = cmd.MarkFlagRequired("asset-report-token")
+ cmd.Flags().StringVar(&bodyAuditorId, "auditor-id", "", "The `auditor_id` of the third party with whom you would like to share the Asset Report.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportAuditCopyGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "audit-copy-get",
+ Short: "Retrieve an Asset Report Audit Copy",
+ Example: " plaid-cli asset-report audit-copy-get --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/audit_copy/get"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "The `audit_copy_token` granting access to the Audit Copy you would like to get.")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportAuditCopyPdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "audit-copy-pdf-get",
+ Short: "Retrieve a PDF Asset Report Audit Copy",
+ Example: " plaid-cli asset-report audit-copy-pdf-get --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/audit_copy/pdf/get"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "The `audit_copy_token` granting access to the Audit Copy you would like to get as a PDF.")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportAuditCopyRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "audit-copy-remove",
+ Short: "Remove Asset Report Audit Copy",
+ Example: " plaid-cli asset-report audit-copy-remove --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/audit_copy/remove"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "The `audit_copy_token` granting access to the Audit Copy you would like to revoke.")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyDaysRequested int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create an Asset Report",
+ Example: " plaid-cli asset-report create",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDaysRequested != 0 {
+ body["days_requested"] = bodyDaysRequested
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyDaysRequested, "days-requested", 0, "The maximum integer number of days of history to include in the Asset Report. If using Fannie Mae Day 1 Certainty,...")
+ _ = cmd.MarkFlagRequired("days-requested")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportFilterCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssetReportToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "filter",
+ Short: "Filter Asset Report",
+ Example: " plaid-cli asset-report filter --asset-report-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/filter"
+ body := map[string]any{}
+ if bodyAssetReportToken != "" {
+ body["asset_report_token"] = bodyAssetReportToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssetReportToken, "asset-report-token", "", "A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update...")
+ _ = cmd.MarkFlagRequired("asset-report-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssetReportToken string
+ var bodyClientId string
+ var bodyFastReport bool
+ var bodyIncludeInsights bool
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve an Asset Report",
+ Example: " plaid-cli asset-report get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/get"
+ body := map[string]any{}
+ if bodyAssetReportToken != "" {
+ body["asset_report_token"] = bodyAssetReportToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyFastReport != false {
+ body["fast_report"] = bodyFastReport
+ }
+ if bodyIncludeInsights != false {
+ body["include_insights"] = bodyIncludeInsights
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssetReportToken, "asset-report-token", "", "A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().BoolVar(&bodyFastReport, "fast-report", false, "`true` to fetch 'fast' version of asset report. Defaults to false if omitted. Can only be used if...")
+ cmd.Flags().BoolVar(&bodyIncludeInsights, "include-insights", false, "`true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User for which to create an asset report for. The latest asset report associated...")
+
+ return cmd
+}
+
+func newAssetReportPdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssetReportToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "pdf-get",
+ Short: "Retrieve a PDF Asset Report",
+ Example: " plaid-cli asset-report pdf-get --asset-report-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/pdf/get"
+ body := map[string]any{}
+ if bodyAssetReportToken != "" {
+ body["asset_report_token"] = bodyAssetReportToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssetReportToken, "asset-report-token", "", "A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update...")
+ _ = cmd.MarkFlagRequired("asset-report-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssetReportToken string
+ var bodyClientId string
+ var bodyDaysRequested int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refresh",
+ Short: "Refresh an Asset Report",
+ Example: " plaid-cli asset-report refresh --asset-report-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/refresh"
+ body := map[string]any{}
+ if bodyAssetReportToken != "" {
+ body["asset_report_token"] = bodyAssetReportToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDaysRequested != 0 {
+ body["days_requested"] = bodyDaysRequested
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssetReportToken, "asset-report-token", "", "The `asset_report_token` returned by the original call to `/asset_report/create`")
+ _ = cmd.MarkFlagRequired("asset-report-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyDaysRequested, "days-requested", 0, "The maximum number of days of history to include in the Asset Report. Must be an integer. If not specified, the...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAssetReportRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssetReportToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "remove",
+ Short: "Delete an Asset Report",
+ Example: " plaid-cli asset-report remove --asset-report-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/asset_report/remove"
+ body := map[string]any{}
+ if bodyAssetReportToken != "" {
+ body["asset_report_token"] = bodyAssetReportToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssetReportToken, "asset-report-token", "", "A token that can be provided to endpoints such as `/asset_report/get` or `/asset_report/pdf/get` to fetch or update...")
+ _ = cmd.MarkFlagRequired("asset-report-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/auth.go b/plaid-cli/internal/cli/auth.go
new file mode 100644
index 00000000..ad0aa0e3
--- /dev/null
+++ b/plaid-cli/internal/cli/auth.go
@@ -0,0 +1,109 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newAuthCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "auth",
+ Short: "Manage auth",
+ }
+
+ cmd.AddCommand(newAuthGetCmd(flags))
+ cmd.AddCommand(newAuthVerifyCmd(flags))
+ return cmd
+}
+
+func newAuthGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Retrieve auth data",
+ Example: " plaid-cli auth get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/auth/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newAuthVerifyCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLegalName string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "verify",
+ Short: "Verify auth data",
+ Example: " plaid-cli auth verify",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/auth/verify"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLegalName != "" {
+ body["legal_name"] = bodyLegalName
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLegalName, "legal-name", "", "Account owner's legal name")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/bank-transfer.go b/plaid-cli/internal/cli/bank-transfer.go
new file mode 100644
index 00000000..659f9838
--- /dev/null
+++ b/plaid-cli/internal/cli/bank-transfer.go
@@ -0,0 +1,608 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newBankTransferCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "bank-transfer",
+ Short: "Manage bank transfer",
+ }
+
+ cmd.AddCommand(newBankTransferBalanceGetCmd(flags))
+ cmd.AddCommand(newBankTransferCancelCmd(flags))
+ cmd.AddCommand(newBankTransferCreateCmd(flags))
+ cmd.AddCommand(newBankTransferEventListCmd(flags))
+ cmd.AddCommand(newBankTransferEventSyncCmd(flags))
+ cmd.AddCommand(newBankTransferGetCmd(flags))
+ cmd.AddCommand(newBankTransferListCmd(flags))
+ cmd.AddCommand(newBankTransferMigrateAccountCmd(flags))
+ cmd.AddCommand(newBankTransferSweepGetCmd(flags))
+ cmd.AddCommand(newBankTransferSweepListCmd(flags))
+ return cmd
+}
+
+func newBankTransferBalanceGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginationAccountId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "balance-get",
+ Short: "Get balance of your Bank Transfer account",
+ Example: " plaid-cli bank-transfer balance-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/balance/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "If multiple origination accounts are available, `origination_account_id` must be used to specify the account for...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBankTransferCancelCmd(flags *rootFlags) *cobra.Command {
+ var bodyBankTransferId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "cancel",
+ Short: "Cancel a bank transfer",
+ Example: " plaid-cli bank-transfer cancel --bank-transfer-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/cancel"
+ body := map[string]any{}
+ if bodyBankTransferId != "" {
+ body["bank_transfer_id"] = bodyBankTransferId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBankTransferId, "bank-transfer-id", "", "Plaid’s unique identifier for a bank transfer.")
+ _ = cmd.MarkFlagRequired("bank-transfer-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBankTransferCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyAchClass string
+ var bodyAmount string
+ var bodyClientId string
+ var bodyCustomTag string
+ var bodyDescription string
+ var bodyIdempotencyKey string
+ var bodyIsoCurrencyCode string
+ var bodyNetwork string
+ var bodyOriginationAccountId string
+ var bodySecret string
+ var bodyType string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create a bank transfer",
+ Example: " plaid-cli bank-transfer create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAchClass != "" {
+ body["ach_class"] = bodyAchClass
+ }
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCustomTag != "" {
+ body["custom_tag"] = bodyCustomTag
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The Plaid `access_token` for the account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` for the account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyAchClass, "ach-class", "", "Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC...")
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the bank transfer (decimal string with two digits of precision e.g. '10.00').")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCustomTag, "custom-tag", "", "An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters.")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "The transfer description. Maximum of 10 characters.")
+ _ = cmd.MarkFlagRequired("description")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique bank transfer. Maximum of 50 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "The currency of the transfer amount – should be set to 'USD'.")
+ _ = cmd.MarkFlagRequired("iso-currency-code")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "", "The network or rails used for the transfer. Valid options are `ach`, `same-day-ach`, or `wire`.")
+ _ = cmd.MarkFlagRequired("network")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "The type of bank transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into the...")
+ _ = cmd.MarkFlagRequired("type")
+
+ return cmd
+}
+
+func newBankTransferEventListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountId string
+ var bodyBankTransferId string
+ var bodyBankTransferType string
+ var bodyClientId string
+ var bodyCount int
+ var bodyDirection string
+ var bodyEndDate string
+ var bodyOffset int
+ var bodyOriginationAccountId string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "event-list",
+ Short: "List bank transfer events",
+ Example: " plaid-cli bank-transfer event-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/event/list"
+ body := map[string]any{}
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyBankTransferId != "" {
+ body["bank_transfer_id"] = bodyBankTransferId
+ }
+ if bodyBankTransferType != "" {
+ body["bank_transfer_type"] = bodyBankTransferType
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyDirection != "" {
+ body["direction"] = bodyDirection
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The account ID to get events for all transactions to/from an account.")
+ cmd.Flags().StringVar(&bodyBankTransferId, "bank-transfer-id", "", "Plaid’s unique identifier for a bank transfer.")
+ cmd.Flags().StringVar(&bodyBankTransferType, "bank-transfer-type", "", "The type of bank transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of bank transfer events to return. If the number of events matching the above parameters is...")
+ cmd.Flags().StringVar(&bodyDirection, "direction", "", "Indicates the direction of the transfer: `outbound`: for API-initiated transfers `inbound`: for payments received by...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The offset into the list of bank transfer events. When `count`=25 and `offset`=0, the first 25 events will be...")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "The origination account ID to get events for transfers from a specific origination account.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+
+ return cmd
+}
+
+func newBankTransferEventSyncCmd(flags *rootFlags) *cobra.Command {
+ var bodyAfterId int
+ var bodyClientId string
+ var bodyCount int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "event-sync",
+ Short: "Sync bank transfer events",
+ Example: " plaid-cli bank-transfer event-sync",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/event/sync"
+ body := map[string]any{}
+ if bodyAfterId != 0 {
+ body["after_id"] = bodyAfterId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().IntVar(&bodyAfterId, "after-id", 0, "The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.")
+ _ = cmd.MarkFlagRequired("after-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of bank transfer events to return.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBankTransferGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyBankTransferId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve a bank transfer",
+ Example: " plaid-cli bank-transfer get --bank-transfer-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/get"
+ body := map[string]any{}
+ if bodyBankTransferId != "" {
+ body["bank_transfer_id"] = bodyBankTransferId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBankTransferId, "bank-transfer-id", "", "Plaid’s unique identifier for a bank transfer.")
+ _ = cmd.MarkFlagRequired("bank-transfer-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBankTransferListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyDirection string
+ var bodyEndDate string
+ var bodyOffset int
+ var bodyOriginationAccountId string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "list",
+ Short: "List bank transfers",
+ Example: " plaid-cli bank-transfer list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyDirection != "" {
+ body["direction"] = bodyDirection
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of bank transfers to return.")
+ cmd.Flags().StringVar(&bodyDirection, "direction", "", "Indicates the direction of the transfer: `outbound` for API-initiated transfers, or `inbound` for payments received...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of bank transfers to skip before returning results.")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Filter bank transfers to only those originated through the specified origination account.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start datetime of bank transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+
+ return cmd
+}
+
+func newBankTransferMigrateAccountCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountNumber string
+ var bodyAccountType string
+ var bodyClientId string
+ var bodyRoutingNumber string
+ var bodySecret string
+ var bodyWireRoutingNumber string
+
+ cmd := &cobra.Command{
+ Use: "migrate-account",
+ Short: "Migrate account into Bank Transfers",
+ Example: " plaid-cli bank-transfer migrate-account --account-number value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/migrate_account"
+ body := map[string]any{}
+ if bodyAccountNumber != "" {
+ body["account_number"] = bodyAccountNumber
+ }
+ if bodyAccountType != "" {
+ body["account_type"] = bodyAccountType
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRoutingNumber != "" {
+ body["routing_number"] = bodyRoutingNumber
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWireRoutingNumber != "" {
+ body["wire_routing_number"] = bodyWireRoutingNumber
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountNumber, "account-number", "", "The user's account number.")
+ _ = cmd.MarkFlagRequired("account-number")
+ cmd.Flags().StringVar(&bodyAccountType, "account-type", "", "The type of the bank account (`checking` or `savings`).")
+ _ = cmd.MarkFlagRequired("account-type")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRoutingNumber, "routing-number", "", "The user's routing number.")
+ _ = cmd.MarkFlagRequired("routing-number")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWireRoutingNumber, "wire-routing-number", "", "The user's wire transfer routing number. This is the ABA number; for some institutions, this may differ from the ACH...")
+
+ return cmd
+}
+
+func newBankTransferSweepGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodySweepId string
+
+ cmd := &cobra.Command{
+ Use: "sweep-get",
+ Short: "Retrieve a sweep",
+ Example: " plaid-cli bank-transfer sweep-get --sweep-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/sweep/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySweepId != "" {
+ body["sweep_id"] = bodySweepId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySweepId, "sweep-id", "", "Identifier of the sweep.")
+ _ = cmd.MarkFlagRequired("sweep-id")
+
+ return cmd
+}
+
+func newBankTransferSweepListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndTime string
+ var bodyOriginationAccountId string
+ var bodySecret string
+ var bodyStartTime string
+
+ cmd := &cobra.Command{
+ Use: "sweep-list",
+ Short: "List sweeps",
+ Example: " plaid-cli bank-transfer sweep-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/bank_transfer/sweep/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndTime != "" {
+ body["end_time"] = bodyEndTime
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartTime != "" {
+ body["start_time"] = bodyStartTime
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of sweeps to return.")
+ cmd.Flags().StringVar(&bodyEndTime, "end-time", "", "The end `created` datetime of sweeps to return (RFC 3339 format).")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "If multiple origination accounts are available, `origination_account_id` must be used to specify the account that...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartTime, "start-time", "", "The start `created` datetime of sweeps to return (RFC 3339 format).")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/beacon.go b/plaid-cli/internal/cli/beacon.go
new file mode 100644
index 00000000..7674d956
--- /dev/null
+++ b/plaid-cli/internal/cli/beacon.go
@@ -0,0 +1,647 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newBeaconCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "beacon",
+ Short: "Manage beacon",
+ }
+
+ cmd.AddCommand(newBeaconAccountRiskEvaluateCmd(flags))
+ cmd.AddCommand(newBeaconDuplicateGetCmd(flags))
+ cmd.AddCommand(newBeaconReportCreateCmd(flags))
+ cmd.AddCommand(newBeaconReportGetCmd(flags))
+ cmd.AddCommand(newBeaconReportListCmd(flags))
+ cmd.AddCommand(newBeaconReportSyndicationGetCmd(flags))
+ cmd.AddCommand(newBeaconReportSyndicationListCmd(flags))
+ cmd.AddCommand(newBeaconUserAccountInsightsGetCmd(flags))
+ cmd.AddCommand(newBeaconUserCreateCmd(flags))
+ cmd.AddCommand(newBeaconUserGetCmd(flags))
+ cmd.AddCommand(newBeaconUserHistoryListCmd(flags))
+ cmd.AddCommand(newBeaconUserReviewCmd(flags))
+ cmd.AddCommand(newBeaconUserUpdateCmd(flags))
+ return cmd
+}
+
+func newBeaconAccountRiskEvaluateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientEvaluationId string
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyEvaluateTime string
+ var bodyEvaluationReason string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "account-risk-evaluate",
+ Aliases: []string{"create"},
+ Short: "Evaluate risk of a bank account",
+ Example: " plaid-cli beacon account-risk-evaluate",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/account_risk/v1/evaluate"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientEvaluationId != "" {
+ body["client_evaluation_id"] = bodyClientEvaluationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyEvaluateTime != "" {
+ body["evaluate_time"] = bodyEvaluateTime
+ }
+ if bodyEvaluationReason != "" {
+ body["evaluation_reason"] = bodyEvaluationReason
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ cmd.Flags().StringVar(&bodyClientEvaluationId, "client-evaluation-id", "", "Unique identifier of what you are looking to evaluate (account add, information change, etc.) to allow us to tie the...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with...")
+ cmd.Flags().StringVar(&bodyEvaluateTime, "evaluate-time", "", "The time the event for evaluation has occurred. Populate this field for backfilling data. If you don’t populate...")
+ cmd.Flags().StringVar(&bodyEvaluationReason, "evaluation-reason", "", "Description of the reason you want to evaluate risk. `ONBOARDING`: user links a first bank account as part of the...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconDuplicateGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconDuplicateId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "duplicate-get",
+ Short: "Get a Beacon Duplicate",
+ Example: " plaid-cli beacon duplicate-get --beacon-duplicate-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/duplicate/get"
+ body := map[string]any{}
+ if bodyBeaconDuplicateId != "" {
+ body["beacon_duplicate_id"] = bodyBeaconDuplicateId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconDuplicateId, "beacon-duplicate-id", "", "ID of the associated Beacon Duplicate.")
+ _ = cmd.MarkFlagRequired("beacon-duplicate-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconReportCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodyFraudDate string
+ var bodySecret string
+ var bodyType string
+
+ cmd := &cobra.Command{
+ Use: "report-create",
+ Short: "Create a Beacon Report",
+ Example: " plaid-cli beacon report-create --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/report/create"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyFraudDate != "" {
+ body["fraud_date"] = bodyFraudDate
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyFraudDate, "fraud-date", "", "A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).")
+ _ = cmd.MarkFlagRequired("fraud-date")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "The type of Beacon Report. `first_party`: If this is the same individual as the one who submitted the KYC. `stolen`:...")
+ _ = cmd.MarkFlagRequired("type")
+
+ return cmd
+}
+
+func newBeaconReportGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconReportId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "report-get",
+ Short: "Get a Beacon Report",
+ Example: " plaid-cli beacon report-get --beacon-report-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/report/get"
+ body := map[string]any{}
+ if bodyBeaconReportId != "" {
+ body["beacon_report_id"] = bodyBeaconReportId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconReportId, "beacon-report-id", "", "ID of the associated Beacon Report.")
+ _ = cmd.MarkFlagRequired("beacon-report-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconReportListCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "report-list",
+ Short: "List Beacon Reports for a Beacon User",
+ Example: " plaid-cli beacon report-list --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/report/list"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconReportSyndicationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconReportSyndicationId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "report-syndication-get",
+ Short: "Get a Beacon Report Syndication",
+ Example: " plaid-cli beacon report-syndication-get --beacon-report-syndication-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/report_syndication/get"
+ body := map[string]any{}
+ if bodyBeaconReportSyndicationId != "" {
+ body["beacon_report_syndication_id"] = bodyBeaconReportSyndicationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconReportSyndicationId, "beacon-report-syndication-id", "", "ID of the associated Beacon Report Syndication.")
+ _ = cmd.MarkFlagRequired("beacon-report-syndication-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconReportSyndicationListCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "report-syndication-list",
+ Short: "List Beacon Report Syndications for a Beacon User",
+ Example: " plaid-cli beacon report-syndication-list --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/report_syndication/list"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconUserAccountInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "user-account-insights-get",
+ Short: "Get Account Insights for a Beacon User",
+ Example: " plaid-cli beacon user-account-insights-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/user/account_insights/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconUserCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyProgramId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "user-create",
+ Short: "Create a Beacon User",
+ Example: " plaid-cli beacon user-create --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/user/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyProgramId != "" {
+ body["program_id"] = bodyProgramId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodyProgramId, "program-id", "", "ID of the associated Beacon Program.")
+ _ = cmd.MarkFlagRequired("program-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconUserGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "user-get",
+ Short: "Get a Beacon User",
+ Example: " plaid-cli beacon user-get --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/user/get"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconUserHistoryListCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "user-history-list",
+ Short: "List a Beacon User's history",
+ Example: " plaid-cli beacon user-history-list --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/user/history/list"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBeaconUserReviewCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodySecret string
+ var bodyStatus string
+
+ cmd := &cobra.Command{
+ Use: "user-review",
+ Short: "Review a Beacon User",
+ Example: " plaid-cli beacon user-review --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/user/review"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "A status of a Beacon User. `rejected`: The Beacon User has been rejected for fraud. Users can be automatically or...")
+ _ = cmd.MarkFlagRequired("status")
+
+ return cmd
+}
+
+func newBeaconUserUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyBeaconUserId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "user-update",
+ Short: "Update the identity data of a Beacon User",
+ Example: " plaid-cli beacon user-update --beacon-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beacon/user/update"
+ body := map[string]any{}
+ if bodyBeaconUserId != "" {
+ body["beacon_user_id"] = bodyBeaconUserId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBeaconUserId, "beacon-user-id", "", "ID of the associated Beacon User.")
+ _ = cmd.MarkFlagRequired("beacon-user-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/beta.go b/plaid-cli/internal/cli/beta.go
new file mode 100644
index 00000000..840128e6
--- /dev/null
+++ b/plaid-cli/internal/cli/beta.go
@@ -0,0 +1,552 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newBetaCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "beta",
+ Short: "Manage beta",
+ }
+
+ cmd.AddCommand(newBetaCreditBankEmploymentGetCmd(flags))
+ cmd.AddCommand(newBetaEwaReportV1GetCmd(flags))
+ cmd.AddCommand(newBetaPartnerCustomerV1CreateCmd(flags))
+ cmd.AddCommand(newBetaPartnerCustomerV1EnableCmd(flags))
+ cmd.AddCommand(newBetaPartnerCustomerV1GetCmd(flags))
+ cmd.AddCommand(newBetaPartnerCustomerV1UpdateCmd(flags))
+ cmd.AddCommand(newBetaTransactionsEnhanceCmd(flags))
+ cmd.AddCommand(newBetaTransactionsRulesCreateCmd(flags))
+ cmd.AddCommand(newBetaTransactionsRulesListCmd(flags))
+ cmd.AddCommand(newBetaTransactionsRulesRemoveCmd(flags))
+ cmd.AddCommand(newBetaTransactionsUserInsightsGetCmd(flags))
+ return cmd
+}
+
+func newBetaCreditBankEmploymentGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "credit-bank-employment-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve information from the bank accounts used for employment verification",
+ Example: " plaid-cli beta credit-bank-employment-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/credit/v1/bank_employment/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newBetaEwaReportV1GetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "ewa-report-v1-get",
+ Short: "Get EWA Score Report",
+ Example: " plaid-cli beta ewa-report-v1-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/ewa_report/v1/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaPartnerCustomerV1CreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyApplicationName string
+ var bodyClientId string
+ var bodyCompanyName string
+ var bodyCreateLinkCustomization bool
+ var bodyIsDiligenceAttested bool
+ var bodyLegalEntityName string
+ var bodyLogo string
+ var bodySecret string
+ var bodyWebsite string
+
+ cmd := &cobra.Command{
+ Use: "partner-customer-v1-create",
+ Short: "Creates a new end customer for a Plaid reseller.",
+ Example: " plaid-cli beta partner-customer-v1-create --application-name value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/partner/customer/v1/create"
+ body := map[string]any{}
+ if bodyApplicationName != "" {
+ body["application_name"] = bodyApplicationName
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCompanyName != "" {
+ body["company_name"] = bodyCompanyName
+ }
+ if bodyCreateLinkCustomization != false {
+ body["create_link_customization"] = bodyCreateLinkCustomization
+ }
+ if bodyIsDiligenceAttested != false {
+ body["is_diligence_attested"] = bodyIsDiligenceAttested
+ }
+ if bodyLegalEntityName != "" {
+ body["legal_entity_name"] = bodyLegalEntityName
+ }
+ if bodyLogo != "" {
+ body["logo"] = bodyLogo
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebsite != "" {
+ body["website"] = bodyWebsite
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyApplicationName, "application-name", "", "The name of the end customer's application. This will be shown to end users when they go through the Plaid Link...")
+ _ = cmd.MarkFlagRequired("application-name")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCompanyName, "company-name", "", "The company name of the end customer being created. This will be used to display the end customer in the Plaid...")
+ _ = cmd.MarkFlagRequired("company-name")
+ cmd.Flags().BoolVar(&bodyCreateLinkCustomization, "create-link-customization", false, "If `true`, the end customer's default Link customization will be set to match the partner's. You can always change...")
+ cmd.Flags().BoolVar(&bodyIsDiligenceAttested, "is-diligence-attested", false, "Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.")
+ cmd.Flags().StringVar(&bodyLegalEntityName, "legal-entity-name", "", "The end customer's legal name. This will be shared with financial institutions as part of the OAuth registration...")
+ cmd.Flags().StringVar(&bodyLogo, "logo", "", "Base64-encoded representation of the end customer's logo. Must be a PNG of size 1024x1024 under 4MB. The logo will...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebsite, "website", "", "The end customer's website.")
+ _ = cmd.MarkFlagRequired("website")
+
+ return cmd
+}
+
+func newBetaPartnerCustomerV1EnableCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "partner-customer-v1-enable",
+ Short: "Enables a Plaid reseller's end customer in the Production environment.",
+ Example: " plaid-cli beta partner-customer-v1-enable --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/partner/customer/v1/enable"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "End customer client id")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaPartnerCustomerV1GetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "partner-customer-v1-get",
+ Short: "Retrieves the details of a Plaid reseller's end customer.",
+ Example: " plaid-cli beta partner-customer-v1-get --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/partner/customer/v1/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "End customer client id")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaPartnerCustomerV1UpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodyLegalEntityName string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "partner-customer-v1-update",
+ Short: "Updates an existing end customer.",
+ Example: " plaid-cli beta partner-customer-v1-update --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/partner/customer/v1/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodyLegalEntityName != "" {
+ body["legal_entity_name"] = bodyLegalEntityName
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "End customer client id")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodyLegalEntityName, "legal-entity-name", "", "Legal entity name")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaTransactionsEnhanceCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountType string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-enhance",
+ Short: "enhance locally-held transaction data",
+ Example: " plaid-cli beta transactions-enhance --account-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/transactions/v1/enhance"
+ body := map[string]any{}
+ if bodyAccountType != "" {
+ body["account_type"] = bodyAccountType
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountType, "account-type", "", "The type of account for the requested transactions (`depository` or `credit`).")
+ _ = cmd.MarkFlagRequired("account-type")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaTransactionsRulesCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyPfcDetailedCategory string
+ var bodyPfcPrimaryCategory string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-rules-create",
+ Short: "Create transaction category rule",
+ Example: " plaid-cli beta transactions-rules-create --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/transactions/rules/v1/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyPfcDetailedCategory != "" {
+ body["pfc_detailed_category"] = bodyPfcDetailedCategory
+ }
+ if bodyPfcPrimaryCategory != "" {
+ body["pfc_primary_category"] = bodyPfcPrimaryCategory
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID representing the end user. This ID is used to associate rules with a specific user.")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodyPfcDetailedCategory, "pfc-detailed-category", "", "A personal finance detailed category. See the [taxonomy csv file](https://plaid.com/documents/pfc-taxonomy-all.csv)...")
+ _ = cmd.MarkFlagRequired("pfc-detailed-category")
+ cmd.Flags().StringVar(&bodyPfcPrimaryCategory, "pfc-primary-category", "", "A personal finance primary category. See the [taxonomy csv file](https://plaid.com/documents/pfc-taxonomy-all.csv)...")
+ _ = cmd.MarkFlagRequired("pfc-primary-category")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaTransactionsRulesListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-rules-list",
+ Short: "Return a list of rules created for the Item associated with the access token.",
+ Example: " plaid-cli beta transactions-rules-list --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/transactions/rules/v1/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID representing the end user whose rules should be listed.")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaTransactionsRulesRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyRuleId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-rules-remove",
+ Short: "Remove transaction rule",
+ Example: " plaid-cli beta transactions-rules-remove --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/transactions/rules/v1/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyRuleId != "" {
+ body["rule_id"] = bodyRuleId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID representing the end user the rule belongs to.")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodyRuleId, "rule-id", "", "A rule's unique identifier")
+ _ = cmd.MarkFlagRequired("rule-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBetaTransactionsUserInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-user-insights-get",
+ Short: "Obtain user insights based on transactions sent through /transactions/enrich",
+ Example: " plaid-cli beta transactions-user-insights-get --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/beta/transactions/user_insights/v1/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique client-provided `client_user_id` to retrieve insights for.")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/business-verification.go b/plaid-cli/internal/cli/business-verification.go
new file mode 100644
index 00000000..be8f61b9
--- /dev/null
+++ b/plaid-cli/internal/cli/business-verification.go
@@ -0,0 +1,109 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newBusinessVerificationCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "business-verification",
+ Short: "Manage business verification",
+ }
+
+ cmd.AddCommand(newBusinessVerificationCreateCmd(flags))
+ cmd.AddCommand(newBusinessVerificationGetCmd(flags))
+ return cmd
+}
+
+func newBusinessVerificationCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create a business verification",
+ Example: " plaid-cli business-verification create --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/business_verification/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newBusinessVerificationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyBusinessVerificationId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Get a business verification",
+ Example: " plaid-cli business-verification get --business-verification-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/business_verification/get"
+ body := map[string]any{}
+ if bodyBusinessVerificationId != "" {
+ body["business_verification_id"] = bodyBusinessVerificationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBusinessVerificationId, "business-verification-id", "", "ID of the associated business verification.")
+ _ = cmd.MarkFlagRequired("business-verification-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/cashflow-report.go b/plaid-cli/internal/cli/cashflow-report.go
new file mode 100644
index 00000000..185bfba7
--- /dev/null
+++ b/plaid-cli/internal/cli/cashflow-report.go
@@ -0,0 +1,228 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newCashflowReportCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "cashflow-report",
+ Short: "Manage cashflow report",
+ }
+
+ cmd.AddCommand(newCashflowReportGetCmd(flags))
+ cmd.AddCommand(newCashflowReportInsightsGetCmd(flags))
+ cmd.AddCommand(newCashflowReportRefreshCmd(flags))
+ cmd.AddCommand(newCashflowReportTransactionsGetCmd(flags))
+ return cmd
+}
+
+func newCashflowReportGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodyDaysRequested int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Gets transaction data in `cashflow_report`",
+ Example: " plaid-cli cashflow-report get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cashflow_report/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyDaysRequested != 0 {
+ body["days_requested"] = bodyDaysRequested
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 100, "Number of transactions to fetch per call")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "The cursor value represents the last update requested. Pass in the empty string '' in the first call.")
+ cmd.Flags().IntVar(&bodyDaysRequested, "days-requested", 0, "Number of days to retrieve transactions data for (1 to 730)")
+ _ = cmd.MarkFlagRequired("days-requested")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCashflowReportInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "insights-get",
+ Short: "Gets insights data in Cashflow Report",
+ Example: " plaid-cli cashflow-report insights-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cashflow_report/insights/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCashflowReportRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyDaysRequested int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refresh",
+ Short: "Refresh transaction data in `cashflow_report`",
+ Example: " plaid-cli cashflow-report refresh --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cashflow_report/refresh"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDaysRequested != 0 {
+ body["days_requested"] = bodyDaysRequested
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyDaysRequested, "days-requested", 365, "Number of days to retrieve transactions data for (1 to 730)")
+ _ = cmd.MarkFlagRequired("days-requested")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCashflowReportTransactionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-get",
+ Short: "Gets transaction data in cashflow_report",
+ Example: " plaid-cli cashflow-report transactions-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cashflow_report/transactions/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 100, "Number of transactions to fetch per call")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "The cursor value represents the last update requested. Pass in the empty string '' in the first call.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/categories.go b/plaid-cli/internal/cli/categories.go
new file mode 100644
index 00000000..2b06c3bd
--- /dev/null
+++ b/plaid-cli/internal/cli/categories.go
@@ -0,0 +1,51 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newCategoriesCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "categories",
+ Short: "Manage categories",
+ }
+
+ cmd.AddCommand(newCategoriesGetCmd(flags))
+ return cmd
+}
+
+func newCategoriesGetCmd(flags *rootFlags) *cobra.Command {
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "(Deprecated) Get legacy categories",
+ Example: " plaid-cli categories get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/categories/get"
+ body := map[string]any{}
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/consent.go b/plaid-cli/internal/cli/consent.go
new file mode 100644
index 00000000..601fe88a
--- /dev/null
+++ b/plaid-cli/internal/cli/consent.go
@@ -0,0 +1,67 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newConsentCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "consent",
+ Short: "Manage consent",
+ }
+
+ cmd.AddCommand(newConsentEventsGetCmd(flags))
+ return cmd
+}
+
+func newConsentEventsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "events-get",
+ Aliases: []string{"create"},
+ Short: "List a historical log of item consent events",
+ Example: " plaid-cli consent events-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/consent/events/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/consumer-report.go b/plaid-cli/internal/cli/consumer-report.go
new file mode 100644
index 00000000..2d542456
--- /dev/null
+++ b/plaid-cli/internal/cli/consumer-report.go
@@ -0,0 +1,67 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newConsumerReportCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "consumer-report",
+ Short: "Manage consumer report",
+ }
+
+ cmd.AddCommand(newConsumerReportPdfGetCmd(flags))
+ return cmd
+}
+
+func newConsumerReportPdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "pdf-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve a PDF Reports",
+ Example: " plaid-cli consumer-report pdf-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/consumer_report/pdf/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/cra.go b/plaid-cli/internal/cli/cra.go
new file mode 100644
index 00000000..b37ee21f
--- /dev/null
+++ b/plaid-cli/internal/cli/cra.go
@@ -0,0 +1,918 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newCraCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "cra",
+ Short: "Manage cra",
+ }
+
+ cmd.AddCommand(newCraCheckReportBaseReportGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportCashflowInsightsGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportCreateCmd(flags))
+ cmd.AddCommand(newCraCheckReportIncomeInsightsGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportLendScoreGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportNetworkInsightsGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportPartnerInsightsGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportPdfGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportVerificationGetCmd(flags))
+ cmd.AddCommand(newCraCheckReportVerificationPdfGetCmd(flags))
+ cmd.AddCommand(newCraLoansApplicationsRegisterCmd(flags))
+ cmd.AddCommand(newCraLoansRegisterCmd(flags))
+ cmd.AddCommand(newCraLoansUnregisterCmd(flags))
+ cmd.AddCommand(newCraLoansUpdateCmd(flags))
+ cmd.AddCommand(newCraMonitoringInsightsGetCmd(flags))
+ cmd.AddCommand(newCraMonitoringInsightsSubscribeCmd(flags))
+ cmd.AddCommand(newCraMonitoringInsightsUnsubscribeCmd(flags))
+ cmd.AddCommand(newCraPartnerInsightsGetCmd(flags))
+ return cmd
+}
+
+func newCraCheckReportBaseReportGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-base-report-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve a Base Report",
+ Example: " plaid-cli cra check-report-base-report-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/base_report/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportCashflowInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-cashflow-insights-get",
+ Short: "Retrieve cash flow insights from your user's banking data",
+ Example: " plaid-cli cra check-report-cashflow-insights-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/cashflow_insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientReportId string
+ var bodyConsumerReportPermissiblePurpose string
+ var bodyDaysRequested int
+ var bodyDaysRequired int
+ var bodyIncludeInvestments bool
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "check-report-create",
+ Short: "Refresh or create a Consumer Report",
+ Example: " plaid-cli cra check-report-create --consumer-report-permissible-purpose value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientReportId != "" {
+ body["client_report_id"] = bodyClientReportId
+ }
+ if bodyConsumerReportPermissiblePurpose != "" {
+ body["consumer_report_permissible_purpose"] = bodyConsumerReportPermissiblePurpose
+ }
+ if bodyDaysRequested != 0 {
+ body["days_requested"] = bodyDaysRequested
+ }
+ if bodyDaysRequired != 0 {
+ body["days_required"] = bodyDaysRequired
+ }
+ if bodyIncludeInvestments != false {
+ body["include_investments"] = bodyIncludeInvestments
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientReportId, "client-report-id", "", "Client-generated identifier, which can be used by lenders to track loan applications.")
+ cmd.Flags().StringVar(&bodyConsumerReportPermissiblePurpose, "consumer-report-permissible-purpose", "", "Describes the reason you are generating a Consumer Report for this user. When calling `/link/token/create`, this...")
+ _ = cmd.MarkFlagRequired("consumer-report-permissible-purpose")
+ cmd.Flags().IntVar(&bodyDaysRequested, "days-requested", 0, "The number of days of data to request for the report. Default value is 365; maximum is 731; minimum is 180. If a...")
+ _ = cmd.MarkFlagRequired("days-requested")
+ cmd.Flags().IntVar(&bodyDaysRequired, "days-required", 0, "The minimum number of days of data required for the report to be successfully generated.")
+ cmd.Flags().BoolVar(&bodyIncludeInvestments, "include-investments", false, "Indicates that investment data should be extracted from the linked account(s).")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The destination URL to which webhooks will be sent")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newCraCheckReportIncomeInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-income-insights-get",
+ Short: "Retrieve cash flow information from your user's banks",
+ Example: " plaid-cli cra check-report-income-insights-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/income_insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportLendScoreGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-lend-score-get",
+ Short: "Retrieve the LendScore from your user's banking data",
+ Example: " plaid-cli cra check-report-lend-score-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/lend_score/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportNetworkInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-network-insights-get",
+ Short: "Retrieve network attributes for the user",
+ Example: " plaid-cli cra check-report-network-insights-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/network_insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportPartnerInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-partner-insights-get",
+ Short: "Retrieve cash flow insights from partners",
+ Example: " plaid-cli cra check-report-partner-insights-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/partner_insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportPdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-pdf-get",
+ Short: "Retrieve Consumer Reports as a PDF",
+ Example: " plaid-cli cra check-report-pdf-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/pdf/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportVerificationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-verification-get",
+ Short: "Retrieve various home lending reports for a user.",
+ Example: " plaid-cli cra check-report-verification-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/verification/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraCheckReportVerificationPdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyReportRequested string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "check-report-verification-pdf-get",
+ Short: "Retrieve Consumer Reports as a Verification PDF",
+ Example: " plaid-cli cra check-report-verification-pdf-get --report-requested value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/check_report/verification/pdf/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyReportRequested != "" {
+ body["report_requested"] = bodyReportRequested
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyReportRequested, "report-requested", "", "The type of verification PDF report to fetch.")
+ _ = cmd.MarkFlagRequired("report-requested")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraLoansApplicationsRegisterCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "loans-applications-register",
+ Short: "Register loan applications and decisions.",
+ Example: " plaid-cli cra loans-applications-register",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/loans/applications/register"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCraLoansRegisterCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "loans-register",
+ Short: "Register a list of loans to their applicants.",
+ Example: " plaid-cli cra loans-register",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/loans/register"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCraLoansUnregisterCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "loans-unregister",
+ Short: "Unregister a list of loans.",
+ Example: " plaid-cli cra loans-unregister",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/loans/unregister"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCraLoansUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "loans-update",
+ Short: "Updates loan data.",
+ Example: " plaid-cli cra loans-update",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/loans/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCraMonitoringInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyConsumerReportPermissiblePurpose string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "monitoring-insights-get",
+ Short: "Retrieve a Monitoring Insights Report",
+ Example: " plaid-cli cra monitoring-insights-get --consumer-report-permissible-purpose value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/monitoring_insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyConsumerReportPermissiblePurpose != "" {
+ body["consumer_report_permissible_purpose"] = bodyConsumerReportPermissiblePurpose
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyConsumerReportPermissiblePurpose, "consumer-report-permissible-purpose", "", "Describes the reason you are generating a Consumer Report for this user. `ACCOUNT_REVIEW_CREDIT`: In connection with...")
+ _ = cmd.MarkFlagRequired("consumer-report-permissible-purpose")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCraMonitoringInsightsSubscribeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyItemId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "monitoring-insights-subscribe",
+ Short: "Subscribe to Monitoring Insights",
+ Example: " plaid-cli cra monitoring-insights-subscribe --webhook value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/monitoring_insights/subscribe"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyItemId != "" {
+ body["item_id"] = bodyItemId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyItemId, "item-id", "", "The item ID to subscribe for Cash Flow Updates.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "URL to which Plaid will send Cash Flow Updates webhooks, for example when the requested Cash Flow Updates report is...")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newCraMonitoringInsightsUnsubscribeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodySubscriptionId string
+
+ cmd := &cobra.Command{
+ Use: "monitoring-insights-unsubscribe",
+ Short: "Unsubscribe from Monitoring Insights",
+ Example: " plaid-cli cra monitoring-insights-unsubscribe --subscription-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/monitoring_insights/unsubscribe"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySubscriptionId != "" {
+ body["subscription_id"] = bodySubscriptionId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySubscriptionId, "subscription-id", "", "A unique identifier for the subscription.")
+ _ = cmd.MarkFlagRequired("subscription-id")
+
+ return cmd
+}
+
+func newCraPartnerInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "partner-insights-get",
+ Short: "Retrieve cash flow insights from the bank accounts used for income verification",
+ Example: " plaid-cli cra partner-insights-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/cra/partner_insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/credit.go b/plaid-cli/internal/cli/credit.go
new file mode 100644
index 00000000..f5adf34a
--- /dev/null
+++ b/plaid-cli/internal/cli/credit.go
@@ -0,0 +1,1004 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newCreditCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "credit",
+ Short: "Manage credit",
+ }
+
+ cmd.AddCommand(newCreditAssetReportFreddieMacGetCmd(flags))
+ cmd.AddCommand(newCreditAuditCopyTokenCreateCmd(flags))
+ cmd.AddCommand(newCreditAuditCopyTokenUpdateCmd(flags))
+ cmd.AddCommand(newCreditBankIncomeGetCmd(flags))
+ cmd.AddCommand(newCreditBankIncomePdfGetCmd(flags))
+ cmd.AddCommand(newCreditBankIncomeRefreshCmd(flags))
+ cmd.AddCommand(newCreditBankIncomeWebhookUpdateCmd(flags))
+ cmd.AddCommand(newCreditBankStatementsUploadsGetCmd(flags))
+ cmd.AddCommand(newCreditEmploymentGetCmd(flags))
+ cmd.AddCommand(newCreditFreddieMacReportsGetCmd(flags))
+ cmd.AddCommand(newCreditPayrollIncomeGetCmd(flags))
+ cmd.AddCommand(newCreditPayrollIncomeParsingConfigUpdateCmd(flags))
+ cmd.AddCommand(newCreditPayrollIncomePrecheckCmd(flags))
+ cmd.AddCommand(newCreditPayrollIncomeRefreshCmd(flags))
+ cmd.AddCommand(newCreditPayrollIncomeRiskSignalsGetCmd(flags))
+ cmd.AddCommand(newCreditRelayCreateCmd(flags))
+ cmd.AddCommand(newCreditRelayGetCmd(flags))
+ cmd.AddCommand(newCreditRelayPdfGetCmd(flags))
+ cmd.AddCommand(newCreditRelayRefreshCmd(flags))
+ cmd.AddCommand(newCreditRelayRemoveCmd(flags))
+ cmd.AddCommand(newCreditReportAuditCopyRemoveCmd(flags))
+ cmd.AddCommand(newCreditSessionsGetCmd(flags))
+ return cmd
+}
+
+func newCreditAssetReportFreddieMacGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "asset-report-freddie-mac-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve an Asset Report with Freddie Mac format. Only Freddie Mac can use this endpoint.",
+ Example: " plaid-cli credit asset-report-freddie-mac-get --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/asset_report/freddie_mac/get"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token...")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditAuditCopyTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "audit-copy-token-create",
+ Short: "Create Asset or Income Report Audit Copy Token",
+ Example: " plaid-cli credit audit-copy-token-create",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/audit_copy_token/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditAuditCopyTokenUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "audit-copy-token-update",
+ Short: "Update an Audit Copy Token",
+ Example: " plaid-cli credit audit-copy-token-update --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/audit_copy_token/update"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "The `audit_copy_token` you would like to update.")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditBankIncomeGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "bank-income-get",
+ Short: "Retrieve information from the bank accounts used for income verification",
+ Example: " plaid-cli credit bank-income-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/bank_income/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCreditBankIncomePdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "bank-income-pdf-get",
+ Short: "Retrieve information from the bank accounts used for income verification in PDF format",
+ Example: " plaid-cli credit bank-income-pdf-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/bank_income/pdf/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditBankIncomeRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "bank-income-refresh",
+ Short: "Refresh a user's bank income information",
+ Example: " plaid-cli credit bank-income-refresh --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/bank_income/refresh"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditBankIncomeWebhookUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEnableWebhooks bool
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "bank-income-webhook-update",
+ Short: "Subscribe and unsubscribe to proactive notifications for a user's income profile",
+ Example: " plaid-cli credit bank-income-webhook-update --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/bank_income/webhook/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEnableWebhooks != false {
+ body["enable_webhooks"] = bodyEnableWebhooks
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().BoolVar(&bodyEnableWebhooks, "enable-webhooks", false, "Whether the user should be enabled for proactive webhook notifications when their income changes")
+ _ = cmd.MarkFlagRequired("enable-webhooks")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditBankStatementsUploadsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "bank-statements-uploads-get",
+ Short: "Retrieve data for a user's uploaded bank statements",
+ Example: " plaid-cli credit bank-statements-uploads-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/bank_statements/uploads/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditEmploymentGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "employment-get",
+ Short: "Retrieve a summary of an individual's employment information",
+ Example: " plaid-cli credit employment-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/employment/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditFreddieMacReportsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "freddie-mac-reports-get",
+ Short: "Retrieve an Asset Report with Freddie Mac format (aka VOA - Verification Of Assets), and a Verification Of...",
+ Example: " plaid-cli credit freddie-mac-reports-get --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/freddie_mac/reports/get"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "A token that can be shared with a third party auditor to allow them to obtain access to the Asset Report. This token...")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditPayrollIncomeGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "payroll-income-get",
+ Short: "Retrieve a user's payroll information",
+ Example: " plaid-cli credit payroll-income-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/payroll_income/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCreditPayrollIncomeParsingConfigUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyItemId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "payroll-income-parsing-config-update",
+ Short: "Update the parsing configuration for a document income verification",
+ Example: " plaid-cli credit payroll-income-parsing-config-update --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/payroll_income/parsing_config/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyItemId != "" {
+ body["item_id"] = bodyItemId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyItemId, "item-id", "", "The `item_id` of the Item associated with this webhook, warning, or error")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditPayrollIncomePrecheckCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "payroll-income-precheck",
+ Short: "Check income verification eligibility and optimize conversion",
+ Example: " plaid-cli credit payroll-income-precheck",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/payroll_income/precheck"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCreditPayrollIncomeRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "payroll-income-refresh",
+ Short: "Refresh a digital payroll income verification",
+ Example: " plaid-cli credit payroll-income-refresh --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/payroll_income/refresh"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
+func newCreditPayrollIncomeRiskSignalsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "payroll-income-risk-signals-get",
+ Short: "Retrieve fraud insights for a user's manually uploaded document(s).",
+ Example: " plaid-cli credit payroll-income-risk-signals-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/payroll_income/risk_signals/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newCreditRelayCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecondaryClientId string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "relay-create",
+ Short: "Create a relay token to share an Asset Report with a partner client",
+ Example: " plaid-cli credit relay-create --secondary-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/relay/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecondaryClientId != "" {
+ body["secondary_client_id"] = bodySecondaryClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecondaryClientId, "secondary-client-id", "", "The `secondary_client_id` is the client id of the third party with whom you would like to share the relay token.")
+ _ = cmd.MarkFlagRequired("secondary-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "URL to which Plaid will send webhooks when the Secondary Client successfully retrieves an Asset Report by calling...")
+
+ return cmd
+}
+
+func newCreditRelayGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIncludeInsights bool
+ var bodyRelayToken string
+ var bodyReportType string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "relay-get",
+ Short: "Retrieve the reports associated with a relay token that was shared with you",
+ Example: " plaid-cli credit relay-get --relay-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/relay/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIncludeInsights != false {
+ body["include_insights"] = bodyIncludeInsights
+ }
+ if bodyRelayToken != "" {
+ body["relay_token"] = bodyRelayToken
+ }
+ if bodyReportType != "" {
+ body["report_type"] = bodyReportType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().BoolVar(&bodyIncludeInsights, "include-insights", false, "`true` if you would like to retrieve the Asset Report with Insights, `false` otherwise. This field defaults to...")
+ cmd.Flags().StringVar(&bodyRelayToken, "relay-token", "", "The `relay_token` granting access to the report you would like to get.")
+ _ = cmd.MarkFlagRequired("relay-token")
+ cmd.Flags().StringVar(&bodyReportType, "report-type", "", "The report type. It can be `asset`. Income report types are not yet supported.")
+ _ = cmd.MarkFlagRequired("report-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditRelayPdfGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRelayToken string
+ var bodyReportType string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "relay-pdf-get",
+ Short: "Retrieve the pdf reports associated with a relay token that was shared with you (beta)",
+ Example: " plaid-cli credit relay-pdf-get --relay-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/relay/pdf/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRelayToken != "" {
+ body["relay_token"] = bodyRelayToken
+ }
+ if bodyReportType != "" {
+ body["report_type"] = bodyReportType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRelayToken, "relay-token", "", "The `relay_token` granting access to the report you would like to get.")
+ _ = cmd.MarkFlagRequired("relay-token")
+ cmd.Flags().StringVar(&bodyReportType, "report-type", "", "The report type. It can be `asset`. Income report types are not yet supported.")
+ _ = cmd.MarkFlagRequired("report-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditRelayRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRelayToken string
+ var bodyReportType string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "relay-refresh",
+ Short: "Refresh a report of a relay token",
+ Example: " plaid-cli credit relay-refresh --relay-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/relay/refresh"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRelayToken != "" {
+ body["relay_token"] = bodyRelayToken
+ }
+ if bodyReportType != "" {
+ body["report_type"] = bodyReportType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRelayToken, "relay-token", "", "The `relay_token` granting access to the report you would like to refresh.")
+ _ = cmd.MarkFlagRequired("relay-token")
+ cmd.Flags().StringVar(&bodyReportType, "report-type", "", "The report type. It can be `asset`. Income report types are not yet supported.")
+ _ = cmd.MarkFlagRequired("report-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The URL registered to receive webhooks when the report of a relay token has been refreshed.")
+
+ return cmd
+}
+
+func newCreditRelayRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRelayToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "relay-remove",
+ Short: "Remove relay token",
+ Example: " plaid-cli credit relay-remove --relay-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/relay/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRelayToken != "" {
+ body["relay_token"] = bodyRelayToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRelayToken, "relay-token", "", "The `relay_token` you would like to revoke.")
+ _ = cmd.MarkFlagRequired("relay-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditReportAuditCopyRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuditCopyToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "report-audit-copy-remove",
+ Short: "Remove an Audit Copy token",
+ Example: " plaid-cli credit report-audit-copy-remove --audit-copy-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/audit_copy_token/remove"
+ body := map[string]any{}
+ if bodyAuditCopyToken != "" {
+ body["audit_copy_token"] = bodyAuditCopyToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuditCopyToken, "audit-copy-token", "", "The `audit_copy_token` granting access to the Audit Copy you would like to revoke.")
+ _ = cmd.MarkFlagRequired("audit-copy-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newCreditSessionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "sessions-get",
+ Short: "Retrieve Link sessions for your user",
+ Example: " plaid-cli credit sessions-get --user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/credit/sessions/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+ _ = cmd.MarkFlagRequired("user-token")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/dashboard-user.go b/plaid-cli/internal/cli/dashboard-user.go
new file mode 100644
index 00000000..ccf90cf9
--- /dev/null
+++ b/plaid-cli/internal/cli/dashboard-user.go
@@ -0,0 +1,109 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newDashboardUserCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "dashboard-user",
+ Short: "Manage dashboard user",
+ }
+
+ cmd.AddCommand(newDashboardUserGetCmd(flags))
+ cmd.AddCommand(newDashboardUserListCmd(flags))
+ return cmd
+}
+
+func newDashboardUserGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyDashboardUserId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Retrieve a dashboard user",
+ Example: " plaid-cli dashboard-user get --dashboard-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/dashboard_user/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDashboardUserId != "" {
+ body["dashboard_user_id"] = bodyDashboardUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDashboardUserId, "dashboard-user-id", "", "ID of the associated user. To retrieve the email address or other details of the person corresponding to this id,...")
+ _ = cmd.MarkFlagRequired("dashboard-user-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newDashboardUserListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "list",
+ Short: "List dashboard users",
+ Example: " plaid-cli dashboard-user list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/dashboard_user/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/doctor.go b/plaid-cli/internal/cli/doctor.go
new file mode 100644
index 00000000..63e69f88
--- /dev/null
+++ b/plaid-cli/internal/cli/doctor.go
@@ -0,0 +1,121 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "net/http"
+ "strings"
+ "time"
+
+ "github.com/USER/plaid-cli/internal/config"
+ "github.com/spf13/cobra"
+)
+
+func newDoctorCmd(flags *rootFlags) *cobra.Command {
+ return &cobra.Command{
+ Use: "doctor",
+ Short: "Check CLI health",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ report := map[string]any{}
+
+ // Check config
+ cfg, err := config.Load(flags.configPath)
+ if err != nil {
+ report["config"] = fmt.Sprintf("error: %s", err)
+ } else {
+ report["config"] = "ok"
+ report["config_path"] = cfg.Path
+ report["base_url"] = cfg.BaseURL
+ }
+
+ // Check auth
+ if cfg != nil {
+ header := cfg.AuthHeader()
+ if header == "" {
+ report["auth"] = "not configured"
+ } else {
+ report["auth"] = "configured"
+ report["auth_source"] = cfg.AuthSource
+ }
+ }
+
+ // Check API connectivity
+ if cfg != nil && cfg.BaseURL != "" {
+ httpClient := &http.Client{Timeout: 5 * time.Second}
+
+ // Try common health-check paths in order
+ paths := []string{
+ "",
+ "/health",
+ "/healthz",
+ "/status",
+ "/ping",
+ }
+
+ reached := false
+ for _, p := range paths {
+ url := strings.TrimRight(cfg.BaseURL, "/") + p
+ resp, err := httpClient.Get(url)
+ if err != nil {
+ continue
+ }
+ resp.Body.Close()
+ if resp.StatusCode >= 200 && resp.StatusCode < 400 {
+ report["api"] = fmt.Sprintf("reachable (HTTP %d)", resp.StatusCode)
+ reached = true
+ break
+ }
+ }
+
+ if !reached {
+ // Fall back to reporting the base URL status
+ resp, err := httpClient.Get(cfg.BaseURL)
+ if err != nil {
+ report["api"] = fmt.Sprintf("unreachable: %s", err)
+ } else {
+ resp.Body.Close()
+ report["api"] = fmt.Sprintf("degraded (HTTP %d)", resp.StatusCode)
+ }
+ }
+ } else if cfg != nil && cfg.BaseURL == "" {
+ report["api"] = "not configured (set base_url in config file)"
+ }
+
+ report["version"] = version
+
+ if flags.asJSON {
+ return flags.printJSON(cmd, report)
+ }
+
+ // Human-readable output with color
+ w := cmd.OutOrStdout()
+ checkKeys := []struct{ key, label string }{
+ {"config", "Config"},
+ {"auth", "Auth"},
+ {"api", "API"},
+ }
+ for _, ck := range checkKeys {
+ v, ok := report[ck.key]
+ if !ok {
+ continue
+ }
+ s := fmt.Sprintf("%v", v)
+ indicator := green("OK")
+ if strings.Contains(s, "error") || strings.Contains(s, "not configured") || strings.Contains(s, "unreachable") {
+ indicator = red("FAIL")
+ } else if strings.Contains(s, "not ") {
+ indicator = yellow("WARN")
+ }
+ fmt.Fprintf(w, " %s %s: %s\n", indicator, ck.label, s)
+ }
+ // Print info keys without status indicator
+ for _, key := range []string{"config_path", "base_url", "auth_source", "version"} {
+ if v, ok := report[key]; ok {
+ fmt.Fprintf(w, " %s: %v\n", key, v)
+ }
+ }
+ return nil
+ },
+ }
+}
diff --git a/plaid-cli/internal/cli/employers.go b/plaid-cli/internal/cli/employers.go
new file mode 100644
index 00000000..fa0935ad
--- /dev/null
+++ b/plaid-cli/internal/cli/employers.go
@@ -0,0 +1,67 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newEmployersCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "employers",
+ Short: "Manage employers",
+ }
+
+ cmd.AddCommand(newEmployersSearchCmd(flags))
+ return cmd
+}
+
+func newEmployersSearchCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyQuery string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "search",
+ Aliases: []string{"create"},
+ Short: "Search employer database",
+ Example: " plaid-cli employers search --query value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/employers/search"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyQuery != "" {
+ body["query"] = bodyQuery
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyQuery, "query", "", "The employer name to be searched for.")
+ _ = cmd.MarkFlagRequired("query")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/employment.go b/plaid-cli/internal/cli/employment.go
new file mode 100644
index 00000000..0cbfd65d
--- /dev/null
+++ b/plaid-cli/internal/cli/employment.go
@@ -0,0 +1,67 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newEmploymentCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "employment",
+ Short: "Manage employment",
+ }
+
+ cmd.AddCommand(newEmploymentVerificationGetCmd(flags))
+ return cmd
+}
+
+func newEmploymentVerificationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "verification-get",
+ Aliases: []string{"create"},
+ Short: "(Deprecated) Retrieve a summary of an individual's employment information",
+ Example: " plaid-cli employment verification-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/employment/verification/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/fdx.go b/plaid-cli/internal/cli/fdx.go
new file mode 100644
index 00000000..13165dec
--- /dev/null
+++ b/plaid-cli/internal/cli/fdx.go
@@ -0,0 +1,145 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newFdxCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "fdx",
+ Short: "Manage fdx",
+ }
+
+ cmd.AddCommand(newFdxGetRecipientCmd(flags))
+ cmd.AddCommand(newFdxGetRecipientsCmd(flags))
+ cmd.AddCommand(newFdxNotificationsCmd(flags))
+ return cmd
+}
+
+func newFdxGetRecipientCmd(flags *rootFlags) *cobra.Command {
+
+ cmd := &cobra.Command{
+ Use: "get-recipient <recipientId>",
+ Aliases: []string{"get"},
+ Short: "Get Recipient",
+ Example: " plaid-cli fdx get-recipient <recipientId>",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/fdx/recipient/{recipientId}"
+ if len(args) < 1 {
+ return usageErr(fmt.Errorf("recipientId is required"))
+ }
+ path = replacePathParam(path, "recipientId", args[0])
+ params := map[string]string{}
+ data, err := c.Get(path, params)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+
+ return cmd
+}
+
+func newFdxGetRecipientsCmd(flags *rootFlags) *cobra.Command {
+
+ cmd := &cobra.Command{
+ Use: "get-recipients",
+ Aliases: []string{"list"},
+ Short: "Get Recipients",
+ Example: " plaid-cli fdx get-recipients",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/fdx/recipients"
+ params := map[string]string{}
+ data, err := c.Get(path, params)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+
+ return cmd
+}
+
+func newFdxNotificationsCmd(flags *rootFlags) *cobra.Command {
+ var bodyCategory string
+ var bodyNotificationId string
+ var bodyPriority string
+ var bodySentOn string
+ var bodySeverity string
+ var bodyType string
+
+ cmd := &cobra.Command{
+ Use: "notifications",
+ Aliases: []string{"create"},
+ Short: "Webhook receiver for fdx notifications",
+ Example: " plaid-cli fdx notifications --category value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/fdx/notifications"
+ body := map[string]any{}
+ if bodyCategory != "" {
+ body["category"] = bodyCategory
+ }
+ if bodyNotificationId != "" {
+ body["notificationId"] = bodyNotificationId
+ }
+ if bodyPriority != "" {
+ body["priority"] = bodyPriority
+ }
+ if bodySentOn != "" {
+ body["sentOn"] = bodySentOn
+ }
+ if bodySeverity != "" {
+ body["severity"] = bodySeverity
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyCategory, "category", "", "Category of Notification")
+ _ = cmd.MarkFlagRequired("category")
+ cmd.Flags().StringVar(&bodyNotificationId, "notificationid", "", "Id of notification")
+ _ = cmd.MarkFlagRequired("notificationid")
+ cmd.Flags().StringVar(&bodyPriority, "priority", "", "Priority of notification")
+ cmd.Flags().StringVar(&bodySentOn, "senton", "", "ISO 8601 date-time in format 'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]' according to [IETF...")
+ _ = cmd.MarkFlagRequired("senton")
+ cmd.Flags().StringVar(&bodySeverity, "severity", "", "Severity level of notification")
+ cmd.Flags().StringVar(&bodyType, "type", "", "Type of Notification")
+ _ = cmd.MarkFlagRequired("type")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/helpers.go b/plaid-cli/internal/cli/helpers.go
new file mode 100644
index 00000000..852e8ad2
--- /dev/null
+++ b/plaid-cli/internal/cli/helpers.go
@@ -0,0 +1,357 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "os"
+ "sort"
+ "strings"
+ "text/tabwriter"
+
+ "github.com/mattn/go-isatty"
+)
+
+var As = errors.As
+
+// noColor is set by the --no-color flag
+var noColor bool
+
+func colorEnabled() bool {
+ if noColor {
+ return false
+ }
+ if os.Getenv("NO_COLOR") != "" {
+ return false
+ }
+ if os.Getenv("TERM") == "dumb" {
+ return false
+ }
+ return isatty.IsTerminal(os.Stdout.Fd()) || isatty.IsCygwinTerminal(os.Stdout.Fd())
+}
+
+func bold(s string) string {
+ if !colorEnabled() {
+ return s
+ }
+ return "\033[1m" + s + "\033[0m"
+}
+
+func green(s string) string {
+ if !colorEnabled() {
+ return s
+ }
+ return "\033[32m" + s + "\033[0m"
+}
+
+func red(s string) string {
+ if !colorEnabled() {
+ return s
+ }
+ return "\033[31m" + s + "\033[0m"
+}
+
+func yellow(s string) string {
+ if !colorEnabled() {
+ return s
+ }
+ return "\033[33m" + s + "\033[0m"
+}
+
+type cliError struct {
+ code int
+ err error
+}
+
+func (e *cliError) Error() string { return e.err.Error() }
+func (e *cliError) Unwrap() error { return e.err }
+
+func usageErr(err error) error { return &cliError{code: 2, err: err} }
+func notFoundErr(err error) error { return &cliError{code: 3, err: err} }
+func authErr(err error) error { return &cliError{code: 4, err: err} }
+func apiErr(err error) error { return &cliError{code: 5, err: err} }
+func configErr(err error) error { return &cliError{code: 10, err: err} }
+func rateLimitErr(err error) error { return &cliError{code: 7, err: err} }
+
+// classifyAPIError maps API errors to structured exit codes with actionable hints.
+func classifyAPIError(err error) error {
+ msg := err.Error()
+ switch {
+ case strings.Contains(msg, "HTTP 401") || strings.Contains(msg, "HTTP 403"):
+ return authErr(fmt.Errorf("%w\nhint: check your API credentials. Run 'plaid-cli doctor' to verify auth, or set the required environment variable", err))
+ case strings.Contains(msg, "HTTP 404"):
+ return notFoundErr(fmt.Errorf("%w\nhint: resource not found. Run the 'list' command to see available items", err))
+ case strings.Contains(msg, "HTTP 429"):
+ return rateLimitErr(err)
+ default:
+ return apiErr(err)
+ }
+}
+
+func truncate(s string, max int) string {
+ if len(s) <= max {
+ return s
+ }
+ if max <= 3 {
+ return s[:max]
+ }
+ return s[:max-3] + "..."
+}
+
+func firstNonEmpty(items ...string) string {
+ for _, s := range items {
+ if s != "" {
+ return s
+ }
+ }
+ return ""
+}
+
+func newTabWriter(w io.Writer) *tabwriter.Writer {
+ return tabwriter.NewWriter(w, 2, 4, 2, ' ', 0)
+}
+
+func replacePathParam(path, name, value string) string {
+ return strings.ReplaceAll(path, "{"+name+"}", value)
+}
+
+// paginatedGet fetches pages and concatenates array results.
+func paginatedGet(c interface {
+ Get(path string, params map[string]string) (json.RawMessage, error)
+}, path string, params map[string]string, fetchAll bool, cursorParam, nextCursorPath, hasMoreField string) (json.RawMessage, error) {
+ // Clean zero-value params
+ clean := map[string]string{}
+ for k, v := range params {
+ if v != "" && v != "0" && v != "false" {
+ clean[k] = v
+ }
+ }
+
+ if !fetchAll {
+ return c.Get(path, clean)
+ }
+
+ // Fetch all pages
+ var allItems []json.RawMessage
+ page := 0
+ for {
+ page++
+ fmt.Fprintf(os.Stderr, "fetching page %d...\n", page)
+
+ data, err := c.Get(path, clean)
+ if err != nil {
+ return nil, err
+ }
+
+ // Try to extract items array
+ var items []json.RawMessage
+ if json.Unmarshal(data, &items) == nil {
+ allItems = append(allItems, items...)
+ } else {
+ // Response is an object - look for array inside
+ var obj map[string]json.RawMessage
+ if json.Unmarshal(data, &obj) == nil {
+ // Try common data fields
+ for _, field := range []string{"data", "items", "results", "messages", "members", "values"} {
+ if arr, ok := obj[field]; ok {
+ var nested []json.RawMessage
+ if json.Unmarshal(arr, &nested) == nil {
+ allItems = append(allItems, nested...)
+ break
+ }
+ }
+ }
+
+ // Check for next cursor
+ if nextCursorPath != "" {
+ if tokenRaw, ok := obj[nextCursorPath]; ok {
+ var token string
+ if json.Unmarshal(tokenRaw, &token) == nil && token != "" {
+ clean[cursorParam] = token
+ continue
+ }
+ }
+ }
+
+ // Check has_more
+ if hasMoreField != "" {
+ if moreRaw, ok := obj[hasMoreField]; ok {
+ var more bool
+ if json.Unmarshal(moreRaw, &more) == nil && more {
+ continue
+ }
+ }
+ }
+ }
+ // No more pages
+ break
+ }
+
+ // For direct arrays, can't paginate without cursor
+ break
+ }
+
+ fmt.Fprintf(os.Stderr, "fetched %d items across %d pages\n", len(allItems), page)
+ result, _ := json.Marshal(allItems)
+ return json.RawMessage(result), nil
+}
+
+// selectFields is set from the --select flag; used by printOutputFiltered.
+var selectFieldsGlobal string
+
+// printOutputFiltered applies --select field filtering before rendering.
+func printOutputFiltered(w io.Writer, data json.RawMessage, asJSON bool, selectExpr string) error {
+ if selectExpr != "" {
+ data = filterFields(data, selectExpr)
+ }
+ return printOutput(w, data, asJSON)
+}
+
+// filterFields keeps only the specified comma-separated fields from JSON objects/arrays.
+func filterFields(data json.RawMessage, fields string) json.RawMessage {
+ wanted := map[string]bool{}
+ for _, f := range strings.Split(fields, ",") {
+ f = strings.TrimSpace(f)
+ if f != "" {
+ wanted[f] = true
+ }
+ }
+ if len(wanted) == 0 {
+ return data
+ }
+
+ // Try array of objects
+ var items []map[string]json.RawMessage
+ if json.Unmarshal(data, &items) == nil {
+ filtered := make([]map[string]json.RawMessage, len(items))
+ for i, item := range items {
+ m := map[string]json.RawMessage{}
+ for k, v := range item {
+ if wanted[k] {
+ m[k] = v
+ }
+ }
+ filtered[i] = m
+ }
+ out, _ := json.Marshal(filtered)
+ return out
+ }
+
+ // Try single object
+ var obj map[string]json.RawMessage
+ if json.Unmarshal(data, &obj) == nil {
+ m := map[string]json.RawMessage{}
+ for k, v := range obj {
+ if wanted[k] {
+ m[k] = v
+ }
+ }
+ out, _ := json.Marshal(m)
+ return out
+ }
+
+ return data
+}
+
+// printOutput auto-detects arrays and renders as tables, or prints raw JSON for objects.
+func printOutput(w io.Writer, data json.RawMessage, asJSON bool) error {
+ if asJSON {
+ enc := json.NewEncoder(w)
+ enc.SetIndent("", " ")
+ return enc.Encode(data)
+ }
+
+ // Try to detect if response is an array
+ var items []map[string]any
+ if err := json.Unmarshal(data, &items); err == nil && len(items) > 0 {
+ return printAutoTable(w, items)
+ }
+
+ // Single object - pretty print
+ var obj map[string]any
+ if err := json.Unmarshal(data, &obj); err == nil {
+ enc := json.NewEncoder(w)
+ enc.SetIndent("", " ")
+ return enc.Encode(obj)
+ }
+
+ // Fallback: print raw
+ fmt.Fprintln(w, string(data))
+ return nil
+}
+
+func printAutoTable(w io.Writer, items []map[string]any) error {
+ if len(items) == 0 {
+ return nil
+ }
+
+ // Collect headers from first item, prioritize common fields
+ priority := []string{"id", "name", "username", "title", "status", "type", "email", "description"}
+ headerSet := map[string]struct{}{}
+ for k := range items[0] {
+ headerSet[k] = struct{}{}
+ }
+
+ var headers []string
+ for _, p := range priority {
+ if _, ok := headerSet[p]; ok {
+ headers = append(headers, p)
+ delete(headerSet, p)
+ }
+ }
+ // Add remaining headers sorted
+ var rest []string
+ for k := range headerSet {
+ rest = append(rest, k)
+ }
+ sort.Strings(rest)
+ headers = append(headers, rest...)
+
+ // Limit to 6 columns max for readability
+ if len(headers) > 6 {
+ headers = headers[:6]
+ }
+
+ // Build rows
+ rows := make([][]string, 0, len(items))
+ for _, item := range items {
+ row := make([]string, len(headers))
+ for i, h := range headers {
+ v := item[h]
+ switch val := v.(type) {
+ case string:
+ row[i] = truncate(val, 40)
+ case float64:
+ if val == float64(int64(val)) {
+ row[i] = fmt.Sprintf("%d", int64(val))
+ } else {
+ row[i] = fmt.Sprintf("%g", val)
+ }
+ case bool:
+ row[i] = fmt.Sprintf("%t", val)
+ case nil:
+ row[i] = ""
+ default:
+ b, _ := json.Marshal(val)
+ row[i] = truncate(string(b), 40)
+ }
+ }
+ rows = append(rows, row)
+ }
+
+ // Print with tab alignment using tabwriter
+ tw := newTabWriter(w)
+ upperHeaders := make([]string, len(headers))
+ for i, h := range headers {
+ upperHeaders[i] = bold(strings.ToUpper(h))
+ }
+
+ fmt.Fprintln(tw, strings.Join(upperHeaders, "\t"))
+ for _, row := range rows {
+ fmt.Fprintln(tw, strings.Join(row, "\t"))
+ }
+ return tw.Flush()
+}
diff --git a/plaid-cli/internal/cli/identity-verification.go b/plaid-cli/internal/cli/identity-verification.go
new file mode 100644
index 00000000..e2f31b8c
--- /dev/null
+++ b/plaid-cli/internal/cli/identity-verification.go
@@ -0,0 +1,292 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newIdentityVerificationCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "identity-verification",
+ Short: "Manage identity verification",
+ }
+
+ cmd.AddCommand(newIdentityVerificationAutofillCreateCmd(flags))
+ cmd.AddCommand(newIdentityVerificationCreateCmd(flags))
+ cmd.AddCommand(newIdentityVerificationGetCmd(flags))
+ cmd.AddCommand(newIdentityVerificationListCmd(flags))
+ cmd.AddCommand(newIdentityVerificationRetryCmd(flags))
+ return cmd
+}
+
+func newIdentityVerificationAutofillCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIdentityVerificationId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "autofill-create",
+ Short: "Create autofill for an Identity Verification",
+ Example: " plaid-cli identity-verification autofill-create --identity-verification-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity_verification/autofill/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIdentityVerificationId != "" {
+ body["identity_verification_id"] = bodyIdentityVerificationId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIdentityVerificationId, "identity-verification-id", "", "ID of the associated Identity Verification attempt.")
+ _ = cmd.MarkFlagRequired("identity-verification-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIdentityVerificationCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyGaveConsent bool
+ var bodyIsIdempotent bool
+ var bodyIsShareable bool
+ var bodySecret string
+ var bodyTemplateId string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create a new Identity Verification",
+ Example: " plaid-cli identity-verification create --template-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity_verification/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyGaveConsent != false {
+ body["gave_consent"] = bodyGaveConsent
+ }
+ if bodyIsIdempotent != false {
+ body["is_idempotent"] = bodyIsIdempotent
+ }
+ if bodyIsShareable != false {
+ body["is_shareable"] = bodyIsShareable
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTemplateId != "" {
+ body["template_id"] = bodyTemplateId
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().BoolVar(&bodyGaveConsent, "gave-consent", false, "A flag specifying whether the end user has already agreed to a privacy policy specifying that their data will be...")
+ _ = cmd.MarkFlagRequired("gave-consent")
+ cmd.Flags().BoolVar(&bodyIsIdempotent, "is-idempotent", false, "An optional flag specifying how you would like Plaid to handle attempts to create an Identity Verification when an...")
+ cmd.Flags().BoolVar(&bodyIsShareable, "is-shareable", false, "A flag specifying whether you would like Plaid to expose a shareable URL for the verification being created.")
+ _ = cmd.MarkFlagRequired("is-shareable")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTemplateId, "template-id", "", "ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.")
+ _ = cmd.MarkFlagRequired("template-id")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "Unique user identifier, created by calling `/user/create`. Either a `user_id` or the `client_user_id` must be...")
+
+ return cmd
+}
+
+func newIdentityVerificationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIdentityVerificationId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve Identity Verification",
+ Example: " plaid-cli identity-verification get --identity-verification-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity_verification/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIdentityVerificationId != "" {
+ body["identity_verification_id"] = bodyIdentityVerificationId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIdentityVerificationId, "identity-verification-id", "", "ID of the associated Identity Verification attempt.")
+ _ = cmd.MarkFlagRequired("identity-verification-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIdentityVerificationListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyCursor string
+ var bodySecret string
+ var bodyTemplateId string
+
+ cmd := &cobra.Command{
+ Use: "list",
+ Short: "List Identity Verifications",
+ Example: " plaid-cli identity-verification list --template-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity_verification/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTemplateId != "" {
+ body["template_id"] = bodyTemplateId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTemplateId, "template-id", "", "ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.")
+ _ = cmd.MarkFlagRequired("template-id")
+
+ return cmd
+}
+
+func newIdentityVerificationRetryCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyIsShareable bool
+ var bodySecret string
+ var bodyStrategy string
+ var bodyTemplateId string
+
+ cmd := &cobra.Command{
+ Use: "retry",
+ Short: "Retry an Identity Verification",
+ Example: " plaid-cli identity-verification retry --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity_verification/retry"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyIsShareable != false {
+ body["is_shareable"] = bodyIsShareable
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStrategy != "" {
+ body["strategy"] = bodyStrategy
+ }
+ if bodyTemplateId != "" {
+ body["template_id"] = bodyTemplateId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().BoolVar(&bodyIsShareable, "is-shareable", false, "A flag specifying whether you would like Plaid to expose a shareable URL for the verification being retried. If a...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStrategy, "strategy", "", "An instruction specifying what steps the new Identity Verification attempt should require the user to complete:...")
+ _ = cmd.MarkFlagRequired("strategy")
+ cmd.Flags().StringVar(&bodyTemplateId, "template-id", "", "ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.")
+ _ = cmd.MarkFlagRequired("template-id")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/identity.go b/plaid-cli/internal/cli/identity.go
new file mode 100644
index 00000000..5955c260
--- /dev/null
+++ b/plaid-cli/internal/cli/identity.go
@@ -0,0 +1,196 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newIdentityCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "identity",
+ Short: "Manage identity",
+ }
+
+ cmd.AddCommand(newIdentityDocumentsUploadsGetCmd(flags))
+ cmd.AddCommand(newIdentityGetCmd(flags))
+ cmd.AddCommand(newIdentityMatchCmd(flags))
+ cmd.AddCommand(newIdentityRefreshCmd(flags))
+ return cmd
+}
+
+func newIdentityDocumentsUploadsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "documents-uploads-get",
+ Aliases: []string{"create"},
+ Short: "Returns uploaded document identity",
+ Example: " plaid-cli identity documents-uploads-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity/documents/uploads/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIdentityGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve identity data",
+ Example: " plaid-cli identity get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIdentityMatchCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "match",
+ Short: "Retrieve identity match score",
+ Example: " plaid-cli identity match --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity/match"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIdentityRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refresh",
+ Short: "Refresh identity data",
+ Example: " plaid-cli identity refresh --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/identity/refresh"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/income.go b/plaid-cli/internal/cli/income.go
new file mode 100644
index 00000000..8e62a872
--- /dev/null
+++ b/plaid-cli/internal/cli/income.go
@@ -0,0 +1,255 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newIncomeCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "income",
+ Short: "Manage income",
+ }
+
+ cmd.AddCommand(newIncomeVerificationCreateCmd(flags))
+ cmd.AddCommand(newIncomeVerificationDocumentsDownloadCmd(flags))
+ cmd.AddCommand(newIncomeVerificationPaystubsGetCmd(flags))
+ cmd.AddCommand(newIncomeVerificationPrecheckCmd(flags))
+ cmd.AddCommand(newIncomeVerificationTaxformsGetCmd(flags))
+ return cmd
+}
+
+func newIncomeVerificationCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPrecheckId string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "verification-create",
+ Aliases: []string{"create"},
+ Short: "(Deprecated) Create an income verification instance",
+ Example: " plaid-cli income verification-create --webhook value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/income/verification/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPrecheckId != "" {
+ body["precheck_id"] = bodyPrecheckId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPrecheckId, "precheck-id", "", "The ID of a precheck created with `/income/verification/precheck`. Will be used to improve conversion of the income...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The URL endpoint to which Plaid should send webhooks related to the progress of the income verification process.")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newIncomeVerificationDocumentsDownloadCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyDocumentId string
+ var bodyIncomeVerificationId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "verification-documents-download",
+ Short: "(Deprecated) Download the original documents used for income verification",
+ Example: " plaid-cli income verification-documents-download",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/income/verification/documents/download"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDocumentId != "" {
+ body["document_id"] = bodyDocumentId
+ }
+ if bodyIncomeVerificationId != "" {
+ body["income_verification_id"] = bodyIncomeVerificationId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDocumentId, "document-id", "", "The document ID to download. If passed, a single document will be returned in the resulting zip file, rather than...")
+ cmd.Flags().StringVar(&bodyIncomeVerificationId, "income-verification-id", "", "The ID of the verification.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIncomeVerificationPaystubsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyIncomeVerificationId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "verification-paystubs-get",
+ Short: "(Deprecated) Retrieve information from the paystubs used for income verification",
+ Example: " plaid-cli income verification-paystubs-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/income/verification/paystubs/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIncomeVerificationId != "" {
+ body["income_verification_id"] = bodyIncomeVerificationId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIncomeVerificationId, "income-verification-id", "", "The ID of the verification for which to get paystub information.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIncomeVerificationPrecheckCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "verification-precheck",
+ Short: "(Deprecated) Check digital income verification eligibility and optimize conversion",
+ Example: " plaid-cli income verification-precheck",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/income/verification/precheck"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIncomeVerificationTaxformsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyIncomeVerificationId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "verification-taxforms-get",
+ Short: "(Deprecated) Retrieve information from the tax documents used for income verification",
+ Example: " plaid-cli income verification-taxforms-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/income/verification/taxforms/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIncomeVerificationId != "" {
+ body["income_verification_id"] = bodyIncomeVerificationId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIncomeVerificationId, "income-verification-id", "", "The ID of the verification.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/institutions.go b/plaid-cli/internal/cli/institutions.go
new file mode 100644
index 00000000..a6e8c1e8
--- /dev/null
+++ b/plaid-cli/internal/cli/institutions.go
@@ -0,0 +1,159 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newInstitutionsCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "institutions",
+ Short: "Manage institutions",
+ }
+
+ cmd.AddCommand(newInstitutionsGetCmd(flags))
+ cmd.AddCommand(newInstitutionsGetByIdCmd(flags))
+ cmd.AddCommand(newInstitutionsSearchCmd(flags))
+ return cmd
+}
+
+func newInstitutionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyOffset int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Get details of all supported institutions",
+ Example: " plaid-cli institutions get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/institutions/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 0, "The total number of Institutions to return.")
+ _ = cmd.MarkFlagRequired("count")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of Institutions to skip.")
+ _ = cmd.MarkFlagRequired("offset")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newInstitutionsGetByIdCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyInstitutionId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get-by-id",
+ Short: "Get details of an institution",
+ Example: " plaid-cli institutions get-by-id --institution-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/institutions/get_by_id"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyInstitutionId != "" {
+ body["institution_id"] = bodyInstitutionId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyInstitutionId, "institution-id", "", "The ID of the institution to get details about")
+ _ = cmd.MarkFlagRequired("institution-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newInstitutionsSearchCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyQuery string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "search",
+ Short: "Search institutions",
+ Example: " plaid-cli institutions search --query value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/institutions/search"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyQuery != "" {
+ body["query"] = bodyQuery
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyQuery, "query", "", "The search query. Institutions with names matching the query are returned")
+ _ = cmd.MarkFlagRequired("query")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/investments.go b/plaid-cli/internal/cli/investments.go
new file mode 100644
index 00000000..fda9c168
--- /dev/null
+++ b/plaid-cli/internal/cli/investments.go
@@ -0,0 +1,208 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newInvestmentsCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "investments",
+ Short: "Manage investments",
+ }
+
+ cmd.AddCommand(newInvestmentsAuthGetCmd(flags))
+ cmd.AddCommand(newInvestmentsHoldingsGetCmd(flags))
+ cmd.AddCommand(newInvestmentsRefreshCmd(flags))
+ cmd.AddCommand(newInvestmentsTransactionsGetCmd(flags))
+ return cmd
+}
+
+func newInvestmentsAuthGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "auth-get",
+ Aliases: []string{"create"},
+ Short: "Get data needed to authorize an investments transfer",
+ Example: " plaid-cli investments auth-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/investments/auth/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newInvestmentsHoldingsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "holdings-get",
+ Short: "Get Investment holdings",
+ Example: " plaid-cli investments holdings-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/investments/holdings/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newInvestmentsRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refresh",
+ Short: "Refresh investment data",
+ Example: " plaid-cli investments refresh --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/investments/refresh"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newInvestmentsTransactionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyEndDate string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "transactions-get",
+ Short: "Get investment transactions",
+ Example: " plaid-cli investments transactions-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/investments/transactions/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The most recent date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("end-date")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The earliest date for which to fetch transaction history. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("start-date")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/issues.go b/plaid-cli/internal/cli/issues.go
new file mode 100644
index 00000000..27d3736a
--- /dev/null
+++ b/plaid-cli/internal/cli/issues.go
@@ -0,0 +1,168 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newIssuesCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "issues",
+ Short: "Manage issues",
+ }
+
+ cmd.AddCommand(newIssuesGetCmd(flags))
+ cmd.AddCommand(newIssuesSearchCmd(flags))
+ cmd.AddCommand(newIssuesSubscribeCmd(flags))
+ return cmd
+}
+
+func newIssuesGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIssueId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Get an Issue",
+ Example: " plaid-cli issues get --issue-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/issues/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIssueId != "" {
+ body["issue_id"] = bodyIssueId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIssueId, "issue-id", "", "The unique identifier of the issue to retrieve.")
+ _ = cmd.MarkFlagRequired("issue-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIssuesSearchCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyItemId string
+ var bodyLinkSessionId string
+ var bodyLinkSessionRequestId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "search",
+ Short: "Search for an Issue",
+ Example: " plaid-cli issues search",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/issues/search"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyItemId != "" {
+ body["item_id"] = bodyItemId
+ }
+ if bodyLinkSessionId != "" {
+ body["link_session_id"] = bodyLinkSessionId
+ }
+ if bodyLinkSessionRequestId != "" {
+ body["link_session_request_id"] = bodyLinkSessionRequestId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyItemId, "item-id", "", "A unique identifier for the Plaid Item.")
+ cmd.Flags().StringVar(&bodyLinkSessionId, "link-session-id", "", "A unique identifier for the Link session.")
+ cmd.Flags().StringVar(&bodyLinkSessionRequestId, "link-session-request-id", "", "The `request_id` for the Link session that might have had an institution connection issue.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newIssuesSubscribeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIssueId string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "subscribe",
+ Short: "Subscribe to an Issue",
+ Example: " plaid-cli issues subscribe --issue-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/issues/subscribe"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIssueId != "" {
+ body["issue_id"] = bodyIssueId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIssueId, "issue-id", "", "The unique identifier of the issue to subscribe to.")
+ _ = cmd.MarkFlagRequired("issue-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook URL where notifications should be sent when the issue status changes.")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/item.go b/plaid-cli/internal/cli/item.go
new file mode 100644
index 00000000..7a239288
--- /dev/null
+++ b/plaid-cli/internal/cli/item.go
@@ -0,0 +1,542 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newItemCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "item",
+ Short: "Manage item",
+ }
+
+ cmd.AddCommand(newItemAccessTokenInvalidateCmd(flags))
+ cmd.AddCommand(newItemActivityListCmd(flags))
+ cmd.AddCommand(newItemApplicationListCmd(flags))
+ cmd.AddCommand(newItemApplicationScopesUpdateCmd(flags))
+ cmd.AddCommand(newItemApplicationUnlinkCmd(flags))
+ cmd.AddCommand(newItemCreatePublicTokenCmd(flags))
+ cmd.AddCommand(newItemGetCmd(flags))
+ cmd.AddCommand(newItemImportCmd(flags))
+ cmd.AddCommand(newItemPublicTokenExchangeCmd(flags))
+ cmd.AddCommand(newItemRemoveCmd(flags))
+ cmd.AddCommand(newItemWebhookUpdateCmd(flags))
+ return cmd
+}
+
+func newItemAccessTokenInvalidateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "access-token-invalidate",
+ Aliases: []string{"create"},
+ Short: "Invalidate access_token",
+ Example: " plaid-cli item access-token-invalidate --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/access_token/invalidate"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemActivityListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "activity-list",
+ Short: "List a historical log of user consent events",
+ Example: " plaid-cli item activity-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/activity/list"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 50, "Count")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "Cursor used for pagination.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemApplicationListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "application-list",
+ Short: "List a user’s connected applications",
+ Example: " plaid-cli item application-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/application/list"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemApplicationScopesUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyApplicationId string
+ var bodyClientId string
+ var bodyContext string
+ var bodySecret string
+ var bodyState string
+
+ cmd := &cobra.Command{
+ Use: "application-scopes-update",
+ Short: "Update the scopes of access for a particular application",
+ Example: " plaid-cli item application-scopes-update --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/application/scopes/update"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyApplicationId != "" {
+ body["application_id"] = bodyApplicationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyContext != "" {
+ body["context"] = bodyContext
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyState != "" {
+ body["state"] = bodyState
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyApplicationId, "application-id", "", "This field will map to the application ID that is returned from /item/application/list, or provided to the...")
+ _ = cmd.MarkFlagRequired("application-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyContext, "context", "", "An indicator for when scopes are being updated. When scopes are updated via enrollment (i.e. OAuth), the partner...")
+ _ = cmd.MarkFlagRequired("context")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyState, "state", "", "When scopes are updated during enrollment, this field must be populated with the state sent to the partner in the...")
+
+ return cmd
+}
+
+func newItemApplicationUnlinkCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyApplicationId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "application-unlink",
+ Short: "Unlink a user’s connected application",
+ Example: " plaid-cli item application-unlink --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/application/unlink"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyApplicationId != "" {
+ body["application_id"] = bodyApplicationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyApplicationId, "application-id", "", "This field will map to the application ID that is returned from /item/application/list, or provided to the...")
+ _ = cmd.MarkFlagRequired("application-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemCreatePublicTokenCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create-public-token",
+ Short: "Create public token",
+ Example: " plaid-cli item create-public-token --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/public_token/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve an Item",
+ Example: " plaid-cli item get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemImportCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyInstitutionId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "import",
+ Short: "Import Item",
+ Example: " plaid-cli item import",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/import"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyInstitutionId != "" {
+ body["institution_id"] = bodyInstitutionId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyInstitutionId, "institution-id", "", "The Plaid Institution ID associated with the Item.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemPublicTokenExchangeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPublicToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "public-token-exchange",
+ Short: "Exchange public token for an access token",
+ Example: " plaid-cli item public-token-exchange --public-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/public_token/exchange"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPublicToken != "" {
+ body["public_token"] = bodyPublicToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPublicToken, "public-token", "", "Your `public_token`, obtained from the Link `onSuccess` callback or `/sandbox/item/public_token/create`.")
+ _ = cmd.MarkFlagRequired("public-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyReasonCode string
+ var bodyReasonNote string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "remove",
+ Short: "Remove an Item",
+ Example: " plaid-cli item remove --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/remove"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyReasonCode != "" {
+ body["reason_code"] = bodyReasonCode
+ }
+ if bodyReasonNote != "" {
+ body["reason_note"] = bodyReasonNote
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyReasonCode, "reason-code", "", "The reason for removing the item `FRAUD_FIRST_PARTY`: The end user who owns the connected bank account committed...")
+ cmd.Flags().StringVar(&bodyReasonNote, "reason-note", "", "Additional context or details about the reason for removing the item. Personally identifiable information, such as...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newItemWebhookUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "webhook-update",
+ Short: "Update Webhook URL",
+ Example: " plaid-cli item webhook-update --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/item/webhook/update"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The new webhook URL to associate with the Item. To remove a webhook from an Item, set to `null`.")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/liabilities.go b/plaid-cli/internal/cli/liabilities.go
new file mode 100644
index 00000000..a7bd81ed
--- /dev/null
+++ b/plaid-cli/internal/cli/liabilities.go
@@ -0,0 +1,67 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newLiabilitiesCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "liabilities",
+ Short: "Manage liabilities",
+ }
+
+ cmd.AddCommand(newLiabilitiesGetCmd(flags))
+ return cmd
+}
+
+func newLiabilitiesGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Retrieve Liabilities data",
+ Example: " plaid-cli liabilities get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/liabilities/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/link-delivery.go b/plaid-cli/internal/cli/link-delivery.go
new file mode 100644
index 00000000..4d8957e5
--- /dev/null
+++ b/plaid-cli/internal/cli/link-delivery.go
@@ -0,0 +1,109 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newLinkDeliveryCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "link-delivery",
+ Short: "Manage link delivery",
+ }
+
+ cmd.AddCommand(newLinkDeliveryCreateCmd(flags))
+ cmd.AddCommand(newLinkDeliveryGetCmd(flags))
+ return cmd
+}
+
+func newLinkDeliveryCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLinkToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create Hosted Link session",
+ Example: " plaid-cli link-delivery create --link-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/link_delivery/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLinkToken != "" {
+ body["link_token"] = bodyLinkToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLinkToken, "link-token", "", "A `link_token` from a previous invocation of `/link/token/create`.")
+ _ = cmd.MarkFlagRequired("link-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newLinkDeliveryGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLinkDeliverySessionId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Get Hosted Link session",
+ Example: " plaid-cli link-delivery get --link-delivery-session-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/link_delivery/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLinkDeliverySessionId != "" {
+ body["link_delivery_session_id"] = bodyLinkDeliverySessionId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLinkDeliverySessionId, "link-delivery-session-id", "", "The ID for the Hosted Link session from a previous invocation of `/link_delivery/create`.")
+ _ = cmd.MarkFlagRequired("link-delivery-session-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/link.go b/plaid-cli/internal/cli/link.go
new file mode 100644
index 00000000..4764bd41
--- /dev/null
+++ b/plaid-cli/internal/cli/link.go
@@ -0,0 +1,229 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newLinkCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "link",
+ Short: "Manage link",
+ }
+
+ cmd.AddCommand(newLinkOauthCorrelationIdExchangeCmd(flags))
+ cmd.AddCommand(newLinkTokenCreateCmd(flags))
+ cmd.AddCommand(newLinkTokenGetCmd(flags))
+ return cmd
+}
+
+func newLinkOauthCorrelationIdExchangeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLinkCorrelationId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "oauth-correlation-id-exchange",
+ Aliases: []string{"create"},
+ Short: "Exchange the Link Correlation Id for a Link Token",
+ Example: " plaid-cli link oauth-correlation-id-exchange --link-correlation-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/link/oauth/correlation_id/exchange"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLinkCorrelationId != "" {
+ body["link_correlation_id"] = bodyLinkCorrelationId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLinkCorrelationId, "link-correlation-id", "", "A `link_correlation_id` from a received OAuth redirect URI callback")
+ _ = cmd.MarkFlagRequired("link-correlation-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newLinkTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAndroidPackageName string
+ var bodyAppearanceMode string
+ var bodyClientId string
+ var bodyClientName string
+ var bodyConsumerReportPermissiblePurpose string
+ var bodyCraEnabled bool
+ var bodyEnableMultiItemLink bool
+ var bodyFinancekitSupported bool
+ var bodyInstitutionId string
+ var bodyLanguage string
+ var bodyLinkCustomizationName string
+ var bodyRedirectUri string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+ var bodyUserId string
+ var bodyUserToken string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "token-create",
+ Short: "Create Link Token",
+ Example: " plaid-cli link token-create --client-name value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/link/token/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAndroidPackageName != "" {
+ body["android_package_name"] = bodyAndroidPackageName
+ }
+ if bodyAppearanceMode != "" {
+ body["appearance_mode"] = bodyAppearanceMode
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientName != "" {
+ body["client_name"] = bodyClientName
+ }
+ if bodyConsumerReportPermissiblePurpose != "" {
+ body["consumer_report_permissible_purpose"] = bodyConsumerReportPermissiblePurpose
+ }
+ if bodyCraEnabled != false {
+ body["cra_enabled"] = bodyCraEnabled
+ }
+ if bodyEnableMultiItemLink != false {
+ body["enable_multi_item_link"] = bodyEnableMultiItemLink
+ }
+ if bodyFinancekitSupported != false {
+ body["financekit_supported"] = bodyFinancekitSupported
+ }
+ if bodyInstitutionId != "" {
+ body["institution_id"] = bodyInstitutionId
+ }
+ if bodyLanguage != "" {
+ body["language"] = bodyLanguage
+ }
+ if bodyLinkCustomizationName != "" {
+ body["link_customization_name"] = bodyLinkCustomizationName
+ }
+ if bodyRedirectUri != "" {
+ body["redirect_uri"] = bodyRedirectUri
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The `access_token` associated with the Item to update or reference, used when updating, modifying, or accessing an...")
+ cmd.Flags().StringVar(&bodyAndroidPackageName, "android-package-name", "", "The name of your app's Android package. Required if using the `link_token` to initialize Link on Android. Any...")
+ cmd.Flags().StringVar(&bodyAppearanceMode, "appearance-mode", "", "Enum representing the desired appearance mode for Link, used to force light or dark modes or set Link to change...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientName, "client-name", "", "The name of your application, as it should be displayed in Link. Maximum length of 30 characters. If a value longer...")
+ _ = cmd.MarkFlagRequired("client-name")
+ cmd.Flags().StringVar(&bodyConsumerReportPermissiblePurpose, "consumer-report-permissible-purpose", "", "Describes the reason you are generating a Consumer Report for this user. When calling `/link/token/create`, this...")
+ cmd.Flags().BoolVar(&bodyCraEnabled, "cra-enabled", false, "If `true`, request a CRA connection. Defaults to `false`.")
+ cmd.Flags().BoolVar(&bodyEnableMultiItemLink, "enable-multi-item-link", false, "If `true`, enable linking multiple items in the same Link session. Defaults to `false`.")
+ cmd.Flags().BoolVar(&bodyFinancekitSupported, "financekit-supported", false, "If `true`, indicates that client supports linking FinanceKit / AppleCard items. Defaults to `false`.")
+ cmd.Flags().StringVar(&bodyInstitutionId, "institution-id", "", "Used for certain legacy use cases")
+ cmd.Flags().StringVar(&bodyLanguage, "language", "", "The language that Link should be displayed in. When initializing with Identity Verification, this field is not used;...")
+ _ = cmd.MarkFlagRequired("language")
+ cmd.Flags().StringVar(&bodyLinkCustomizationName, "link-customization-name", "", "The name of the Link customization from the Plaid Dashboard to be applied to Link. If not specified, the `default`...")
+ cmd.Flags().StringVar(&bodyRedirectUri, "redirect-uri", "", "A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "A third party user token associated with the current user.")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A `user_id` generated using `/user/create`. Required for integrations that began using Plaid Protect, Multi-Item...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "A user token generated using `/user/create`. Any Item created during the Link session will be associated with the...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The destination URL to which any webhooks should be sent. Note that webhooks for Payment Initiation (e-wallet...")
+
+ return cmd
+}
+
+func newLinkTokenGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLinkToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "token-get",
+ Short: "Get Link Token",
+ Example: " plaid-cli link token-get --link-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/link/token/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLinkToken != "" {
+ body["link_token"] = bodyLinkToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLinkToken, "link-token", "", "A `link_token` from a previous invocation of `/link/token/create`")
+ _ = cmd.MarkFlagRequired("link-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/network-insights.go b/plaid-cli/internal/cli/network-insights.go
new file mode 100644
index 00000000..8251973e
--- /dev/null
+++ b/plaid-cli/internal/cli/network-insights.go
@@ -0,0 +1,61 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newNetworkInsightsCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "network-insights",
+ Short: "Manage network insights",
+ }
+
+ cmd.AddCommand(newNetworkInsightsReportGetCmd(flags))
+ return cmd
+}
+
+func newNetworkInsightsReportGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "report-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve network insights for the provided `access_tokens`",
+ Example: " plaid-cli network-insights report-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/network_insights/report/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/network.go b/plaid-cli/internal/cli/network.go
new file mode 100644
index 00000000..b58a082e
--- /dev/null
+++ b/plaid-cli/internal/cli/network.go
@@ -0,0 +1,66 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newNetworkCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "network",
+ Short: "Manage network",
+ }
+
+ cmd.AddCommand(newNetworkStatusGetCmd(flags))
+ return cmd
+}
+
+func newNetworkStatusGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyTemplateId string
+
+ cmd := &cobra.Command{
+ Use: "status-get",
+ Aliases: []string{"create"},
+ Short: "Check a user's Plaid Network status",
+ Example: " plaid-cli network status-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/network/status/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTemplateId != "" {
+ body["template_id"] = bodyTemplateId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTemplateId, "template-id", "", "The id of a template defined in Plaid Dashboard. This field is used if you have additional criteria that you want to...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/oauth.go b/plaid-cli/internal/cli/oauth.go
new file mode 100644
index 00000000..06887e7b
--- /dev/null
+++ b/plaid-cli/internal/cli/oauth.go
@@ -0,0 +1,198 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newOauthCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "oauth",
+ Short: "Manage oauth",
+ }
+
+ cmd.AddCommand(newOauthIntrospectCmd(flags))
+ cmd.AddCommand(newOauthRevokeCmd(flags))
+ cmd.AddCommand(newOauthTokenCmd(flags))
+ return cmd
+}
+
+func newOauthIntrospectCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientSecret string
+ var bodySecret string
+ var bodyToken string
+
+ cmd := &cobra.Command{
+ Use: "introspect",
+ Aliases: []string{"create"},
+ Short: "Get metadata about an OAuth token",
+ Example: " plaid-cli oauth introspect --token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/oauth/introspect"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientSecret != "" {
+ body["client_secret"] = bodyClientSecret
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyToken != "" {
+ body["token"] = bodyToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientSecret, "client-secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyToken, "token", "", "An OAuth token of any type (`refresh_token`, `access_token`, etc)")
+ _ = cmd.MarkFlagRequired("token")
+
+ return cmd
+}
+
+func newOauthRevokeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientSecret string
+ var bodySecret string
+ var bodyToken string
+
+ cmd := &cobra.Command{
+ Use: "revoke",
+ Short: "Revoke an OAuth token",
+ Example: " plaid-cli oauth revoke --token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/oauth/revoke"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientSecret != "" {
+ body["client_secret"] = bodyClientSecret
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyToken != "" {
+ body["token"] = bodyToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientSecret, "client-secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyToken, "token", "", "An OAuth token of any type (`refresh_token`, `access_token`, etc)")
+ _ = cmd.MarkFlagRequired("token")
+
+ return cmd
+}
+
+func newOauthTokenCmd(flags *rootFlags) *cobra.Command {
+ var bodyAudience string
+ var bodyClientId string
+ var bodyClientSecret string
+ var bodyGrantType string
+ var bodyRefreshToken string
+ var bodyResource string
+ var bodyScope string
+ var bodySecret string
+ var bodySubjectToken string
+ var bodySubjectTokenType string
+
+ cmd := &cobra.Command{
+ Use: "token",
+ Short: "Create or refresh an OAuth access token",
+ Example: " plaid-cli oauth token --grant-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/oauth/token"
+ body := map[string]any{}
+ if bodyAudience != "" {
+ body["audience"] = bodyAudience
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientSecret != "" {
+ body["client_secret"] = bodyClientSecret
+ }
+ if bodyGrantType != "" {
+ body["grant_type"] = bodyGrantType
+ }
+ if bodyRefreshToken != "" {
+ body["refresh_token"] = bodyRefreshToken
+ }
+ if bodyResource != "" {
+ body["resource"] = bodyResource
+ }
+ if bodyScope != "" {
+ body["scope"] = bodyScope
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySubjectToken != "" {
+ body["subject_token"] = bodySubjectToken
+ }
+ if bodySubjectTokenType != "" {
+ body["subject_token_type"] = bodySubjectTokenType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAudience, "audience", "", "Used when exchanging a token. The meaning depends on the `subject_token_type`: - For `urn:plaid:params:tokens:user`:...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientSecret, "client-secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyGrantType, "grant-type", "", "The type of OAuth grant being requested: `client_credentials` allows exchanging a client id and client secret for a...")
+ _ = cmd.MarkFlagRequired("grant-type")
+ cmd.Flags().StringVar(&bodyRefreshToken, "refresh-token", "", "Refresh token for OAuth")
+ cmd.Flags().StringVar(&bodyResource, "resource", "", "URI of the target resource server")
+ cmd.Flags().StringVar(&bodyScope, "scope", "", "A JSON string containing a space-separated list of scopes associated with this token, in the format described in...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySubjectToken, "subject-token", "", "Token representing the subject. The `subject token` must be an OAuth refresh token issued from the `/oauth/token`...")
+ cmd.Flags().StringVar(&bodySubjectTokenType, "subject-token-type", "", "The type of the subject token. `urn:plaid:params:tokens:user` allows exchanging a Plaid-issued user token for an...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/partner.go b/plaid-cli/internal/cli/partner.go
new file mode 100644
index 00000000..97de2945
--- /dev/null
+++ b/plaid-cli/internal/cli/partner.go
@@ -0,0 +1,284 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newPartnerCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "partner",
+ Short: "Manage partner",
+ }
+
+ cmd.AddCommand(newPartnerCustomerCreateCmd(flags))
+ cmd.AddCommand(newPartnerCustomerEnableCmd(flags))
+ cmd.AddCommand(newPartnerCustomerGetCmd(flags))
+ cmd.AddCommand(newPartnerCustomerOauthInstitutionsGetCmd(flags))
+ cmd.AddCommand(newPartnerCustomerRemoveCmd(flags))
+ return cmd
+}
+
+func newPartnerCustomerCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyApplicationName string
+ var bodyClientId string
+ var bodyCompanyName string
+ var bodyCreateLinkCustomization bool
+ var bodyIsBankAddendumCompleted bool
+ var bodyIsDiligenceAttested bool
+ var bodyLegalEntityName string
+ var bodyLogo string
+ var bodyRegistrationNumber string
+ var bodySecret string
+ var bodyWebsite string
+
+ cmd := &cobra.Command{
+ Use: "customer-create",
+ Aliases: []string{"create"},
+ Short: "Creates a new end customer for a Plaid reseller.",
+ Example: " plaid-cli partner customer-create --application-name value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/partner/customer/create"
+ body := map[string]any{}
+ if bodyApplicationName != "" {
+ body["application_name"] = bodyApplicationName
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCompanyName != "" {
+ body["company_name"] = bodyCompanyName
+ }
+ if bodyCreateLinkCustomization != false {
+ body["create_link_customization"] = bodyCreateLinkCustomization
+ }
+ if bodyIsBankAddendumCompleted != false {
+ body["is_bank_addendum_completed"] = bodyIsBankAddendumCompleted
+ }
+ if bodyIsDiligenceAttested != false {
+ body["is_diligence_attested"] = bodyIsDiligenceAttested
+ }
+ if bodyLegalEntityName != "" {
+ body["legal_entity_name"] = bodyLegalEntityName
+ }
+ if bodyLogo != "" {
+ body["logo"] = bodyLogo
+ }
+ if bodyRegistrationNumber != "" {
+ body["registration_number"] = bodyRegistrationNumber
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebsite != "" {
+ body["website"] = bodyWebsite
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyApplicationName, "application-name", "", "The name of the end customer's application. This will be shown to end users when they go through the Plaid Link...")
+ _ = cmd.MarkFlagRequired("application-name")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCompanyName, "company-name", "", "The company name of the end customer being created. This will be used to display the end customer in the Plaid...")
+ _ = cmd.MarkFlagRequired("company-name")
+ cmd.Flags().BoolVar(&bodyCreateLinkCustomization, "create-link-customization", false, "If `true`, the end customer's default Link customization will be set to match the partner's. You can always change...")
+ cmd.Flags().BoolVar(&bodyIsBankAddendumCompleted, "is-bank-addendum-completed", false, "Denotes whether the partner has forwarded the Plaid bank addendum to the end customer.")
+ _ = cmd.MarkFlagRequired("is-bank-addendum-completed")
+ cmd.Flags().BoolVar(&bodyIsDiligenceAttested, "is-diligence-attested", false, "Denotes whether or not the partner has completed attestation of diligence for the end customer to be created.")
+ _ = cmd.MarkFlagRequired("is-diligence-attested")
+ cmd.Flags().StringVar(&bodyLegalEntityName, "legal-entity-name", "", "The end customer's legal name. This will be shared with financial institutions as part of the OAuth registration...")
+ _ = cmd.MarkFlagRequired("legal-entity-name")
+ cmd.Flags().StringVar(&bodyLogo, "logo", "", "Base64-encoded representation of the end customer's logo. Must be a PNG of size 1024x1024 under 4MB. The logo will...")
+ cmd.Flags().StringVar(&bodyRegistrationNumber, "registration-number", "", "The unique identifier assigned to a financial institution by regulatory authorities, if applicable. For banks, this...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebsite, "website", "", "The end customer's website.")
+ _ = cmd.MarkFlagRequired("website")
+
+ return cmd
+}
+
+func newPartnerCustomerEnableCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "customer-enable",
+ Short: "Enables a Plaid reseller's end customer in the Production environment.",
+ Example: " plaid-cli partner customer-enable --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/partner/customer/enable"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "End customer client id")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPartnerCustomerGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "customer-get",
+ Short: "Returns a Plaid reseller's end customer.",
+ Example: " plaid-cli partner customer-get --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/partner/customer/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "End customer client id")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPartnerCustomerOauthInstitutionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "customer-oauth-institutions-get",
+ Short: "Returns OAuth-institution registration information for a given end customer.",
+ Example: " plaid-cli partner customer-oauth-institutions-get --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/partner/customer/oauth_institutions/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "End customer client id")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPartnerCustomerRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndCustomerClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "customer-remove",
+ Short: "Removes a Plaid reseller's end customer.",
+ Example: " plaid-cli partner customer-remove --end-customer-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/partner/customer/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndCustomerClientId != "" {
+ body["end_customer_client_id"] = bodyEndCustomerClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndCustomerClientId, "end-customer-client-id", "", "The `client_id` of the end customer to be removed.")
+ _ = cmd.MarkFlagRequired("end-customer-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/payment-initiation.go b/plaid-cli/internal/cli/payment-initiation.go
new file mode 100644
index 00000000..f20d1ed7
--- /dev/null
+++ b/plaid-cli/internal/cli/payment-initiation.go
@@ -0,0 +1,608 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newPaymentInitiationCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "payment-initiation",
+ Short: "Manage payment initiation",
+ }
+
+ cmd.AddCommand(newPaymentInitiationConsentCreateCmd(flags))
+ cmd.AddCommand(newPaymentInitiationConsentGetCmd(flags))
+ cmd.AddCommand(newPaymentInitiationConsentPaymentExecuteCmd(flags))
+ cmd.AddCommand(newPaymentInitiationConsentRevokeCmd(flags))
+ cmd.AddCommand(newPaymentInitiationCreatePaymentTokenCmd(flags))
+ cmd.AddCommand(newPaymentInitiationPaymentCreateCmd(flags))
+ cmd.AddCommand(newPaymentInitiationPaymentGetCmd(flags))
+ cmd.AddCommand(newPaymentInitiationPaymentListCmd(flags))
+ cmd.AddCommand(newPaymentInitiationPaymentReverseCmd(flags))
+ cmd.AddCommand(newPaymentInitiationRecipientCreateCmd(flags))
+ cmd.AddCommand(newPaymentInitiationRecipientGetCmd(flags))
+ cmd.AddCommand(newPaymentInitiationRecipientListCmd(flags))
+ return cmd
+}
+
+func newPaymentInitiationConsentCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRecipientId string
+ var bodyReference string
+ var bodySecret string
+ var bodyType string
+
+ cmd := &cobra.Command{
+ Use: "consent-create",
+ Aliases: []string{"create"},
+ Short: "Create payment consent",
+ Example: " plaid-cli payment-initiation consent-create --recipient-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/consent/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRecipientId != "" {
+ body["recipient_id"] = bodyRecipientId
+ }
+ if bodyReference != "" {
+ body["reference"] = bodyReference
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRecipientId, "recipient-id", "", "The ID of the recipient the payment consent is for. The created consent can be used to transfer funds to this...")
+ _ = cmd.MarkFlagRequired("recipient-id")
+ cmd.Flags().StringVar(&bodyReference, "reference", "", "A reference for the payment consent. This must be an alphanumeric string with at most 18 characters and must not...")
+ _ = cmd.MarkFlagRequired("reference")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "Payment consent type. Defines possible use case for payments made with the given consent. `SWEEPING`: Allows moving...")
+
+ return cmd
+}
+
+func newPaymentInitiationConsentGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyConsentId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "consent-get",
+ Short: "Get payment consent",
+ Example: " plaid-cli payment-initiation consent-get --consent-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/consent/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyConsentId != "" {
+ body["consent_id"] = bodyConsentId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyConsentId, "consent-id", "", "The `consent_id` returned from `/payment_initiation/consent/create`.")
+ _ = cmd.MarkFlagRequired("consent-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationConsentPaymentExecuteCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyConsentId string
+ var bodyIdempotencyKey string
+ var bodyProcessingMode string
+ var bodyReference string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "consent-payment-execute",
+ Short: "Execute a single payment using consent",
+ Example: " plaid-cli payment-initiation consent-payment-execute --consent-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/consent/payment/execute"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyConsentId != "" {
+ body["consent_id"] = bodyConsentId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyProcessingMode != "" {
+ body["processing_mode"] = bodyProcessingMode
+ }
+ if bodyReference != "" {
+ body["reference"] = bodyReference
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyConsentId, "consent-id", "", "The consent ID.")
+ _ = cmd.MarkFlagRequired("consent-id")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique consent payment. Maximum of 128 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyProcessingMode, "processing-mode", "", "Decides the mode under which the payment processing should be performed, using `IMMEDIATE` as default. `IMMEDIATE`:...")
+ cmd.Flags().StringVar(&bodyReference, "reference", "", "A reference for the payment. This must be an alphanumeric string with at most 18 characters and must not contain any...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationConsentRevokeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyConsentId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "consent-revoke",
+ Short: "Revoke payment consent",
+ Example: " plaid-cli payment-initiation consent-revoke --consent-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/consent/revoke"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyConsentId != "" {
+ body["consent_id"] = bodyConsentId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyConsentId, "consent-id", "", "The consent ID.")
+ _ = cmd.MarkFlagRequired("consent-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationCreatePaymentTokenCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPaymentId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create-payment-token",
+ Short: "Create payment token",
+ Example: " plaid-cli payment-initiation create-payment-token --payment-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/payment/token/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentId != "" {
+ body["payment_id"] = bodyPaymentId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentId, "payment-id", "", "The `payment_id` returned from `/payment_initiation/payment/create`.")
+ _ = cmd.MarkFlagRequired("payment-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationPaymentCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRecipientId string
+ var bodyReference string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "payment-create",
+ Short: "Create a payment",
+ Example: " plaid-cli payment-initiation payment-create --recipient-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/payment/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRecipientId != "" {
+ body["recipient_id"] = bodyRecipientId
+ }
+ if bodyReference != "" {
+ body["reference"] = bodyReference
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRecipientId, "recipient-id", "", "The ID of the recipient the payment is for.")
+ _ = cmd.MarkFlagRequired("recipient-id")
+ cmd.Flags().StringVar(&bodyReference, "reference", "", "A reference for the payment. This must be an alphanumeric string with at most 18 characters and must not contain any...")
+ _ = cmd.MarkFlagRequired("reference")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationPaymentGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPaymentId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "payment-get",
+ Short: "Get payment details",
+ Example: " plaid-cli payment-initiation payment-get --payment-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/payment/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentId != "" {
+ body["payment_id"] = bodyPaymentId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentId, "payment-id", "", "The `payment_id` returned from `/payment_initiation/payment/create`.")
+ _ = cmd.MarkFlagRequired("payment-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationPaymentListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyConsentId string
+ var bodyCount int
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "payment-list",
+ Short: "List payments",
+ Example: " plaid-cli payment-initiation payment-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/payment/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyConsentId != "" {
+ body["consent_id"] = bodyConsentId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyConsentId, "consent-id", "", "The consent ID. If specified, only payments, executed using this consent, will be returned.")
+ cmd.Flags().IntVar(&bodyCount, "count", 10, "The maximum number of payments to return. If `count` is not specified, a maximum of 10 payments will be returned,...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "A string in RFC 3339 format (i.e. '2019-12-06T22:35:49Z'). Only payments created before the cursor will be returned.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationPaymentReverseCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCounterpartyDateOfBirth string
+ var bodyIdempotencyKey string
+ var bodyPaymentId string
+ var bodyReference string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "payment-reverse",
+ Short: "Reverse an existing payment",
+ Example: " plaid-cli payment-initiation payment-reverse --idempotency-key value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/payment/reverse"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCounterpartyDateOfBirth != "" {
+ body["counterparty_date_of_birth"] = bodyCounterpartyDateOfBirth
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyPaymentId != "" {
+ body["payment_id"] = bodyPaymentId
+ }
+ if bodyReference != "" {
+ body["reference"] = bodyReference
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCounterpartyDateOfBirth, "counterparty-date-of-birth", "", "The counterparty's birthdate, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format.")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique wallet transaction. Maximum of 128 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyPaymentId, "payment-id", "", "The ID of the payment to reverse")
+ _ = cmd.MarkFlagRequired("payment-id")
+ cmd.Flags().StringVar(&bodyReference, "reference", "", "A reference for the refund. This must be an alphanumeric string with 6 to 18 characters and must not contain any...")
+ _ = cmd.MarkFlagRequired("reference")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationRecipientCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIban string
+ var bodyName string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "recipient-create",
+ Short: "Create payment recipient",
+ Example: " plaid-cli payment-initiation recipient-create --name value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/recipient/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIban != "" {
+ body["iban"] = bodyIban
+ }
+ if bodyName != "" {
+ body["name"] = bodyName
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIban, "iban", "", "The International Bank Account Number (IBAN) for the recipient. If BACS data is not provided, an IBAN is required.")
+ cmd.Flags().StringVar(&bodyName, "name", "", "The name of the recipient. We recommend using strings of length 18 or less and avoid special characters to ensure...")
+ _ = cmd.MarkFlagRequired("name")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationRecipientGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRecipientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "recipient-get",
+ Short: "Get payment recipient",
+ Example: " plaid-cli payment-initiation recipient-get --recipient-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/recipient/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRecipientId != "" {
+ body["recipient_id"] = bodyRecipientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRecipientId, "recipient-id", "", "The ID of the recipient")
+ _ = cmd.MarkFlagRequired("recipient-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentInitiationRecipientListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "recipient-list",
+ Short: "List payment recipients",
+ Example: " plaid-cli payment-initiation recipient-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_initiation/recipient/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 100, "The maximum number of recipients to return. If `count` is not specified, a maximum of 100 recipients will be...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "A value representing the latest recipient to be included in the response. Set this from `next_cursor` received from...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/payment-profile.go b/plaid-cli/internal/cli/payment-profile.go
new file mode 100644
index 00000000..95eb1f7b
--- /dev/null
+++ b/plaid-cli/internal/cli/payment-profile.go
@@ -0,0 +1,146 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newPaymentProfileCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "payment-profile",
+ Short: "Manage payment profile",
+ }
+
+ cmd.AddCommand(newPaymentProfileCreateCmd(flags))
+ cmd.AddCommand(newPaymentProfileGetCmd(flags))
+ cmd.AddCommand(newPaymentProfileRemoveCmd(flags))
+ return cmd
+}
+
+func newPaymentProfileCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create payment profile",
+ Example: " plaid-cli payment-profile create",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_profile/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentProfileGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPaymentProfileToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Get payment profile",
+ Example: " plaid-cli payment-profile get --payment-profile-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_profile/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentProfileToken != "" {
+ body["payment_profile_token"] = bodyPaymentProfileToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentProfileToken, "payment-profile-token", "", "A payment profile token associated with the Payment Profile data that is being requested.")
+ _ = cmd.MarkFlagRequired("payment-profile-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newPaymentProfileRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPaymentProfileToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "remove",
+ Short: "Remove payment profile",
+ Example: " plaid-cli payment-profile remove --payment-profile-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/payment_profile/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentProfileToken != "" {
+ body["payment_profile_token"] = bodyPaymentProfileToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentProfileToken, "payment-profile-token", "", "A payment profile token associated with the Payment Profile data that is being requested.")
+ _ = cmd.MarkFlagRequired("payment-profile-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/processor.go b/plaid-cli/internal/cli/processor.go
new file mode 100644
index 00000000..3ac4a368
--- /dev/null
+++ b/plaid-cli/internal/cli/processor.go
@@ -0,0 +1,1214 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newProcessorCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "processor",
+ Short: "Manage processor",
+ }
+
+ cmd.AddCommand(newProcessorAccountGetCmd(flags))
+ cmd.AddCommand(newProcessorApexTokenCreateCmd(flags))
+ cmd.AddCommand(newProcessorAuthGetCmd(flags))
+ cmd.AddCommand(newProcessorBalanceGetCmd(flags))
+ cmd.AddCommand(newProcessorBankTransferCreateCmd(flags))
+ cmd.AddCommand(newProcessorIdentityGetCmd(flags))
+ cmd.AddCommand(newProcessorIdentityMatchCmd(flags))
+ cmd.AddCommand(newProcessorInvestmentsHoldingsGetCmd(flags))
+ cmd.AddCommand(newProcessorInvestmentsTransactionsGetCmd(flags))
+ cmd.AddCommand(newProcessorLiabilitiesGetCmd(flags))
+ cmd.AddCommand(newProcessorSignalDecisionReportCmd(flags))
+ cmd.AddCommand(newProcessorSignalEvaluateCmd(flags))
+ cmd.AddCommand(newProcessorSignalPrepareCmd(flags))
+ cmd.AddCommand(newProcessorSignalReturnReportCmd(flags))
+ cmd.AddCommand(newProcessorStripeBankAccountTokenCreateCmd(flags))
+ cmd.AddCommand(newProcessorTokenCreateCmd(flags))
+ cmd.AddCommand(newProcessorTokenPermissionsGetCmd(flags))
+ cmd.AddCommand(newProcessorTokenPermissionsSetCmd(flags))
+ cmd.AddCommand(newProcessorTokenWebhookUpdateCmd(flags))
+ cmd.AddCommand(newProcessorTransactionsGetCmd(flags))
+ cmd.AddCommand(newProcessorTransactionsRecurringGetCmd(flags))
+ cmd.AddCommand(newProcessorTransactionsRefreshCmd(flags))
+ cmd.AddCommand(newProcessorTransactionsSyncCmd(flags))
+ return cmd
+}
+
+func newProcessorAccountGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "account-get",
+ Aliases: []string{"create"},
+ Short: "Retrieve the account associated with a processor token",
+ Example: " plaid-cli processor account-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/account/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorApexTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "apex-token-create",
+ Short: "Create Apex bank account token",
+ Example: " plaid-cli processor apex-token-create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/apex/processor_token/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The `account_id` value obtained from the `onSuccess` callback in Link")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorAuthGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "auth-get",
+ Short: "Retrieve Auth data",
+ Example: " plaid-cli processor auth-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/auth/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorBalanceGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "balance-get",
+ Short: "Retrieve Balance data",
+ Example: " plaid-cli processor balance-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/balance/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorBankTransferCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAchClass string
+ var bodyAmount string
+ var bodyClientId string
+ var bodyCustomTag string
+ var bodyDescription string
+ var bodyIdempotencyKey string
+ var bodyIsoCurrencyCode string
+ var bodyNetwork string
+ var bodyOriginationAccountId string
+ var bodyProcessorToken string
+ var bodySecret string
+ var bodyType string
+
+ cmd := &cobra.Command{
+ Use: "bank-transfer-create",
+ Short: "Create a bank transfer as a processor",
+ Example: " plaid-cli processor bank-transfer-create --amount value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/bank_transfer/create"
+ body := map[string]any{}
+ if bodyAchClass != "" {
+ body["ach_class"] = bodyAchClass
+ }
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCustomTag != "" {
+ body["custom_tag"] = bodyCustomTag
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAchClass, "ach-class", "", "Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC...")
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the bank transfer (decimal string with two digits of precision e.g. '10.00').")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCustomTag, "custom-tag", "", "An arbitrary string provided by the client for storage with the bank transfer. May be up to 100 characters.")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "The transfer description. Maximum of 10 characters.")
+ _ = cmd.MarkFlagRequired("description")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique bank transfer. Maximum of 50 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "The currency of the transfer amount – should be set to 'USD'.")
+ _ = cmd.MarkFlagRequired("iso-currency-code")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "", "The network or rails used for the transfer. Valid options are `ach`, `same-day-ach`, or `wire`.")
+ _ = cmd.MarkFlagRequired("network")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "The type of bank transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into the...")
+ _ = cmd.MarkFlagRequired("type")
+
+ return cmd
+}
+
+func newProcessorIdentityGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "identity-get",
+ Short: "Retrieve Identity data",
+ Example: " plaid-cli processor identity-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/identity/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorIdentityMatchCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "identity-match",
+ Short: "Retrieve identity match score",
+ Example: " plaid-cli processor identity-match --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/identity/match"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorInvestmentsHoldingsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "investments-holdings-get",
+ Short: "Retrieve Investment Holdings",
+ Example: " plaid-cli processor investments-holdings-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/investments/holdings/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorInvestmentsTransactionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndDate string
+ var bodyProcessorToken string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "investments-transactions-get",
+ Short: "Get investment transactions data",
+ Example: " plaid-cli processor investments-transactions-get --end-date value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/investments/transactions/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("end-date")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("start-date")
+
+ return cmd
+}
+
+func newProcessorLiabilitiesGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "liabilities-get",
+ Short: "Retrieve Liabilities data",
+ Example: " plaid-cli processor liabilities-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/liabilities/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorSignalDecisionReportCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmountInstantlyAvailable float64
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyDaysFundsOnHold int
+ var bodyDecisionOutcome string
+ var bodyInitiated bool
+ var bodyPaymentMethod string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "signal-decision-report",
+ Short: "Report whether you initiated an ACH transaction",
+ Example: " plaid-cli processor signal-decision-report --client-transaction-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/signal/decision/report"
+ body := map[string]any{}
+ if bodyAmountInstantlyAvailable != 0.0 {
+ body["amount_instantly_available"] = bodyAmountInstantlyAvailable
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyDaysFundsOnHold != 0 {
+ body["days_funds_on_hold"] = bodyDaysFundsOnHold
+ }
+ if bodyDecisionOutcome != "" {
+ body["decision_outcome"] = bodyDecisionOutcome
+ }
+ if bodyInitiated != false {
+ body["initiated"] = bodyInitiated
+ }
+ if bodyPaymentMethod != "" {
+ body["payment_method"] = bodyPaymentMethod
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().Float64Var(&bodyAmountInstantlyAvailable, "amount-instantly-available", 0.0, "The amount (in USD) made available to your customers instantly following the debit transaction. It could be a...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().IntVar(&bodyDaysFundsOnHold, "days-funds-on-hold", 0, "The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to...")
+ cmd.Flags().StringVar(&bodyDecisionOutcome, "decision-outcome", "", "The payment decision from the risk assessment. `APPROVE`: approve the transaction without requiring further actions...")
+ cmd.Flags().BoolVar(&bodyInitiated, "initiated", false, "`true` if the ACH transaction was initiated, `false` otherwise. This field must be returned as a boolean. If...")
+ _ = cmd.MarkFlagRequired("initiated")
+ cmd.Flags().StringVar(&bodyPaymentMethod, "payment-method", "", "The payment method to complete the transaction after the risk assessment. It may be different from the default...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorSignalEvaluateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmount float64
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyClientUserId string
+ var bodyDefaultPaymentMethod string
+ var bodyIsRecurring bool
+ var bodyProcessorToken string
+ var bodyRulesetKey string
+ var bodySecret string
+ var bodyUserPresent bool
+
+ cmd := &cobra.Command{
+ Use: "signal-evaluate",
+ Short: "Evaluate a planned ACH transaction",
+ Example: " plaid-cli processor signal-evaluate --client-transaction-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/signal/evaluate"
+ body := map[string]any{}
+ if bodyAmount != 0.0 {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyDefaultPaymentMethod != "" {
+ body["default_payment_method"] = bodyDefaultPaymentMethod
+ }
+ if bodyIsRecurring != false {
+ body["is_recurring"] = bodyIsRecurring
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodyRulesetKey != "" {
+ body["ruleset_key"] = bodyRulesetKey
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserPresent != false {
+ body["user_present"] = bodyUserPresent
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().Float64Var(&bodyAmount, "amount", 0.0, "The transaction amount, in USD (e.g. `102.05`)")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal...")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with...")
+ cmd.Flags().StringVar(&bodyDefaultPaymentMethod, "default-payment-method", "", "The default ACH or non-ACH payment method to complete the transaction. `SAME_DAY_ACH`: Same Day ACH by Nacha. The...")
+ cmd.Flags().BoolVar(&bodyIsRecurring, "is-recurring", false, "**true** if the ACH transaction is a recurring transaction; **false** otherwise")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodyRulesetKey, "ruleset-key", "", "The key of the ruleset to use for this transaction. You can configure a ruleset using the Plaid Dashboard, under...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().BoolVar(&bodyUserPresent, "user-present", false, "`true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false`...")
+
+ return cmd
+}
+
+func newProcessorSignalPrepareCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "signal-prepare",
+ Short: "Opt-in a processor token to Signal",
+ Example: " plaid-cli processor signal-prepare --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/signal/prepare"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorSignalReturnReportCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyProcessorToken string
+ var bodyReturnCode string
+ var bodyReturnedAt string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "signal-return-report",
+ Short: "Report a return for an ACH transaction",
+ Example: " plaid-cli processor signal-return-report --client-transaction-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/signal/return/report"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodyReturnCode != "" {
+ body["return_code"] = bodyReturnCode
+ }
+ if bodyReturnedAt != "" {
+ body["returned_at"] = bodyReturnedAt
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "Must be the same as the `client_transaction_id` supplied when calling `/processor/signal/evaluate`")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodyReturnCode, "return-code", "", "Must be a valid ACH return code (e.g. 'R01') If formatted incorrectly, this will result in an...")
+ _ = cmd.MarkFlagRequired("return-code")
+ cmd.Flags().StringVar(&bodyReturnedAt, "returned-at", "", "Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`).")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorStripeBankAccountTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "stripe-bank-account-token-create",
+ Short: "Create Stripe bank account token",
+ Example: " plaid-cli processor stripe-bank-account-token-create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/stripe/bank_account_token/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The `account_id` value obtained from the `onSuccess` callback in Link")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyClientId string
+ var bodyProcessor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "token-create",
+ Short: "Create processor token",
+ Example: " plaid-cli processor token-create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/token/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessor != "" {
+ body["processor"] = bodyProcessor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The `account_id` value obtained from the `onSuccess` callback in Link")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessor, "processor", "", "The processor you are integrating with.")
+ _ = cmd.MarkFlagRequired("processor")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorTokenPermissionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "token-permissions-get",
+ Short: "Get a processor token's product permissions",
+ Example: " plaid-cli processor token-permissions-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/token/permissions/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorTokenPermissionsSetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "token-permissions-set",
+ Short: "Control a processor's access to products",
+ Example: " plaid-cli processor token-permissions-set --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/token/permissions/set"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorTokenWebhookUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "token-webhook-update",
+ Short: "Update a processor token's webhook URL",
+ Example: " plaid-cli processor token-webhook-update --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/token/webhook/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The new webhook URL to associate with the processor token. To remove a webhook from a processor token, set to `null`.")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newProcessorTransactionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEndDate string
+ var bodyProcessorToken string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "transactions-get",
+ Short: "Get transaction data",
+ Example: " plaid-cli processor transactions-get --end-date value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/transactions/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("end-date")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("start-date")
+
+ return cmd
+}
+
+func newProcessorTransactionsRecurringGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-recurring-get",
+ Short: "Fetch recurring transaction streams",
+ Example: " plaid-cli processor transactions-recurring-get --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/transactions/recurring/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorTransactionsRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-refresh",
+ Short: "Refresh transaction data",
+ Example: " plaid-cli processor transactions-refresh --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/transactions/refresh"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProcessorTransactionsSyncCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodyProcessorToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-sync",
+ Short: "Get incremental transaction updates on a processor token",
+ Example: " plaid-cli processor transactions-sync --processor-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/processor/transactions/sync"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyProcessorToken != "" {
+ body["processor_token"] = bodyProcessorToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 100, "The number of transaction updates to fetch.")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "The cursor value represents the last update requested. Providing it will cause the response to only return changes...")
+ cmd.Flags().StringVar(&bodyProcessorToken, "processor-token", "", "The processor token obtained from the Plaid integration partner. Processor tokens are in the format:...")
+ _ = cmd.MarkFlagRequired("processor-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/profile.go b/plaid-cli/internal/cli/profile.go
new file mode 100644
index 00000000..423f35af
--- /dev/null
+++ b/plaid-cli/internal/cli/profile.go
@@ -0,0 +1,61 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newProfileCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "profile",
+ Short: "Manage profile",
+ }
+
+ cmd.AddCommand(newProfileNetworkStatusGetCmd(flags))
+ return cmd
+}
+
+func newProfileNetworkStatusGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "network-status-get",
+ Aliases: []string{"create"},
+ Short: "Check a user's Plaid Network status",
+ Example: " plaid-cli profile network-status-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/profile/network_status/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/protect.go b/plaid-cli/internal/cli/protect.go
new file mode 100644
index 00000000..f38785e1
--- /dev/null
+++ b/plaid-cli/internal/cli/protect.go
@@ -0,0 +1,279 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newProtectCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "protect",
+ Short: "Manage protect",
+ }
+
+ cmd.AddCommand(newProtectComputeCmd(flags))
+ cmd.AddCommand(newProtectEventGetCmd(flags))
+ cmd.AddCommand(newProtectEventSendCmd(flags))
+ cmd.AddCommand(newProtectReportCreateCmd(flags))
+ cmd.AddCommand(newProtectUserInsightsGetCmd(flags))
+ return cmd
+}
+
+func newProtectComputeCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyModel string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "compute",
+ Aliases: []string{"create"},
+ Short: "Compute Protect Trust Index Score",
+ Example: " plaid-cli protect compute --model value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/protect/compute"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyModel != "" {
+ body["model"] = bodyModel
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyModel, "model", "", "The name of the Trust Index model to use for calculating the Trust Index Score, with a major.minor version suffix....")
+ _ = cmd.MarkFlagRequired("model")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProtectEventGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEventId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "event-get",
+ Short: "Get information about a user event",
+ Example: " plaid-cli protect event-get --event-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/protect/event/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEventId != "" {
+ body["event_id"] = bodyEventId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEventId, "event-id", "", "The event ID to retrieve information for.")
+ _ = cmd.MarkFlagRequired("event-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newProtectEventSendCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyProtectSessionId string
+ var bodyRequestTrustIndex bool
+ var bodySecret string
+ var bodyTimestamp string
+
+ cmd := &cobra.Command{
+ Use: "event-send",
+ Short: "Send a new event to enrich user data",
+ Example: " plaid-cli protect event-send",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/protect/event/send"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyProtectSessionId != "" {
+ body["protect_session_id"] = bodyProtectSessionId
+ }
+ if bodyRequestTrustIndex != false {
+ body["request_trust_index"] = bodyRequestTrustIndex
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTimestamp != "" {
+ body["timestamp"] = bodyTimestamp
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyProtectSessionId, "protect-session-id", "", "Protect Session ID should be provided for any event correlated with a frontend user session started via the Protect SDK.")
+ cmd.Flags().BoolVar(&bodyRequestTrustIndex, "request-trust-index", false, "Whether this event should be scored with Trust Index. The default is false.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTimestamp, "timestamp", "", "Timestamp of the event. Might be the current moment or a time in the past. In [ISO...")
+
+ return cmd
+}
+
+func newProtectReportCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAchReturnCode string
+ var bodyClientId string
+ var bodyNotes string
+ var bodyReportConfidence string
+ var bodyReportSource string
+ var bodyReportType string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "report-create",
+ Short: "Create a Protect report",
+ Example: " plaid-cli protect report-create --report-confidence value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/protect/report/create"
+ body := map[string]any{}
+ if bodyAchReturnCode != "" {
+ body["ach_return_code"] = bodyAchReturnCode
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyNotes != "" {
+ body["notes"] = bodyNotes
+ }
+ if bodyReportConfidence != "" {
+ body["report_confidence"] = bodyReportConfidence
+ }
+ if bodyReportSource != "" {
+ body["report_source"] = bodyReportSource
+ }
+ if bodyReportType != "" {
+ body["report_type"] = bodyReportType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAchReturnCode, "ach-return-code", "", "Must be a valid ACH return code (e.g. `R01`), required if `report_type` is `ACH_RETURN`.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyNotes, "notes", "", "Additional context or details about the report, required if `report_type` is `OTHER`.")
+ cmd.Flags().StringVar(&bodyReportConfidence, "report-confidence", "", "The confidence level of the incident report. `CONFIRMED` indicates the incident has been verified and definitively...")
+ _ = cmd.MarkFlagRequired("report-confidence")
+ cmd.Flags().StringVar(&bodyReportSource, "report-source", "", "The source that identified or reported the incident. `INTERNAL_REVIEW` - Incident was identified through internal...")
+ _ = cmd.MarkFlagRequired("report-source")
+ cmd.Flags().StringVar(&bodyReportType, "report-type", "", "The type of incident being reported. `USER_ACCOUNT_TAKEOVER` - Indicates that a legitimate user's account was...")
+ _ = cmd.MarkFlagRequired("report-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "The Plaid User ID associated with the report.")
+
+ return cmd
+}
+
+func newProtectUserInsightsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "user-insights-get",
+ Short: "Get Protect user insights",
+ Example: " plaid-cli protect user-insights-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/protect/user/insights/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID representing the end user. Either `user_id` or `client_user_id` must be provided.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "The Plaid User ID. Either `user_id` or `client_user_id` must be provided.")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/root.go b/plaid-cli/internal/cli/root.go
new file mode 100644
index 00000000..f81eb7e6
--- /dev/null
+++ b/plaid-cli/internal/cli/root.go
@@ -0,0 +1,160 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "encoding/json"
+ "fmt"
+ "text/tabwriter"
+ "time"
+
+ "github.com/USER/plaid-cli/internal/client"
+ "github.com/USER/plaid-cli/internal/config"
+ "github.com/spf13/cobra"
+)
+
+var version = "2020-09-14_1.682.2"
+
+type rootFlags struct {
+ asJSON bool
+ plain bool
+ quiet bool
+ dryRun bool
+ selectFields string
+ configPath string
+ timeout time.Duration
+}
+
+func Execute() error {
+ var flags rootFlags
+
+ rootCmd := &cobra.Command{
+ Use: "plaid-cli",
+ Short: "The Plaid REST API. Please see https://plaid.com/docs/api for more details.",
+ SilenceUsage: true,
+ SilenceErrors: true,
+ Version: version,
+ }
+ rootCmd.SetVersionTemplate("plaid-cli {{ .Version }}\n")
+
+ rootCmd.PersistentFlags().BoolVar(&flags.asJSON, "json", false, "Output as JSON")
+ rootCmd.PersistentFlags().BoolVar(&flags.plain, "plain", false, "Output as plain tab-separated text")
+ rootCmd.PersistentFlags().BoolVar(&flags.quiet, "quiet", false, "Bare output, one value per line")
+ rootCmd.PersistentFlags().StringVar(&flags.configPath, "config", "", "Config file path")
+ rootCmd.PersistentFlags().DurationVar(&flags.timeout, "timeout", 30*time.Second, "Request timeout")
+ rootCmd.PersistentFlags().BoolVar(&flags.dryRun, "dry-run", false, "Show request without sending")
+ rootCmd.PersistentFlags().StringVar(&flags.selectFields, "select", "", "Comma-separated fields to include in output (e.g. --select id,name,status)")
+ rootCmd.PersistentFlags().BoolVar(&noColor, "no-color", false, "Disable colored output")
+ rootCmd.AddCommand(newAccountsCmd(&flags))
+ rootCmd.AddCommand(newApplicationCmd(&flags))
+ rootCmd.AddCommand(newAssetReportCmd(&flags))
+ rootCmd.AddCommand(newAuthCmd(&flags))
+ rootCmd.AddCommand(newBankTransferCmd(&flags))
+ rootCmd.AddCommand(newBeaconCmd(&flags))
+ rootCmd.AddCommand(newBetaCmd(&flags))
+ rootCmd.AddCommand(newBusinessVerificationCmd(&flags))
+ rootCmd.AddCommand(newCashflowReportCmd(&flags))
+ rootCmd.AddCommand(newCategoriesCmd(&flags))
+ rootCmd.AddCommand(newConsentCmd(&flags))
+ rootCmd.AddCommand(newConsumerReportCmd(&flags))
+ rootCmd.AddCommand(newCraCmd(&flags))
+ rootCmd.AddCommand(newCreditCmd(&flags))
+ rootCmd.AddCommand(newDashboardUserCmd(&flags))
+ rootCmd.AddCommand(newEmployersCmd(&flags))
+ rootCmd.AddCommand(newEmploymentCmd(&flags))
+ rootCmd.AddCommand(newFdxCmd(&flags))
+ rootCmd.AddCommand(newIdentityCmd(&flags))
+ rootCmd.AddCommand(newIdentityVerificationCmd(&flags))
+ rootCmd.AddCommand(newIncomeCmd(&flags))
+ rootCmd.AddCommand(newInstitutionsCmd(&flags))
+ rootCmd.AddCommand(newInvestmentsCmd(&flags))
+ rootCmd.AddCommand(newIssuesCmd(&flags))
+ rootCmd.AddCommand(newItemCmd(&flags))
+ rootCmd.AddCommand(newLiabilitiesCmd(&flags))
+ rootCmd.AddCommand(newLinkCmd(&flags))
+ rootCmd.AddCommand(newLinkDeliveryCmd(&flags))
+ rootCmd.AddCommand(newNetworkCmd(&flags))
+ rootCmd.AddCommand(newNetworkInsightsCmd(&flags))
+ rootCmd.AddCommand(newOauthCmd(&flags))
+ rootCmd.AddCommand(newPartnerCmd(&flags))
+ rootCmd.AddCommand(newPaymentInitiationCmd(&flags))
+ rootCmd.AddCommand(newPaymentProfileCmd(&flags))
+ rootCmd.AddCommand(newProcessorCmd(&flags))
+ rootCmd.AddCommand(newProfileCmd(&flags))
+ rootCmd.AddCommand(newProtectCmd(&flags))
+ rootCmd.AddCommand(newSandboxCmd(&flags))
+ rootCmd.AddCommand(newSessionCmd(&flags))
+ rootCmd.AddCommand(newSignalCmd(&flags))
+ rootCmd.AddCommand(newStatementsCmd(&flags))
+ rootCmd.AddCommand(newTransactionsCmd(&flags))
+ rootCmd.AddCommand(newTransferCmd(&flags))
+ rootCmd.AddCommand(newUserCmd(&flags))
+ rootCmd.AddCommand(newUserAccountCmd(&flags))
+ rootCmd.AddCommand(newWalletCmd(&flags))
+ rootCmd.AddCommand(newWatchlistScreeningCmd(&flags))
+ rootCmd.AddCommand(newWebhookVerificationKeyCmd(&flags))
+ rootCmd.AddCommand(newDoctorCmd(&flags))
+ rootCmd.AddCommand(newVersionCliCmd())
+
+ return rootCmd.Execute()
+}
+
+func ExitCode(err error) int {
+ var codeErr *cliError
+ if As(err, &codeErr) {
+ return codeErr.code
+ }
+ return 1
+}
+
+func (f *rootFlags) newClient() (*client.Client, error) {
+ cfg, err := config.Load(f.configPath)
+ if err != nil {
+ return nil, configErr(err)
+ }
+ c := client.New(cfg, f.timeout)
+ c.DryRun = f.dryRun
+ return c, nil
+}
+
+func (f *rootFlags) printJSON(w *cobra.Command, v any) error {
+ enc := json.NewEncoder(w.OutOrStdout())
+ enc.SetIndent("", " ")
+ return enc.Encode(v)
+}
+
+func (f *rootFlags) printTable(w *cobra.Command, headers []string, rows [][]string) error {
+ if f.asJSON {
+ return fmt.Errorf("use printJSON for JSON output")
+ }
+ tw := tabwriter.NewWriter(w.OutOrStdout(), 2, 4, 2, ' ', 0)
+ header := ""
+ for i, h := range headers {
+ if i > 0 {
+ header += "\t"
+ }
+ header += h
+ }
+ fmt.Fprintln(tw, header)
+ for _, row := range rows {
+ line := ""
+ for i, cell := range row {
+ if i > 0 {
+ line += "\t"
+ }
+ line += cell
+ }
+ fmt.Fprintln(tw, line)
+ }
+ return tw.Flush()
+}
+
+func newVersionCliCmd() *cobra.Command {
+ return &cobra.Command{
+ Use: "version",
+ Short: "Print version",
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("plaid-cli %s\n", version)
+ },
+ }
+}
diff --git a/plaid-cli/internal/cli/sandbox.go b/plaid-cli/internal/cli/sandbox.go
new file mode 100644
index 00000000..f4ec489a
--- /dev/null
+++ b/plaid-cli/internal/cli/sandbox.go
@@ -0,0 +1,1336 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newSandboxCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "sandbox",
+ Short: "Manage sandbox",
+ }
+
+ cmd.AddCommand(newSandboxBankIncomeFireWebhookCmd(flags))
+ cmd.AddCommand(newSandboxBankTransferFireWebhookCmd(flags))
+ cmd.AddCommand(newSandboxBankTransferSimulateCmd(flags))
+ cmd.AddCommand(newSandboxCraCashflowUpdatesUpdateCmd(flags))
+ cmd.AddCommand(newSandboxIncomeFireWebhookCmd(flags))
+ cmd.AddCommand(newSandboxItemFireWebhookCmd(flags))
+ cmd.AddCommand(newSandboxItemResetLoginCmd(flags))
+ cmd.AddCommand(newSandboxItemSetVerificationStatusCmd(flags))
+ cmd.AddCommand(newSandboxOauthSelectAccountsCmd(flags))
+ cmd.AddCommand(newSandboxPaymentProfileResetLoginCmd(flags))
+ cmd.AddCommand(newSandboxPaymentSimulateCmd(flags))
+ cmd.AddCommand(newSandboxProcessorTokenCreateCmd(flags))
+ cmd.AddCommand(newSandboxPublicTokenCreateCmd(flags))
+ cmd.AddCommand(newSandboxTransactionsCreateCmd(flags))
+ cmd.AddCommand(newSandboxTransferFireWebhookCmd(flags))
+ cmd.AddCommand(newSandboxTransferLedgerDepositSimulateCmd(flags))
+ cmd.AddCommand(newSandboxTransferLedgerSimulateAvailableCmd(flags))
+ cmd.AddCommand(newSandboxTransferLedgerWithdrawSimulateCmd(flags))
+ cmd.AddCommand(newSandboxTransferRefundSimulateCmd(flags))
+ cmd.AddCommand(newSandboxTransferRepaymentSimulateCmd(flags))
+ cmd.AddCommand(newSandboxTransferSimulateCmd(flags))
+ cmd.AddCommand(newSandboxTransferSweepSimulateCmd(flags))
+ cmd.AddCommand(newSandboxTransferTestClockAdvanceCmd(flags))
+ cmd.AddCommand(newSandboxTransferTestClockCreateCmd(flags))
+ cmd.AddCommand(newSandboxTransferTestClockGetCmd(flags))
+ cmd.AddCommand(newSandboxTransferTestClockListCmd(flags))
+ cmd.AddCommand(newSandboxUserResetLoginCmd(flags))
+ return cmd
+}
+
+func newSandboxBankIncomeFireWebhookCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyWebhookCode string
+ var bodyWebhookOverride string
+
+ cmd := &cobra.Command{
+ Use: "bank-income-fire-webhook",
+ Aliases: []string{"create"},
+ Short: "Manually fire a bank income webhook in sandbox",
+ Example: " plaid-cli sandbox bank-income-fire-webhook --webhook-code value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/bank_income/fire_webhook"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhookCode != "" {
+ body["webhook_code"] = bodyWebhookCode
+ }
+ if bodyWebhookOverride != "" {
+ body["webhook_override"] = bodyWebhookOverride
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhookCode, "webhook-code", "", "The webhook codes this endpoint can be used to test")
+ _ = cmd.MarkFlagRequired("webhook-code")
+ cmd.Flags().StringVar(&bodyWebhookOverride, "webhook-override", "", "The URL to which the webhook should be sent. If provided, this will override the URL set in the dashboard.")
+
+ return cmd
+}
+
+func newSandboxBankTransferFireWebhookCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "bank-transfer-fire-webhook",
+ Short: "Manually fire a Bank Transfer webhook",
+ Example: " plaid-cli sandbox bank-transfer-fire-webhook --webhook value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/bank_transfer/fire_webhook"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The URL to which the webhook should be sent.")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newSandboxBankTransferSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyBankTransferId string
+ var bodyClientId string
+ var bodyEventType string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "bank-transfer-simulate",
+ Short: "Simulate a bank transfer event in Sandbox",
+ Example: " plaid-cli sandbox bank-transfer-simulate --bank-transfer-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/bank_transfer/simulate"
+ body := map[string]any{}
+ if bodyBankTransferId != "" {
+ body["bank_transfer_id"] = bodyBankTransferId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEventType != "" {
+ body["event_type"] = bodyEventType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyBankTransferId, "bank-transfer-id", "", "Plaid’s unique identifier for a bank transfer.")
+ _ = cmd.MarkFlagRequired("bank-transfer-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEventType, "event-type", "", "The asynchronous event to be simulated. May be: `posted`, `failed`, or `reversed`. An error will be returned if the...")
+ _ = cmd.MarkFlagRequired("event-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSandboxCraCashflowUpdatesUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "cra-cashflow-updates-update",
+ Short: "Trigger an update for Cash Flow Updates",
+ Example: " plaid-cli sandbox cra-cashflow-updates-update",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/cra/cashflow_updates/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newSandboxIncomeFireWebhookCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyItemId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyVerificationStatus string
+ var bodyWebhook string
+ var bodyWebhookCode string
+
+ cmd := &cobra.Command{
+ Use: "income-fire-webhook",
+ Short: "Manually fire an Income webhook",
+ Example: " plaid-cli sandbox income-fire-webhook --item-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/income/fire_webhook"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyItemId != "" {
+ body["item_id"] = bodyItemId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyVerificationStatus != "" {
+ body["verification_status"] = bodyVerificationStatus
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ if bodyWebhookCode != "" {
+ body["webhook_code"] = bodyWebhookCode
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyItemId, "item-id", "", "The Item ID associated with the verification.")
+ _ = cmd.MarkFlagRequired("item-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "The Plaid `user_id` of the User associated with this webhook, warning, or error.")
+ cmd.Flags().StringVar(&bodyVerificationStatus, "verification-status", "", "`VERIFICATION_STATUS_PROCESSING_COMPLETE`: The income verification status processing has completed. If the user...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The URL to which the webhook should be sent.")
+ _ = cmd.MarkFlagRequired("webhook")
+ cmd.Flags().StringVar(&bodyWebhookCode, "webhook-code", "", "The webhook codes that can be fired by this test endpoint.")
+ _ = cmd.MarkFlagRequired("webhook-code")
+
+ return cmd
+}
+
+func newSandboxItemFireWebhookCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+ var bodyWebhookCode string
+ var bodyWebhookType string
+
+ cmd := &cobra.Command{
+ Use: "item-fire-webhook",
+ Short: "Fire a test webhook",
+ Example: " plaid-cli sandbox item-fire-webhook --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/item/fire_webhook"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhookCode != "" {
+ body["webhook_code"] = bodyWebhookCode
+ }
+ if bodyWebhookType != "" {
+ body["webhook_type"] = bodyWebhookType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhookCode, "webhook-code", "", "The webhook codes that can be fired by this test endpoint.")
+ _ = cmd.MarkFlagRequired("webhook-code")
+ cmd.Flags().StringVar(&bodyWebhookType, "webhook-type", "", "The webhook types that can be fired by this test endpoint.")
+
+ return cmd
+}
+
+func newSandboxItemResetLoginCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "item-reset-login",
+ Short: "Force a Sandbox Item into an error state",
+ Example: " plaid-cli sandbox item-reset-login --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/item/reset_login"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSandboxItemSetVerificationStatusCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyClientId string
+ var bodySecret string
+ var bodyVerificationStatus string
+
+ cmd := &cobra.Command{
+ Use: "item-set-verification-status",
+ Short: "Set verification status for Sandbox account",
+ Example: " plaid-cli sandbox item-set-verification-status --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/item/set_verification_status"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyVerificationStatus != "" {
+ body["verification_status"] = bodyVerificationStatus
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The `account_id` of the account whose verification status is to be modified")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyVerificationStatus, "verification-status", "", "The verification status to set the account to.")
+ _ = cmd.MarkFlagRequired("verification-status")
+
+ return cmd
+}
+
+func newSandboxOauthSelectAccountsCmd(flags *rootFlags) *cobra.Command {
+ var bodyOauthStateId string
+
+ cmd := &cobra.Command{
+ Use: "oauth-select-accounts",
+ Short: "Save the selected accounts when connecting to the Platypus Oauth institution",
+ Example: " plaid-cli sandbox oauth-select-accounts --oauth-state-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/oauth/select_accounts"
+ body := map[string]any{}
+ if bodyOauthStateId != "" {
+ body["oauth_state_id"] = bodyOauthStateId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyOauthStateId, "oauth-state-id", "", "Oauth state id")
+ _ = cmd.MarkFlagRequired("oauth-state-id")
+
+ return cmd
+}
+
+func newSandboxPaymentProfileResetLoginCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPaymentProfileToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "payment-profile-reset-login",
+ Short: "Reset the login of a Payment Profile",
+ Example: " plaid-cli sandbox payment-profile-reset-login --payment-profile-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/payment_profile/reset_login"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentProfileToken != "" {
+ body["payment_profile_token"] = bodyPaymentProfileToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentProfileToken, "payment-profile-token", "", "A payment profile token associated with the Payment Profile data that is being requested.")
+ _ = cmd.MarkFlagRequired("payment-profile-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSandboxPaymentSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPaymentId string
+ var bodySecret string
+ var bodyStatus string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "payment-simulate",
+ Short: "Simulate a payment event in Sandbox",
+ Example: " plaid-cli sandbox payment-simulate --payment-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/payment/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentId != "" {
+ body["payment_id"] = bodyPaymentId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentId, "payment-id", "", "The ID of the payment to simulate")
+ _ = cmd.MarkFlagRequired("payment-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "The status to set the payment to. Valid statuses include: - `PAYMENT_STATUS_INITIATED` -...")
+ _ = cmd.MarkFlagRequired("status")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook url to use for any payment events triggered by the simulated status change.")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newSandboxProcessorTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyInstitutionId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "processor-token-create",
+ Short: "Create a test Item and processor token",
+ Example: " plaid-cli sandbox processor-token-create --institution-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/processor_token/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyInstitutionId != "" {
+ body["institution_id"] = bodyInstitutionId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyInstitutionId, "institution-id", "", "The ID of the institution the Item will be associated with")
+ _ = cmd.MarkFlagRequired("institution-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSandboxPublicTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyInstitutionId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "public-token-create",
+ Short: "Create a test Item",
+ Example: " plaid-cli sandbox public-token-create --institution-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/public_token/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyInstitutionId != "" {
+ body["institution_id"] = bodyInstitutionId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyInstitutionId, "institution-id", "", "The ID of the institution the Item will be associated with")
+ _ = cmd.MarkFlagRequired("institution-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newSandboxTransactionsCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transactions-create",
+ Short: "Create sandbox transactions",
+ Example: " plaid-cli sandbox transactions-create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transactions/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSandboxTransferFireWebhookCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "transfer-fire-webhook",
+ Short: "Manually fire a Transfer webhook",
+ Example: " plaid-cli sandbox transfer-fire-webhook --webhook value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/fire_webhook"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The URL to which the webhook should be sent.")
+ _ = cmd.MarkFlagRequired("webhook")
+
+ return cmd
+}
+
+func newSandboxTransferLedgerDepositSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEventType string
+ var bodySecret string
+ var bodySweepId string
+
+ cmd := &cobra.Command{
+ Use: "transfer-ledger-deposit-simulate",
+ Short: "Simulate a ledger deposit event in Sandbox",
+ Example: " plaid-cli sandbox transfer-ledger-deposit-simulate --event-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/ledger/deposit/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEventType != "" {
+ body["event_type"] = bodyEventType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySweepId != "" {
+ body["sweep_id"] = bodySweepId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEventType, "event-type", "", "The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, or `returned`. An error will be...")
+ _ = cmd.MarkFlagRequired("event-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySweepId, "sweep-id", "", "Plaid’s unique identifier for a sweep.")
+ _ = cmd.MarkFlagRequired("sweep-id")
+
+ return cmd
+}
+
+func newSandboxTransferLedgerSimulateAvailableCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLedgerId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodyTestClockId string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "transfer-ledger-simulate-available",
+ Short: "Simulate converting pending balance to available balance",
+ Example: " plaid-cli sandbox transfer-ledger-simulate-available",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/ledger/simulate_available"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLedgerId != "" {
+ body["ledger_id"] = bodyLedgerId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLedgerId, "ledger-id", "", "Specify which ledger balance to simulate converting pending balance to available balance. If this field is left...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the end customer (i.e. the originator). Only applicable to Transfer for Platforms customers.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. If provided, only the pending balance that is due before the...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.")
+
+ return cmd
+}
+
+func newSandboxTransferLedgerWithdrawSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEventType string
+ var bodySecret string
+ var bodySweepId string
+
+ cmd := &cobra.Command{
+ Use: "transfer-ledger-withdraw-simulate",
+ Short: "Simulate a ledger withdraw event in Sandbox",
+ Example: " plaid-cli sandbox transfer-ledger-withdraw-simulate --event-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/ledger/withdraw/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEventType != "" {
+ body["event_type"] = bodyEventType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySweepId != "" {
+ body["sweep_id"] = bodySweepId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEventType, "event-type", "", "The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, or `returned`. An error will be...")
+ _ = cmd.MarkFlagRequired("event-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySweepId, "sweep-id", "", "Plaid’s unique identifier for a sweep.")
+ _ = cmd.MarkFlagRequired("sweep-id")
+
+ return cmd
+}
+
+func newSandboxTransferRefundSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEventType string
+ var bodyRefundId string
+ var bodySecret string
+ var bodyTestClockId string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "transfer-refund-simulate",
+ Short: "Simulate a refund event in Sandbox",
+ Example: " plaid-cli sandbox transfer-refund-simulate --event-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/refund/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEventType != "" {
+ body["event_type"] = bodyEventType
+ }
+ if bodyRefundId != "" {
+ body["refund_id"] = bodyRefundId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEventType, "event-type", "", "The asynchronous event to be simulated. May be: `refund.posted`, `refund.settled`, `refund.failed`, or...")
+ _ = cmd.MarkFlagRequired("event-type")
+ cmd.Flags().StringVar(&bodyRefundId, "refund-id", "", "Plaid’s unique identifier for a refund.")
+ _ = cmd.MarkFlagRequired("refund-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. If provided, the event to be simulated is created at the...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.")
+
+ return cmd
+}
+
+func newSandboxTransferRepaymentSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "transfer-repayment-simulate",
+ Short: "Trigger the creation of a repayment",
+ Example: " plaid-cli sandbox transfer-repayment-simulate",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/repayment/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSandboxTransferSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEventType string
+ var bodySecret string
+ var bodyTestClockId string
+ var bodyTransferId string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "transfer-simulate",
+ Short: "Simulate a transfer event in Sandbox",
+ Example: " plaid-cli sandbox transfer-simulate --event-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEventType != "" {
+ body["event_type"] = bodyEventType
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ if bodyTransferId != "" {
+ body["transfer_id"] = bodyTransferId
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEventType, "event-type", "", "The asynchronous event to be simulated. May be: `posted`, `settled`, `failed`, `funds_available`, or `returned`. An...")
+ _ = cmd.MarkFlagRequired("event-type")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. If provided, the event to be simulated is created at the...")
+ cmd.Flags().StringVar(&bodyTransferId, "transfer-id", "", "Plaid’s unique identifier for a transfer.")
+ _ = cmd.MarkFlagRequired("transfer-id")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.")
+
+ return cmd
+}
+
+func newSandboxTransferSweepSimulateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyTestClockId string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "transfer-sweep-simulate",
+ Short: "Simulate creating a sweep",
+ Example: " plaid-cli sandbox transfer-sweep-simulate",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/sweep/simulate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. If provided, the sweep to be simulated is created on the day of the...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook URL to which a `TRANSFER_EVENTS_UPDATE` webhook should be sent.")
+
+ return cmd
+}
+
+func newSandboxTransferTestClockAdvanceCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyNewVirtualTime string
+ var bodySecret string
+ var bodyTestClockId string
+
+ cmd := &cobra.Command{
+ Use: "transfer-test-clock-advance",
+ Short: "Advance a test clock",
+ Example: " plaid-cli sandbox transfer-test-clock-advance --new-virtual-time value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/test_clock/advance"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyNewVirtualTime != "" {
+ body["new_virtual_time"] = bodyNewVirtualTime
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyNewVirtualTime, "new-virtual-time", "", "The virtual timestamp on the test clock. This will be of the form `2006-01-02T15:04:05Z`.")
+ _ = cmd.MarkFlagRequired("new-virtual-time")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. This field is only populated in the Sandbox environment, and only if a...")
+ _ = cmd.MarkFlagRequired("test-clock-id")
+
+ return cmd
+}
+
+func newSandboxTransferTestClockCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyVirtualTime string
+
+ cmd := &cobra.Command{
+ Use: "transfer-test-clock-create",
+ Short: "Create a test clock",
+ Example: " plaid-cli sandbox transfer-test-clock-create",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/test_clock/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyVirtualTime != "" {
+ body["virtual_time"] = bodyVirtualTime
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyVirtualTime, "virtual-time", "", "The virtual timestamp on the test clock. If not provided, the current timestamp will be used. This will be of the...")
+
+ return cmd
+}
+
+func newSandboxTransferTestClockGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyTestClockId string
+
+ cmd := &cobra.Command{
+ Use: "transfer-test-clock-get",
+ Short: "Get a test clock",
+ Example: " plaid-cli sandbox transfer-test-clock-get --test-clock-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/test_clock/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. This field is only populated in the Sandbox environment, and only if a...")
+ _ = cmd.MarkFlagRequired("test-clock-id")
+
+ return cmd
+}
+
+func newSandboxTransferTestClockListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndVirtualTime string
+ var bodyOffset int
+ var bodySecret string
+ var bodyStartVirtualTime string
+
+ cmd := &cobra.Command{
+ Use: "transfer-test-clock-list",
+ Short: "List test clocks",
+ Example: " plaid-cli sandbox transfer-test-clock-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/transfer/test_clock/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndVirtualTime != "" {
+ body["end_virtual_time"] = bodyEndVirtualTime
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartVirtualTime != "" {
+ body["start_virtual_time"] = bodyStartVirtualTime
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of test clocks to return.")
+ cmd.Flags().StringVar(&bodyEndVirtualTime, "end-virtual-time", "", "The end virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of test clocks to skip before returning results.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartVirtualTime, "start-virtual-time", "", "The start virtual timestamp of test clocks to return. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+
+ return cmd
+}
+
+func newSandboxUserResetLoginCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "user-reset-login",
+ Short: "Force item(s) for a Sandbox User into an error state",
+ Example: " plaid-cli sandbox user-reset-login",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/sandbox/user/reset_login"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/session.go b/plaid-cli/internal/cli/session.go
new file mode 100644
index 00000000..8a4dfaf2
--- /dev/null
+++ b/plaid-cli/internal/cli/session.go
@@ -0,0 +1,87 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newSessionCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "session",
+ Short: "Manage session",
+ }
+
+ cmd.AddCommand(newSessionTokenCreateCmd(flags))
+ return cmd
+}
+
+func newSessionTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAndroidPackageName string
+ var bodyClientId string
+ var bodyRedirectUri string
+ var bodySecret string
+ var bodyTemplateId string
+ var bodyUserId string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "token-create",
+ Aliases: []string{"create"},
+ Short: "Create a Link token for Layer",
+ Example: " plaid-cli session token-create --template-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/session/token/create"
+ body := map[string]any{}
+ if bodyAndroidPackageName != "" {
+ body["android_package_name"] = bodyAndroidPackageName
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRedirectUri != "" {
+ body["redirect_uri"] = bodyRedirectUri
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTemplateId != "" {
+ body["template_id"] = bodyTemplateId
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAndroidPackageName, "android-package-name", "", "The name of your app's Android package. Required if using the session token to initialize Layer on Android. Any...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRedirectUri, "redirect-uri", "", "A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTemplateId, "template-id", "", "The id of a template defined in Plaid Dashboard")
+ _ = cmd.MarkFlagRequired("template-id")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The destination URL to which any webhooks should be sent. If you use the same webhook listener for all Sandbox or...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/signal.go b/plaid-cli/internal/cli/signal.go
new file mode 100644
index 00000000..4a2c1362
--- /dev/null
+++ b/plaid-cli/internal/cli/signal.go
@@ -0,0 +1,352 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newSignalCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "signal",
+ Short: "Manage signal",
+ }
+
+ cmd.AddCommand(newSignalDecisionReportCmd(flags))
+ cmd.AddCommand(newSignalEvaluateCmd(flags))
+ cmd.AddCommand(newSignalPrepareCmd(flags))
+ cmd.AddCommand(newSignalReturnReportCmd(flags))
+ cmd.AddCommand(newSignalScheduleCmd(flags))
+ return cmd
+}
+
+func newSignalDecisionReportCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmountInstantlyAvailable float64
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyDaysFundsOnHold int
+ var bodyDecisionOutcome string
+ var bodyInitiated bool
+ var bodyPaymentMethod string
+ var bodySecret string
+ var bodySubmittedAt string
+
+ cmd := &cobra.Command{
+ Use: "decision-report",
+ Aliases: []string{"create"},
+ Short: "Report whether you initiated an ACH transaction",
+ Example: " plaid-cli signal decision-report --client-transaction-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/signal/decision/report"
+ body := map[string]any{}
+ if bodyAmountInstantlyAvailable != 0.0 {
+ body["amount_instantly_available"] = bodyAmountInstantlyAvailable
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyDaysFundsOnHold != 0 {
+ body["days_funds_on_hold"] = bodyDaysFundsOnHold
+ }
+ if bodyDecisionOutcome != "" {
+ body["decision_outcome"] = bodyDecisionOutcome
+ }
+ if bodyInitiated != false {
+ body["initiated"] = bodyInitiated
+ }
+ if bodyPaymentMethod != "" {
+ body["payment_method"] = bodyPaymentMethod
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySubmittedAt != "" {
+ body["submitted_at"] = bodySubmittedAt
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().Float64Var(&bodyAmountInstantlyAvailable, "amount-instantly-available", 0.0, "The amount (in USD) made available to your customers instantly following the debit transaction. It could be a...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().IntVar(&bodyDaysFundsOnHold, "days-funds-on-hold", 0, "The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to...")
+ cmd.Flags().StringVar(&bodyDecisionOutcome, "decision-outcome", "", "The payment decision from the risk assessment. `APPROVE`: approve the transaction without requiring further actions...")
+ cmd.Flags().BoolVar(&bodyInitiated, "initiated", false, "`true` if the ACH transaction was initiated, `false` otherwise. This field must be returned as a boolean. If...")
+ _ = cmd.MarkFlagRequired("initiated")
+ cmd.Flags().StringVar(&bodyPaymentMethod, "payment-method", "", "The payment method to complete the transaction after the risk assessment. It may be different from the default...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySubmittedAt, "submitted-at", "", "The date the ACH debit was submitted to the bank for processing (in ISO 8601 format: `YYYY-MM-DDTHH:mm:ssZ`). This...")
+
+ return cmd
+}
+
+func newSignalEvaluateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyAmount float64
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyClientUserId string
+ var bodyDefaultPaymentMethod string
+ var bodyIsRecurring bool
+ var bodyRiskProfileKey string
+ var bodyRulesetKey string
+ var bodySecret string
+ var bodyUserPresent bool
+
+ cmd := &cobra.Command{
+ Use: "evaluate",
+ Short: "Evaluate a planned ACH transaction",
+ Example: " plaid-cli signal evaluate --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/signal/evaluate"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAmount != 0.0 {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyDefaultPaymentMethod != "" {
+ body["default_payment_method"] = bodyDefaultPaymentMethod
+ }
+ if bodyIsRecurring != false {
+ body["is_recurring"] = bodyIsRecurring
+ }
+ if bodyRiskProfileKey != "" {
+ body["risk_profile_key"] = bodyRiskProfileKey
+ }
+ if bodyRulesetKey != "" {
+ body["ruleset_key"] = bodyRulesetKey
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserPresent != false {
+ body["user_present"] = bodyUserPresent
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is...")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().Float64Var(&bodyAmount, "amount", 0.0, "The transaction amount, in USD (e.g. `102.05`)")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "The unique ID that you would like to use to refer to this evaluation attempt - for example, a payment attempt ID....")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with...")
+ cmd.Flags().StringVar(&bodyDefaultPaymentMethod, "default-payment-method", "", "The default ACH payment method to complete the transaction. When using a Balance-only ruleset, this field is...")
+ cmd.Flags().BoolVar(&bodyIsRecurring, "is-recurring", false, "Use `true` if the ACH transaction is a part of recurring schedule (for example, a monthly repayment); `false`...")
+ cmd.Flags().StringVar(&bodyRiskProfileKey, "risk-profile-key", "", "Specifying `risk_profile_key` is deprecated. Please provide `ruleset` instead.")
+ cmd.Flags().StringVar(&bodyRulesetKey, "ruleset-key", "", "The key of the ruleset to use for evaluating this transaction. You can create a ruleset using the Plaid Dashboard,...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().BoolVar(&bodyUserPresent, "user-present", false, "`true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false`...")
+
+ return cmd
+}
+
+func newSignalPrepareCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "prepare",
+ Short: "Opt-in an Item to Signal Transaction Scores",
+ Example: " plaid-cli signal prepare --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/signal/prepare"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSignalReturnReportCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyReturnCode string
+ var bodyReturnedAt string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "return-report",
+ Short: "Report a return for an ACH transaction",
+ Example: " plaid-cli signal return-report --client-transaction-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/signal/return/report"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyReturnCode != "" {
+ body["return_code"] = bodyReturnCode
+ }
+ if bodyReturnedAt != "" {
+ body["returned_at"] = bodyReturnedAt
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate` or `/accounts/balance/get`.")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().StringVar(&bodyReturnCode, "return-code", "", "Must be a valid ACH return code (e.g. 'R01') If formatted incorrectly, this will result in an...")
+ _ = cmd.MarkFlagRequired("return-code")
+ cmd.Flags().StringVar(&bodyReturnedAt, "returned-at", "", "Date and time when you receive the returns from your payment processors, in ISO 8601 format (`YYYY-MM-DDTHH:mm:ssZ`).")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newSignalScheduleCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyAmount float64
+ var bodyClientId string
+ var bodyClientTransactionId string
+ var bodyDefaultPaymentMethod string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "schedule",
+ Short: "Schedule a planned ACH transaction",
+ Example: " plaid-cli signal schedule --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/signal/schedule"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAmount != 0.0 {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientTransactionId != "" {
+ body["client_transaction_id"] = bodyClientTransactionId
+ }
+ if bodyDefaultPaymentMethod != "" {
+ body["default_payment_method"] = bodyDefaultPaymentMethod
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` of the account that is the funding source for the proposed transaction. The `account_id` is...")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().Float64Var(&bodyAmount, "amount", 0.0, "The transaction amount, in USD (e.g. `102.05`)")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientTransactionId, "client-transaction-id", "", "The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal...")
+ _ = cmd.MarkFlagRequired("client-transaction-id")
+ cmd.Flags().StringVar(&bodyDefaultPaymentMethod, "default-payment-method", "", "The payment method specified in the `default_payment_method` field directly impacts the timing recommendations...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/statements.go b/plaid-cli/internal/cli/statements.go
new file mode 100644
index 00000000..078bc725
--- /dev/null
+++ b/plaid-cli/internal/cli/statements.go
@@ -0,0 +1,171 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newStatementsCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "statements",
+ Short: "Manage statements",
+ }
+
+ cmd.AddCommand(newStatementsDownloadCmd(flags))
+ cmd.AddCommand(newStatementsListCmd(flags))
+ cmd.AddCommand(newStatementsRefreshCmd(flags))
+ return cmd
+}
+
+func newStatementsDownloadCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+ var bodyStatementId string
+
+ cmd := &cobra.Command{
+ Use: "download",
+ Aliases: []string{"create"},
+ Short: "Retrieve a single statement.",
+ Example: " plaid-cli statements download --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/statements/download"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatementId != "" {
+ body["statement_id"] = bodyStatementId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatementId, "statement-id", "", "Plaid's unique identifier for the statement.")
+ _ = cmd.MarkFlagRequired("statement-id")
+
+ return cmd
+}
+
+func newStatementsListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "list",
+ Short: "Retrieve a list of all statements associated with an item.",
+ Example: " plaid-cli statements list --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/statements/list"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newStatementsRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyEndDate string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "refresh",
+ Short: "Refresh statements data.",
+ Example: " plaid-cli statements refresh --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/statements/refresh"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end date for statements, in 'YYYY-MM-DD' format, e.g. '2023-10-30'. You can request up to two years of data. To...")
+ _ = cmd.MarkFlagRequired("end-date")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start date for statements, in 'YYYY-MM-DD' format, e.g. '2023-08-30'. To determine whether a statement falls...")
+ _ = cmd.MarkFlagRequired("start-date")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/transactions.go b/plaid-cli/internal/cli/transactions.go
new file mode 100644
index 00000000..50f01ad2
--- /dev/null
+++ b/plaid-cli/internal/cli/transactions.go
@@ -0,0 +1,261 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newTransactionsCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "transactions",
+ Short: "Manage transactions",
+ }
+
+ cmd.AddCommand(newTransactionsEnrichCmd(flags))
+ cmd.AddCommand(newTransactionsGetCmd(flags))
+ cmd.AddCommand(newTransactionsRecurringGetCmd(flags))
+ cmd.AddCommand(newTransactionsRefreshCmd(flags))
+ cmd.AddCommand(newTransactionsSyncCmd(flags))
+ return cmd
+}
+
+func newTransactionsEnrichCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountType string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "enrich",
+ Aliases: []string{"create"},
+ Short: "Enrich locally-held transaction data",
+ Example: " plaid-cli transactions enrich --account-type value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transactions/enrich"
+ body := map[string]any{}
+ if bodyAccountType != "" {
+ body["account_type"] = bodyAccountType
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountType, "account-type", "", "The account type for the requested transactions (either `depository` or `credit`).")
+ _ = cmd.MarkFlagRequired("account-type")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransactionsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyEndDate string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Get transaction data",
+ Example: " plaid-cli transactions get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transactions/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The latest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("end-date")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The earliest date for which data should be returned. Dates should be formatted as YYYY-MM-DD.")
+ _ = cmd.MarkFlagRequired("start-date")
+
+ return cmd
+}
+
+func newTransactionsRecurringGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "recurring-get",
+ Short: "Fetch recurring transaction streams",
+ Example: " plaid-cli transactions recurring-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transactions/recurring/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransactionsRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refresh",
+ Short: "Refresh transaction data",
+ Example: " plaid-cli transactions refresh --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transactions/refresh"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransactionsSyncCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "sync",
+ Short: "Get incremental transaction updates on an Item",
+ Example: " plaid-cli transactions sync --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transactions/sync"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The access token associated with the Item data is being requested for.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 100, "The number of transaction updates to fetch.")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "The cursor value represents the last update requested. Providing it will cause the response to only return changes...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/transfer.go b/plaid-cli/internal/cli/transfer.go
new file mode 100644
index 00000000..b6b4acb2
--- /dev/null
+++ b/plaid-cli/internal/cli/transfer.go
@@ -0,0 +1,2493 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newTransferCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "transfer",
+ Short: "Manage transfer",
+ }
+
+ cmd.AddCommand(newTransferAuthorizationCancelCmd(flags))
+ cmd.AddCommand(newTransferAuthorizationCreateCmd(flags))
+ cmd.AddCommand(newTransferBalanceGetCmd(flags))
+ cmd.AddCommand(newTransferCancelCmd(flags))
+ cmd.AddCommand(newTransferCapabilitiesGetCmd(flags))
+ cmd.AddCommand(newTransferConfigurationGetCmd(flags))
+ cmd.AddCommand(newTransferCreateCmd(flags))
+ cmd.AddCommand(newTransferDiligenceDocumentUploadCmd(flags))
+ cmd.AddCommand(newTransferDiligenceSubmitCmd(flags))
+ cmd.AddCommand(newTransferEventListCmd(flags))
+ cmd.AddCommand(newTransferEventSyncCmd(flags))
+ cmd.AddCommand(newTransferGetCmd(flags))
+ cmd.AddCommand(newTransferIntentCreateCmd(flags))
+ cmd.AddCommand(newTransferIntentGetCmd(flags))
+ cmd.AddCommand(newTransferLedgerDepositCmd(flags))
+ cmd.AddCommand(newTransferLedgerDistributeCmd(flags))
+ cmd.AddCommand(newTransferLedgerEventListCmd(flags))
+ cmd.AddCommand(newTransferLedgerGetCmd(flags))
+ cmd.AddCommand(newTransferLedgerWithdrawCmd(flags))
+ cmd.AddCommand(newTransferListCmd(flags))
+ cmd.AddCommand(newTransferMetricsGetCmd(flags))
+ cmd.AddCommand(newTransferMigrateAccountCmd(flags))
+ cmd.AddCommand(newTransferOriginatorCreateCmd(flags))
+ cmd.AddCommand(newTransferOriginatorFundingAccountCreateCmd(flags))
+ cmd.AddCommand(newTransferOriginatorFundingAccountUpdateCmd(flags))
+ cmd.AddCommand(newTransferOriginatorGetCmd(flags))
+ cmd.AddCommand(newTransferOriginatorListCmd(flags))
+ cmd.AddCommand(newTransferPlatformOriginatorCreateCmd(flags))
+ cmd.AddCommand(newTransferPlatformPersonCreateCmd(flags))
+ cmd.AddCommand(newTransferPlatformRequirementSubmitCmd(flags))
+ cmd.AddCommand(newTransferQuestionnaireCreateCmd(flags))
+ cmd.AddCommand(newTransferRecurringCancelCmd(flags))
+ cmd.AddCommand(newTransferRecurringCreateCmd(flags))
+ cmd.AddCommand(newTransferRecurringGetCmd(flags))
+ cmd.AddCommand(newTransferRecurringListCmd(flags))
+ cmd.AddCommand(newTransferRefundCancelCmd(flags))
+ cmd.AddCommand(newTransferRefundCreateCmd(flags))
+ cmd.AddCommand(newTransferRefundGetCmd(flags))
+ cmd.AddCommand(newTransferRepaymentListCmd(flags))
+ cmd.AddCommand(newTransferRepaymentReturnListCmd(flags))
+ cmd.AddCommand(newTransferSweepGetCmd(flags))
+ cmd.AddCommand(newTransferSweepListCmd(flags))
+ return cmd
+}
+
+func newTransferAuthorizationCancelCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuthorizationId string
+ var bodyClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "authorization-cancel",
+ Short: "Cancel a transfer authorization",
+ Example: " plaid-cli transfer authorization-cancel --authorization-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/authorization/cancel"
+ body := map[string]any{}
+ if bodyAuthorizationId != "" {
+ body["authorization_id"] = bodyAuthorizationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuthorizationId, "authorization-id", "", "Plaid’s unique identifier for a transfer authorization.")
+ _ = cmd.MarkFlagRequired("authorization-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferAuthorizationCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyAchClass string
+ var bodyAmount string
+ var bodyBeaconSessionId string
+ var bodyClientId string
+ var bodyFundingAccountId string
+ var bodyIdempotencyKey string
+ var bodyIsoCurrencyCode string
+ var bodyLedgerId string
+ var bodyNetwork string
+ var bodyOriginationAccountId string
+ var bodyOriginatorClientId string
+ var bodyPaymentProfileToken string
+ var bodyRequestGuarantee bool
+ var bodyRulesetKey string
+ var bodySecret string
+ var bodyTestClockId string
+ var bodyType string
+ var bodyUserPresent bool
+ var bodyWithGuarantee bool
+
+ cmd := &cobra.Command{
+ Use: "authorization-create",
+ Short: "Create a transfer authorization",
+ Example: " plaid-cli transfer authorization-create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/authorization/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAchClass != "" {
+ body["ach_class"] = bodyAchClass
+ }
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyBeaconSessionId != "" {
+ body["beacon_session_id"] = bodyBeaconSessionId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodyLedgerId != "" {
+ body["ledger_id"] = bodyLedgerId
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodyPaymentProfileToken != "" {
+ body["payment_profile_token"] = bodyPaymentProfileToken
+ }
+ if bodyRequestGuarantee != false {
+ body["request_guarantee"] = bodyRequestGuarantee
+ }
+ if bodyRulesetKey != "" {
+ body["ruleset_key"] = bodyRulesetKey
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ if bodyUserPresent != false {
+ body["user_present"] = bodyUserPresent
+ }
+ if bodyWithGuarantee != false {
+ body["with_guarantee"] = bodyWithGuarantee
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The Plaid `access_token` for the account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` corresponding to the end-user account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyAchClass, "ach-class", "", "Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC...")
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the transfer (decimal string with two digits of precision e.g. '10.00'). When calling...")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyBeaconSessionId, "beacon-session-id", "", "The unique identifier returned by Plaid's [beacon](https://plaid.com/docs/transfer/guarantee/#using-a-beacon) when...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Specify the account used to fund the transfer. Should be specified if using legacy funding methods only. If using...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique authorization, which expires after 48 hours. Maximum of 50...")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "The currency of the transfer amount. The default value is 'USD'.")
+ cmd.Flags().StringVar(&bodyLedgerId, "ledger-id", "", "Specify which ledger balance should be used to fund the transfer. You can find a list of `ledger_id`s in the...")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "", "The network or rails used for the transfer. For transfers submitted as `ach` or `same-day-ach`, the Standard ACH...")
+ _ = cmd.MarkFlagRequired("network")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Plaid's unique identifier for the origination account for this authorization. If not specified, the default account...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID that is the originator of this transfer. Only needed if creating transfers on behalf of another...")
+ cmd.Flags().StringVar(&bodyPaymentProfileToken, "payment-profile-token", "", "The payment profile token associated with the Payment Profile that will be debited or credited. Required if not...")
+ cmd.Flags().BoolVar(&bodyRequestGuarantee, "request-guarantee", false, "Indicates whether the transfer should be evaluated for guarantee coverage. When set to `true`, Plaid assesses the...")
+ cmd.Flags().StringVar(&bodyRulesetKey, "ruleset-key", "", "The key of the Ruleset for the transaction. This feature is currently in closed beta; to request access, contact...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. This field may only be used when using `sandbox` environment. If...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "The type of transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into the...")
+ _ = cmd.MarkFlagRequired("type")
+ cmd.Flags().BoolVar(&bodyUserPresent, "user-present", false, "If the end user is initiating the specific transfer themselves via an interactive UI, this should be `true`; for...")
+ cmd.Flags().BoolVar(&bodyWithGuarantee, "with-guarantee", true, "If set to `false`, Plaid will not offer a `guarantee_decision` for this request (Guarantee customers only). This...")
+
+ return cmd
+}
+
+func newTransferBalanceGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodyType string
+
+ cmd := &cobra.Command{
+ Use: "balance-get",
+ Short: "(Deprecated) Retrieve a balance held with Plaid",
+ Example: " plaid-cli transfer balance-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/balance/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the end customer.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "The type of balance. `prefunded_rtp_credits` - Your prefunded RTP credit balance with Plaid `prefunded_ach_credits`...")
+
+ return cmd
+}
+
+func newTransferCancelCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodyReasonCode string
+ var bodySecret string
+ var bodyTransferId string
+
+ cmd := &cobra.Command{
+ Use: "cancel",
+ Short: "Cancel a transfer",
+ Example: " plaid-cli transfer cancel --transfer-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/cancel"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodyReasonCode != "" {
+ body["reason_code"] = bodyReasonCode
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTransferId != "" {
+ body["transfer_id"] = bodyTransferId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).")
+ cmd.Flags().StringVar(&bodyReasonCode, "reason-code", "", "Specifies the reason for cancelling transfer. This is required for RfP transfers, and will be ignored for other...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTransferId, "transfer-id", "", "Plaid’s unique identifier for a transfer.")
+ _ = cmd.MarkFlagRequired("transfer-id")
+
+ return cmd
+}
+
+func newTransferCapabilitiesGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyClientId string
+ var bodyPaymentProfileToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "capabilities-get",
+ Short: "Get RTP eligibility information of a transfer",
+ Example: " plaid-cli transfer capabilities-get --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/capabilities/get"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPaymentProfileToken != "" {
+ body["payment_profile_token"] = bodyPaymentProfileToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The Plaid `access_token` for the account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` corresponding to the end-user account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPaymentProfileToken, "payment-profile-token", "", "A payment profile token associated with the Payment Profile data that is being requested.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferConfigurationGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "configuration-get",
+ Short: "Get transfer product configuration",
+ Example: " plaid-cli transfer configuration-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/configuration/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID of the transfer originator. Should only be present if `client_id` is a [Platform...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyAmount string
+ var bodyAuthorizationId string
+ var bodyClientId string
+ var bodyDescription string
+ var bodyFacilitatorFee string
+ var bodyIdempotencyKey string
+ var bodyIsoCurrencyCode string
+ var bodyOriginationAccountId string
+ var bodySecret string
+ var bodyTestClockId string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create a transfer",
+ Example: " plaid-cli transfer create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyAuthorizationId != "" {
+ body["authorization_id"] = bodyAuthorizationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyFacilitatorFee != "" {
+ body["facilitator_fee"] = bodyFacilitatorFee
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The Plaid `access_token` for the account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` corresponding to the end-user account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the transfer (decimal string with two digits of precision e.g. '10.00'). When calling...")
+ cmd.Flags().StringVar(&bodyAuthorizationId, "authorization-id", "", "Plaid’s unique identifier for a transfer authorization. This parameter also serves the purpose of acting as an...")
+ _ = cmd.MarkFlagRequired("authorization-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "The transfer description, maximum of 15 characters (RTP transactions) or 10 characters (ACH transactions). Should...")
+ _ = cmd.MarkFlagRequired("description")
+ cmd.Flags().StringVar(&bodyFacilitatorFee, "facilitator-fee", "", "The amount to deduct from `transfer.amount` and distribute to the platform’s Ledger balance as a facilitator fee...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "Deprecated. `authorization_id` is now used as idempotency instead. A random key provided by the client, per unique...")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "The currency of the transfer amount. The default value is 'USD'.")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Plaid’s unique identifier for the origination account for this transfer. If you have more than one origination...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. This field may only be used when using `sandbox` environment. If...")
+
+ return cmd
+}
+
+func newTransferDiligenceDocumentUploadCmd(flags *rootFlags) *cobra.Command {
+ var bodyFile string
+ var bodyOriginatorClientId string
+ var bodyPurpose string
+
+ cmd := &cobra.Command{
+ Use: "diligence-document-upload",
+ Short: "Upload transfer diligence document on behalf of the originator",
+ Example: " plaid-cli transfer diligence-document-upload --file value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/diligence/document/upload"
+ body := map[string]any{}
+ if bodyFile != "" {
+ body["file"] = bodyFile
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodyPurpose != "" {
+ body["purpose"] = bodyPurpose
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyFile, "file", "", "A file to upload. The file size must be less than 20MB. Supported file extensions: .pdf.")
+ _ = cmd.MarkFlagRequired("file")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Client ID of the originator whose document that you want to upload.")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodyPurpose, "purpose", "", "Specifies the purpose of the uploaded file. `'DUE_DILIGENCE'` - The transfer due diligence document of the originator.")
+ _ = cmd.MarkFlagRequired("purpose")
+
+ return cmd
+}
+
+func newTransferDiligenceSubmitCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "diligence-submit",
+ Short: "Submit transfer diligence on behalf of the originator",
+ Example: " plaid-cli transfer diligence-submit --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/diligence/submit"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the originator whose diligence that you want to submit.")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferEventListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountId string
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndDate string
+ var bodyFundingAccountId string
+ var bodyOffset int
+ var bodyOriginationAccountId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodyStartDate string
+ var bodySweepId string
+ var bodyTransferId string
+ var bodyTransferType string
+
+ cmd := &cobra.Command{
+ Use: "event-list",
+ Short: "List transfer events",
+ Example: " plaid-cli transfer event-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/event/list"
+ body := map[string]any{}
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ if bodySweepId != "" {
+ body["sweep_id"] = bodySweepId
+ }
+ if bodyTransferId != "" {
+ body["transfer_id"] = bodyTransferId
+ }
+ if bodyTransferType != "" {
+ body["transfer_type"] = bodyTransferType
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The account ID to get events for all transactions to/from an account.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of transfer events to return. If the number of events matching the above parameters is greater...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Filter transfer events to only those with the specified `funding_account_id`.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The offset into the list of transfer events. When `count`=25 and `offset`=0, the first 25 events will be returned....")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "The origination account ID to get events for transfers from a specific origination account.")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Filter transfer events to only those with the specified originator client.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+ cmd.Flags().StringVar(&bodySweepId, "sweep-id", "", "Plaid’s unique identifier for a sweep.")
+ cmd.Flags().StringVar(&bodyTransferId, "transfer-id", "", "Plaid’s unique identifier for a transfer.")
+ cmd.Flags().StringVar(&bodyTransferType, "transfer-type", "", "The type of transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into your...")
+
+ return cmd
+}
+
+func newTransferEventSyncCmd(flags *rootFlags) *cobra.Command {
+ var bodyAfterId int
+ var bodyClientId string
+ var bodyCount int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "event-sync",
+ Short: "Sync transfer events",
+ Example: " plaid-cli transfer event-sync",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/event/sync"
+ body := map[string]any{}
+ if bodyAfterId != 0 {
+ body["after_id"] = bodyAfterId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().IntVar(&bodyAfterId, "after-id", 0, "The latest (largest) `event_id` fetched via the sync endpoint, or 0 initially.")
+ _ = cmd.MarkFlagRequired("after-id")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 100, "The maximum number of transfer events to return.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyAuthorizationId string
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodyTransferId string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve a transfer",
+ Example: " plaid-cli transfer get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/get"
+ body := map[string]any{}
+ if bodyAuthorizationId != "" {
+ body["authorization_id"] = bodyAuthorizationId
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTransferId != "" {
+ body["transfer_id"] = bodyTransferId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAuthorizationId, "authorization-id", "", "Plaid’s unique identifier for a transfer authorization.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID of the transfer originator. Should only be present if `client_id` is a third-party sender (TPS).")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTransferId, "transfer-id", "", "Plaid’s unique identifier for a transfer.")
+
+ return cmd
+}
+
+func newTransferIntentCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountId string
+ var bodyAchClass string
+ var bodyAmount string
+ var bodyClientId string
+ var bodyDescription string
+ var bodyFundingAccountId string
+ var bodyIsoCurrencyCode string
+ var bodyMode string
+ var bodyNetwork string
+ var bodyOriginationAccountId string
+ var bodyRequireGuarantee bool
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "intent-create",
+ Short: "Create a transfer intent object to invoke the Transfer UI",
+ Example: " plaid-cli transfer intent-create --amount value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/intent/create"
+ body := map[string]any{}
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAchClass != "" {
+ body["ach_class"] = bodyAchClass
+ }
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodyMode != "" {
+ body["mode"] = bodyMode
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodyRequireGuarantee != false {
+ body["require_guarantee"] = bodyRequireGuarantee
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` corresponding to the end-user account that will be debited or credited.")
+ cmd.Flags().StringVar(&bodyAchClass, "ach-class", "", "Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC...")
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the transfer (decimal string with two digits of precision e.g. '10.00'). When calling...")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "A description for the underlying transfer. Maximum of 15 characters.")
+ _ = cmd.MarkFlagRequired("description")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Specify the account used to fund the transfer. Should be specified if using legacy funding methods only. If using...")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "The currency of the transfer amount, e.g. 'USD'")
+ cmd.Flags().StringVar(&bodyMode, "mode", "", "The direction of the flow of transfer funds. `PAYMENT`: Transfers funds from an end user's account to your business...")
+ _ = cmd.MarkFlagRequired("mode")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "same-day-ach", "The network or rails used for the transfer. Defaults to `same-day-ach`. For transfers submitted using `ach`, the...")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Plaid’s unique identifier for the origination account for the intent. If not provided, the default account will be...")
+ cmd.Flags().BoolVar(&bodyRequireGuarantee, "require-guarantee", false, "When `true`, the transfer requires a `GUARANTEED` decision by Plaid to proceed (Guarantee customers only).")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferIntentGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyTransferIntentId string
+
+ cmd := &cobra.Command{
+ Use: "intent-get",
+ Short: "Retrieve more information about a transfer intent",
+ Example: " plaid-cli transfer intent-get --transfer-intent-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/intent/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTransferIntentId != "" {
+ body["transfer_intent_id"] = bodyTransferIntentId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTransferIntentId, "transfer-intent-id", "", "Plaid's unique identifier for a transfer intent object.")
+ _ = cmd.MarkFlagRequired("transfer-intent-id")
+
+ return cmd
+}
+
+func newTransferLedgerDepositCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmount string
+ var bodyClientId string
+ var bodyDescription string
+ var bodyFundingAccountId string
+ var bodyIdempotencyKey string
+ var bodyLedgerId string
+ var bodyNetwork string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "ledger-deposit",
+ Short: "Deposit funds into a Plaid Ledger balance",
+ Example: " plaid-cli transfer ledger-deposit --amount value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/ledger/deposit"
+ body := map[string]any{}
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyLedgerId != "" {
+ body["ledger_id"] = bodyLedgerId
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "A positive amount of how much will be deposited into ledger (decimal string with two digits of precision e.g. '5.50').")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks...")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Specify which funding account to use. Customers can find a list of `funding_account_id`s in the Accounts page of the...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A unique key provided by the client, per unique ledger deposit. Maximum of 50 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyLedgerId, "ledger-id", "", "Specify which ledger balance to deposit to. Customers can find a list of `ledger_id`s in the Accounts page of your...")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "", "The ACH networks used for the funds flow. For requests submitted as either `ach` or `same-day-ach` the cutoff for...")
+ _ = cmd.MarkFlagRequired("network")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the customer that owns the Ledger balance. This is so Plaid knows which of your customers to payout or...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferLedgerDistributeCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmount string
+ var bodyClientId string
+ var bodyDescription string
+ var bodyFromLedgerId string
+ var bodyIdempotencyKey string
+ var bodySecret string
+ var bodyToLedgerId string
+
+ cmd := &cobra.Command{
+ Use: "ledger-distribute",
+ Short: "Move available balance between ledgers",
+ Example: " plaid-cli transfer ledger-distribute --amount value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/ledger/distribute"
+ body := map[string]any{}
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyFromLedgerId != "" {
+ body["from_ledger_id"] = bodyFromLedgerId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyToLedgerId != "" {
+ body["to_ledger_id"] = bodyToLedgerId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount to move (decimal string with two digits of precision e.g. '10.00'). Amount must be positive.")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "An optional description for the ledger distribute operation.")
+ cmd.Flags().StringVar(&bodyFromLedgerId, "from-ledger-id", "", "The Ledger to pull money from.")
+ _ = cmd.MarkFlagRequired("from-ledger-id")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A unique key provided by the client, per unique ledger distribute. Maximum of 50 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyToLedgerId, "to-ledger-id", "", "The Ledger to credit money to.")
+ _ = cmd.MarkFlagRequired("to-ledger-id")
+
+ return cmd
+}
+
+func newTransferLedgerEventListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndDate string
+ var bodyLedgerEventId string
+ var bodyLedgerId string
+ var bodyOffset int
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodySourceId string
+ var bodySourceType string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "ledger-event-list",
+ Short: "List transfer ledger events",
+ Example: " plaid-cli transfer ledger-event-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/ledger/event/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyLedgerEventId != "" {
+ body["ledger_event_id"] = bodyLedgerEventId
+ }
+ if bodyLedgerId != "" {
+ body["ledger_id"] = bodyLedgerId
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySourceId != "" {
+ body["source_id"] = bodySourceId
+ }
+ if bodySourceType != "" {
+ body["source_type"] = bodySourceType
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of transfer events to return. If the number of events matching the above parameters is greater...")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end created datetime of transfers to list. This should be in RFC 3339 format (i.e. 2019-12-06T22:35:49Z)")
+ cmd.Flags().StringVar(&bodyLedgerEventId, "ledger-event-id", "", "Plaid's unique identifier for the ledger event.")
+ cmd.Flags().StringVar(&bodyLedgerId, "ledger-id", "", "Plaid's unique identifier for a Plaid Ledger Balance.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The offset into the list of transfer events. When `count`=25 and `offset`=0, the first 25 events will be returned....")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Filter transfer events to only those with the specified originator client. (This field is specifically for...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySourceId, "source-id", "", "Plaid's unique identifier for a transfer, sweep, or refund.")
+ cmd.Flags().StringVar(&bodySourceType, "source-type", "", "Source of the ledger event. `'TRANSFER'` - The source of the ledger event is a transfer `'SWEEP'` - The source of...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start created datetime of transfers to list. This should be in RFC 3339 format (i.e. 2019-12-06T22:35:49Z)")
+
+ return cmd
+}
+
+func newTransferLedgerGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyLedgerId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "ledger-get",
+ Short: "Retrieve Plaid Ledger balance",
+ Example: " plaid-cli transfer ledger-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/ledger/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyLedgerId != "" {
+ body["ledger_id"] = bodyLedgerId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyLedgerId, "ledger-id", "", "Specify which ledger balance to get. Customers can find a list of `ledger_id`s in the Accounts page of your Plaid...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the end customer.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferLedgerWithdrawCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmount string
+ var bodyClientId string
+ var bodyDescription string
+ var bodyFundingAccountId string
+ var bodyIdempotencyKey string
+ var bodyLedgerId string
+ var bodyNetwork string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "ledger-withdraw",
+ Short: "Withdraw funds from a Plaid Ledger balance",
+ Example: " plaid-cli transfer ledger-withdraw --amount value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/ledger/withdraw"
+ body := map[string]any{}
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyLedgerId != "" {
+ body["ledger_id"] = bodyLedgerId
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "A positive amount of how much will be withdrawn from the ledger balance (decimal string with two digits of precision...")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "The description of the deposit that will be passed to the receiving bank (up to 10 characters). Note that banks...")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Specify which funding account to use. Customers can find a list of `funding_account_id`s in the Accounts page of the...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A unique key provided by the client, per unique ledger withdraw. Maximum of 50 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyLedgerId, "ledger-id", "", "Specify which ledger balance to withdraw from. Customers can find a list of `ledger_id`s in the Accounts page of...")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "", "The network or rails used for the transfer. For transfers submitted as `ach` or `same-day-ach`, the Standard ACH...")
+ _ = cmd.MarkFlagRequired("network")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the customer that owns the Ledger balance. This is so Plaid knows which of your customers to payout or...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndDate string
+ var bodyFundingAccountId string
+ var bodyOffset int
+ var bodyOriginationAccountId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "list",
+ Short: "List transfers",
+ Example: " plaid-cli transfer list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyOriginationAccountId != "" {
+ body["origination_account_id"] = bodyOriginationAccountId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of transfers to return.")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Filter transfers to only those with the specified `funding_account_id`.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of transfers to skip before returning results.")
+ cmd.Flags().StringVar(&bodyOriginationAccountId, "origination-account-id", "", "Filter transfers to only those originated through the specified origination account.")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Filter transfers to only those with the specified originator client.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start `created` datetime of transfers to list. This should be in RFC 3339 format (i.e. `2019-12-06T22:35:49Z`)")
+
+ return cmd
+}
+
+func newTransferMetricsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "metrics-get",
+ Short: "Get transfer product usage metrics",
+ Example: " plaid-cli transfer metrics-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/metrics/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID of the transfer originator. Should only be present if `client_id` is a [Platform...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferMigrateAccountCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccountNumber string
+ var bodyAccountType string
+ var bodyClientId string
+ var bodyRoutingNumber string
+ var bodySecret string
+ var bodyWireRoutingNumber string
+
+ cmd := &cobra.Command{
+ Use: "migrate-account",
+ Short: "Migrate account into Transfers",
+ Example: " plaid-cli transfer migrate-account --account-number value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/migrate_account"
+ body := map[string]any{}
+ if bodyAccountNumber != "" {
+ body["account_number"] = bodyAccountNumber
+ }
+ if bodyAccountType != "" {
+ body["account_type"] = bodyAccountType
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRoutingNumber != "" {
+ body["routing_number"] = bodyRoutingNumber
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWireRoutingNumber != "" {
+ body["wire_routing_number"] = bodyWireRoutingNumber
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccountNumber, "account-number", "", "The user's account number.")
+ _ = cmd.MarkFlagRequired("account-number")
+ cmd.Flags().StringVar(&bodyAccountType, "account-type", "", "The type of the bank account (`checking` or `savings`).")
+ _ = cmd.MarkFlagRequired("account-type")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRoutingNumber, "routing-number", "", "The user's routing number.")
+ _ = cmd.MarkFlagRequired("routing-number")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWireRoutingNumber, "wire-routing-number", "", "The user's wire transfer routing number. This is the ABA number; for some institutions, this may differ from the ACH...")
+
+ return cmd
+}
+
+func newTransferOriginatorCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCompanyName string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "originator-create",
+ Short: "Create a new originator",
+ Example: " plaid-cli transfer originator-create --company-name value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/originator/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCompanyName != "" {
+ body["company_name"] = bodyCompanyName
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCompanyName, "company-name", "", "The company name of the end customer being created. This will be displayed in public-facing surfaces, e.g. Plaid...")
+ _ = cmd.MarkFlagRequired("company-name")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferOriginatorFundingAccountCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "originator-funding-account-create",
+ Short: "Create a new funding account for an originator",
+ Example: " plaid-cli transfer originator-funding-account-create --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/originator/funding_account/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID of the transfer originator.")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferOriginatorFundingAccountUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "originator-funding-account-update",
+ Short: "Update the funding account associated with the originator",
+ Example: " plaid-cli transfer originator-funding-account-update --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/originator/funding_account/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The Plaid client ID of the transfer originator.")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferOriginatorGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "originator-get",
+ Short: "Get status of an originator's onboarding",
+ Example: " plaid-cli transfer originator-get --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/originator/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the end customer (i.e. the originator).")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferOriginatorListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyOffset int
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "originator-list",
+ Short: "Get status of all originators' onboarding",
+ Example: " plaid-cli transfer originator-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/originator/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of originators to return.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of originators to skip before returning results.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferPlatformOriginatorCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodyOriginatorReviewedAt string
+ var bodySecret string
+ var bodyWebhook string
+
+ cmd := &cobra.Command{
+ Use: "platform-originator-create",
+ Short: "Create an originator for Transfer for Platforms customers",
+ Example: " plaid-cli transfer platform-originator-create --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/platform/originator/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodyOriginatorReviewedAt != "" {
+ body["originator_reviewed_at"] = bodyOriginatorReviewedAt
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWebhook != "" {
+ body["webhook"] = bodyWebhook
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The client ID of the originator")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodyOriginatorReviewedAt, "originator-reviewed-at", "", "ISO8601 timestamp indicating the most recent time the platform collected onboarding data from the originator")
+ _ = cmd.MarkFlagRequired("originator-reviewed-at")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWebhook, "webhook", "", "The webhook URL to which a `PLATFORM_ONBOARDING_UPDATE` webhook should be sent.")
+
+ return cmd
+}
+
+func newTransferPlatformPersonCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyDateOfBirth string
+ var bodyEmailAddress string
+ var bodyOriginatorClientId string
+ var bodyOwnershipPercentage int
+ var bodyPhoneNumber string
+ var bodyRelationshipToOriginator string
+ var bodySecret string
+ var bodyTitle string
+
+ cmd := &cobra.Command{
+ Use: "platform-person-create",
+ Short: "Create a person associated with an originator",
+ Example: " plaid-cli transfer platform-person-create --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/platform/person/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDateOfBirth != "" {
+ body["date_of_birth"] = bodyDateOfBirth
+ }
+ if bodyEmailAddress != "" {
+ body["email_address"] = bodyEmailAddress
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodyOwnershipPercentage != 0 {
+ body["ownership_percentage"] = bodyOwnershipPercentage
+ }
+ if bodyPhoneNumber != "" {
+ body["phone_number"] = bodyPhoneNumber
+ }
+ if bodyRelationshipToOriginator != "" {
+ body["relationship_to_originator"] = bodyRelationshipToOriginator
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTitle != "" {
+ body["title"] = bodyTitle
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDateOfBirth, "date-of-birth", "", "The date of birth of the person. Formatted as YYYY-MM-DD.")
+ cmd.Flags().StringVar(&bodyEmailAddress, "email-address", "", "A valid email address. Must not have leading or trailing spaces.")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The client ID of the originator")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().IntVar(&bodyOwnershipPercentage, "ownership-percentage", 0, "The percentage of ownership this person has in the onboarding business. Only applicable to beneficial owners with...")
+ cmd.Flags().StringVar(&bodyPhoneNumber, "phone-number", "", "A valid phone number in E.164 format. Phone number input may be validated against valid number ranges; number...")
+ cmd.Flags().StringVar(&bodyRelationshipToOriginator, "relationship-to-originator", "", "The relationship between this person and the originator they are related to.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTitle, "title", "", "The title of the person at the business. Only applicable to control persons - for example, 'CEO', 'President',...")
+
+ return cmd
+}
+
+func newTransferPlatformRequirementSubmitCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "platform-requirement-submit",
+ Short: "Submit additional onboarding information on behalf of an originator",
+ Example: " plaid-cli transfer platform-requirement-submit --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/platform/requirement/submit"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "The client ID of the originator")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferQuestionnaireCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyOriginatorClientId string
+ var bodyRedirectUri string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "questionnaire-create",
+ Short: "Generate a Plaid-hosted onboarding UI URL.",
+ Example: " plaid-cli transfer questionnaire-create --originator-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/questionnaire/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodyRedirectUri != "" {
+ body["redirect_uri"] = bodyRedirectUri
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Client ID of the end customer.")
+ _ = cmd.MarkFlagRequired("originator-client-id")
+ cmd.Flags().StringVar(&bodyRedirectUri, "redirect-uri", "", "URL the end customer will be redirected to after completing questions in Plaid-hosted onboarding flow.")
+ _ = cmd.MarkFlagRequired("redirect-uri")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferRecurringCancelCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRecurringTransferId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "recurring-cancel",
+ Short: "Cancel a recurring transfer.",
+ Example: " plaid-cli transfer recurring-cancel --recurring-transfer-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/recurring/cancel"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRecurringTransferId != "" {
+ body["recurring_transfer_id"] = bodyRecurringTransferId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRecurringTransferId, "recurring-transfer-id", "", "Plaid’s unique identifier for a recurring transfer.")
+ _ = cmd.MarkFlagRequired("recurring-transfer-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferRecurringCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAccessToken string
+ var bodyAccountId string
+ var bodyAchClass string
+ var bodyAmount string
+ var bodyClientId string
+ var bodyDescription string
+ var bodyFundingAccountId string
+ var bodyIdempotencyKey string
+ var bodyIsoCurrencyCode string
+ var bodyNetwork string
+ var bodySecret string
+ var bodyTestClockId string
+ var bodyType string
+ var bodyUserPresent bool
+
+ cmd := &cobra.Command{
+ Use: "recurring-create",
+ Short: "Create a recurring transfer",
+ Example: " plaid-cli transfer recurring-create --access-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/recurring/create"
+ body := map[string]any{}
+ if bodyAccessToken != "" {
+ body["access_token"] = bodyAccessToken
+ }
+ if bodyAccountId != "" {
+ body["account_id"] = bodyAccountId
+ }
+ if bodyAchClass != "" {
+ body["ach_class"] = bodyAchClass
+ }
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyDescription != "" {
+ body["description"] = bodyDescription
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodyNetwork != "" {
+ body["network"] = bodyNetwork
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTestClockId != "" {
+ body["test_clock_id"] = bodyTestClockId
+ }
+ if bodyType != "" {
+ body["type"] = bodyType
+ }
+ if bodyUserPresent != false {
+ body["user_present"] = bodyUserPresent
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAccessToken, "access-token", "", "The Plaid `access_token` for the account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("access-token")
+ cmd.Flags().StringVar(&bodyAccountId, "account-id", "", "The Plaid `account_id` corresponding to the end-user account that will be debited or credited.")
+ _ = cmd.MarkFlagRequired("account-id")
+ cmd.Flags().StringVar(&bodyAchClass, "ach-class", "", "Specifies the use case of the transfer. Required for transfers on an ACH network. For more details, see [ACH SEC...")
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the transfer (decimal string with two digits of precision e.g. '10.00'). When calling...")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyDescription, "description", "", "The description of the recurring transfer.")
+ _ = cmd.MarkFlagRequired("description")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Specify the account used to fund the transfer. Customers can find a list of `funding_account_id`s in the Accounts...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique recurring transfer. Maximum of 50 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "The currency of the transfer amount. The default value is 'USD'.")
+ cmd.Flags().StringVar(&bodyNetwork, "network", "", "Networks eligible for recurring transfers.")
+ _ = cmd.MarkFlagRequired("network")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTestClockId, "test-clock-id", "", "Plaid’s unique identifier for a test clock. This field may only be used when using the `sandbox` environment. If...")
+ cmd.Flags().StringVar(&bodyType, "type", "", "The type of transfer. This will be either `debit` or `credit`. A `debit` indicates a transfer of money into the...")
+ _ = cmd.MarkFlagRequired("type")
+ cmd.Flags().BoolVar(&bodyUserPresent, "user-present", false, "If the end user is initiating the specific transfer themselves via an interactive UI, this should be `true`; for...")
+
+ return cmd
+}
+
+func newTransferRecurringGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRecurringTransferId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "recurring-get",
+ Short: "Retrieve a recurring transfer",
+ Example: " plaid-cli transfer recurring-get --recurring-transfer-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/recurring/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRecurringTransferId != "" {
+ body["recurring_transfer_id"] = bodyRecurringTransferId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRecurringTransferId, "recurring-transfer-id", "", "Plaid’s unique identifier for a recurring transfer.")
+ _ = cmd.MarkFlagRequired("recurring-transfer-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferRecurringListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndTime string
+ var bodyFundingAccountId string
+ var bodyOffset int
+ var bodySecret string
+ var bodyStartTime string
+
+ cmd := &cobra.Command{
+ Use: "recurring-list",
+ Short: "List recurring transfers",
+ Example: " plaid-cli transfer recurring-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/recurring/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndTime != "" {
+ body["end_time"] = bodyEndTime
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartTime != "" {
+ body["start_time"] = bodyStartTime
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of recurring transfers to return.")
+ cmd.Flags().StringVar(&bodyEndTime, "end-time", "", "The end `created` datetime of recurring transfers to list. This should be in RFC 3339 format (i.e....")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Filter recurring transfers to only those with the specified `funding_account_id`.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of recurring transfers to skip before returning results.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartTime, "start-time", "", "The start `created` datetime of recurring transfers to list. This should be in RFC 3339 format (i.e....")
+
+ return cmd
+}
+
+func newTransferRefundCancelCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRefundId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refund-cancel",
+ Short: "Cancel a refund",
+ Example: " plaid-cli transfer refund-cancel --refund-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/refund/cancel"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRefundId != "" {
+ body["refund_id"] = bodyRefundId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRefundId, "refund-id", "", "Plaid’s unique identifier for a refund.")
+ _ = cmd.MarkFlagRequired("refund-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferRefundCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmount string
+ var bodyClientId string
+ var bodyIdempotencyKey string
+ var bodySecret string
+ var bodyTransferId string
+
+ cmd := &cobra.Command{
+ Use: "refund-create",
+ Short: "Create a refund",
+ Example: " plaid-cli transfer refund-create --amount value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/refund/create"
+ body := map[string]any{}
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTransferId != "" {
+ body["transfer_id"] = bodyTransferId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "The amount of the refund (decimal string with two digits of precision e.g. '10.00').")
+ _ = cmd.MarkFlagRequired("amount")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique refund. Maximum of 50 characters. The API supports idempotency for...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTransferId, "transfer-id", "", "The ID of the transfer to refund.")
+ _ = cmd.MarkFlagRequired("transfer-id")
+
+ return cmd
+}
+
+func newTransferRefundGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyRefundId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "refund-get",
+ Short: "Retrieve a refund",
+ Example: " plaid-cli transfer refund-get --refund-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/refund/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyRefundId != "" {
+ body["refund_id"] = bodyRefundId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyRefundId, "refund-id", "", "Plaid’s unique identifier for a refund.")
+ _ = cmd.MarkFlagRequired("refund-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferRepaymentListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndDate string
+ var bodyOffset int
+ var bodySecret string
+ var bodyStartDate string
+
+ cmd := &cobra.Command{
+ Use: "repayment-list",
+ Short: "Lists historical repayments",
+ Example: " plaid-cli transfer repayment-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/repayment/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of repayments to return.")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end `created` datetime of repayments to return (RFC 3339 format).")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of repayments to skip before returning results.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start `created` datetime of repayments to return (RFC 3339 format).")
+
+ return cmd
+}
+
+func newTransferRepaymentReturnListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyOffset int
+ var bodyRepaymentId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "repayment-return-list",
+ Short: "List the returns included in a repayment",
+ Example: " plaid-cli transfer repayment-return-list --repayment-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/repayment/return/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyRepaymentId != "" {
+ body["repayment_id"] = bodyRepaymentId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of repayments to return.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of repayments to skip before returning results.")
+ cmd.Flags().StringVar(&bodyRepaymentId, "repayment-id", "", "Identifier of the repayment to query.")
+ _ = cmd.MarkFlagRequired("repayment-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newTransferSweepGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodySweepId string
+
+ cmd := &cobra.Command{
+ Use: "sweep-get",
+ Short: "Retrieve a sweep",
+ Example: " plaid-cli transfer sweep-get --sweep-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/sweep/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodySweepId != "" {
+ body["sweep_id"] = bodySweepId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodySweepId, "sweep-id", "", "Plaid's unique identifier for the sweep (UUID) or a shortened form consisting of the first 8 characters of the...")
+ _ = cmd.MarkFlagRequired("sweep-id")
+
+ return cmd
+}
+
+func newTransferSweepListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAmount string
+ var bodyClientId string
+ var bodyCount int
+ var bodyEndDate string
+ var bodyFundingAccountId string
+ var bodyOffset int
+ var bodyOriginatorClientId string
+ var bodySecret string
+ var bodyStartDate string
+ var bodyStatus string
+ var bodyTransferId string
+ var bodyTrigger string
+
+ cmd := &cobra.Command{
+ Use: "sweep-list",
+ Short: "List sweeps",
+ Example: " plaid-cli transfer sweep-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/transfer/sweep/list"
+ body := map[string]any{}
+ if bodyAmount != "" {
+ body["amount"] = bodyAmount
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyEndDate != "" {
+ body["end_date"] = bodyEndDate
+ }
+ if bodyFundingAccountId != "" {
+ body["funding_account_id"] = bodyFundingAccountId
+ }
+ if bodyOffset != 0 {
+ body["offset"] = bodyOffset
+ }
+ if bodyOriginatorClientId != "" {
+ body["originator_client_id"] = bodyOriginatorClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStartDate != "" {
+ body["start_date"] = bodyStartDate
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ if bodyTransferId != "" {
+ body["transfer_id"] = bodyTransferId
+ }
+ if bodyTrigger != "" {
+ body["trigger"] = bodyTrigger
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAmount, "amount", "", "Filter sweeps to only those with the specified amount.")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 25, "The maximum number of sweeps to return.")
+ cmd.Flags().StringVar(&bodyEndDate, "end-date", "", "The end `created` datetime of sweeps to return (RFC 3339 format).")
+ cmd.Flags().StringVar(&bodyFundingAccountId, "funding-account-id", "", "Filter sweeps to only those with the specified `funding_account_id`.")
+ cmd.Flags().IntVar(&bodyOffset, "offset", 0, "The number of sweeps to skip before returning results.")
+ cmd.Flags().StringVar(&bodyOriginatorClientId, "originator-client-id", "", "Filter sweeps to only those with the specified originator client.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStartDate, "start-date", "", "The start `created` datetime of sweeps to return (RFC 3339 format).")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "The status of a sweep transfer `'pending'` - The sweep is currently pending `'posted'` - The sweep has been posted...")
+ cmd.Flags().StringVar(&bodyTransferId, "transfer-id", "", "Filter sweeps to only those with the included `transfer_id`.")
+ cmd.Flags().StringVar(&bodyTrigger, "trigger", "", "The trigger of the sweep `'manual'` - The sweep is created manually by the customer `'incoming'` - The sweep is...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/user-account.go b/plaid-cli/internal/cli/user-account.go
new file mode 100644
index 00000000..006262c0
--- /dev/null
+++ b/plaid-cli/internal/cli/user-account.go
@@ -0,0 +1,115 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newUserAccountCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "user-account",
+ Short: "Manage user account",
+ }
+
+ cmd.AddCommand(newUserAccountSessionEventSendCmd(flags))
+ cmd.AddCommand(newUserAccountSessionGetCmd(flags))
+ return cmd
+}
+
+func newUserAccountSessionEventSendCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCohortId string
+ var bodyLinkSessionId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "session-event-send",
+ Aliases: []string{"create"},
+ Short: "Send User Account Session Event",
+ Example: " plaid-cli user-account session-event-send --link-session-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user_account/session/event/send"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCohortId != "" {
+ body["cohort_id"] = bodyCohortId
+ }
+ if bodyLinkSessionId != "" {
+ body["link_session_id"] = bodyLinkSessionId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCohortId, "cohort-id", "", "Optional cohort identifier for the user session.")
+ cmd.Flags().StringVar(&bodyLinkSessionId, "link-session-id", "", "The Link session identifier.")
+ _ = cmd.MarkFlagRequired("link-session-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newUserAccountSessionGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyPublicToken string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "session-get",
+ Short: "Retrieve User Account",
+ Example: " plaid-cli user-account session-get --public-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user_account/session/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyPublicToken != "" {
+ body["public_token"] = bodyPublicToken
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyPublicToken, "public-token", "", "The public token generated by the end user Layer session.")
+ _ = cmd.MarkFlagRequired("public-token")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/user.go b/plaid-cli/internal/cli/user.go
new file mode 100644
index 00000000..e6fbdd29
--- /dev/null
+++ b/plaid-cli/internal/cli/user.go
@@ -0,0 +1,623 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newUserCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "user",
+ Short: "Manage user",
+ }
+
+ cmd.AddCommand(newUserCreateCmd(flags))
+ cmd.AddCommand(newUserFinancialDataRefreshCmd(flags))
+ cmd.AddCommand(newUserGetCmd(flags))
+ cmd.AddCommand(newUserIdentityRemoveCmd(flags))
+ cmd.AddCommand(newUserItemsAssociateCmd(flags))
+ cmd.AddCommand(newUserItemsGetCmd(flags))
+ cmd.AddCommand(newUserItemsRemoveCmd(flags))
+ cmd.AddCommand(newUserProductsTerminateCmd(flags))
+ cmd.AddCommand(newUserRemoveCmd(flags))
+ cmd.AddCommand(newUserThirdPartyTokenCreateCmd(flags))
+ cmd.AddCommand(newUserThirdPartyTokenRemoveCmd(flags))
+ cmd.AddCommand(newUserTransactionsRefreshCmd(flags))
+ cmd.AddCommand(newUserUpdateCmd(flags))
+ return cmd
+}
+
+func newUserCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyEndCustomer string
+ var bodySecret string
+ var bodyWithUpgradedUser bool
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create user",
+ Example: " plaid-cli user create --client-user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyEndCustomer != "" {
+ body["end_customer"] = bodyEndCustomer
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWithUpgradedUser != false {
+ body["with_upgraded_user"] = bodyWithUpgradedUser
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID representing the end user. Maximum of 128 characters. Typically this will be a user ID number from your...")
+ _ = cmd.MarkFlagRequired("client-user-id")
+ cmd.Flags().StringVar(&bodyEndCustomer, "end-customer", "", "A unique ID representing a CRA reseller's end customer. Maximum of 128 characters.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().BoolVar(&bodyWithUpgradedUser, "with-upgraded-user", false, "When `true`, a new user will be created and a `user_id` will be returned. Otherwise, a legacy user will be created...")
+
+ return cmd
+}
+
+func newUserFinancialDataRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "financial-data-refresh",
+ Short: "Refresh user items for Financial-Insights bundle",
+ Example: " plaid-cli user financial-data-refresh --user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/financial_data/refresh"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A Plaid-generated ID that identifies the end user.")
+ _ = cmd.MarkFlagRequired("user-id")
+
+ return cmd
+}
+
+func newUserGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Retrieve user identity and information",
+ Example: " plaid-cli user get --user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ _ = cmd.MarkFlagRequired("user-id")
+
+ return cmd
+}
+
+func newUserIdentityRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "identity-remove",
+ Short: "Remove user identity data",
+ Example: " plaid-cli user identity-remove --user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/identity/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ _ = cmd.MarkFlagRequired("user-id")
+
+ return cmd
+}
+
+func newUserItemsAssociateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "items-associate",
+ Short: "Associate Items to a User",
+ Example: " plaid-cli user items-associate --user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/items/associate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ _ = cmd.MarkFlagRequired("user-id")
+
+ return cmd
+}
+
+func newUserItemsGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "items-get",
+ Short: "Get Items associated with a User",
+ Example: " plaid-cli user items-get",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/items/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newUserItemsRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "items-remove",
+ Short: "Remove Items from a User",
+ Example: " plaid-cli user items-remove",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/items/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newUserProductsTerminateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "products-terminate",
+ Short: "Terminate user-based products",
+ Example: " plaid-cli user products-terminate --user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/products/terminate"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ _ = cmd.MarkFlagRequired("user-id")
+
+ return cmd
+}
+
+func newUserRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "remove",
+ Short: "Remove user",
+ Example: " plaid-cli user remove",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newUserThirdPartyTokenCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyExpirationTime string
+ var bodySecret string
+ var bodyThirdPartyClientId string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "third-party-token-create",
+ Short: "Create a third-party user token",
+ Example: " plaid-cli user third-party-token-create --third-party-client-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/third_party_token/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyExpirationTime != "" {
+ body["expiration_time"] = bodyExpirationTime
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyClientId != "" {
+ body["third_party_client_id"] = bodyThirdPartyClientId
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyExpirationTime, "expiration-time", "", "The expiration date and time for the third-party user token in [ISO 8601](https://wikipedia.org/wiki/ISO_8601)...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyClientId, "third-party-client-id", "", "The Plaid API `client_id` of the third-party client the token will be shared with. The token will only be valid for...")
+ _ = cmd.MarkFlagRequired("third-party-client-id")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
+func newUserThirdPartyTokenRemoveCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyThirdPartyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "third-party-token-remove",
+ Short: "Remove a third-party user token",
+ Example: " plaid-cli user third-party-token-remove --third-party-user-token value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/third_party_token/remove"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyThirdPartyUserToken != "" {
+ body["third_party_user_token"] = bodyThirdPartyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyThirdPartyUserToken, "third-party-user-token", "", "The third-party user token associated with the requested User data.")
+ _ = cmd.MarkFlagRequired("third-party-user-token")
+
+ return cmd
+}
+
+func newUserTransactionsRefreshCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+
+ cmd := &cobra.Command{
+ Use: "transactions-refresh",
+ Short: "Refresh user items for Transactions bundle",
+ Example: " plaid-cli user transactions-refresh --user-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/transactions/refresh"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A Plaid-generated ID that identifies the end user.")
+ _ = cmd.MarkFlagRequired("user-id")
+
+ return cmd
+}
+
+func newUserUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyUserId string
+ var bodyUserToken string
+
+ cmd := &cobra.Command{
+ Use: "update",
+ Short: "Update user information",
+ Example: " plaid-cli user update",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/user/update"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyUserId != "" {
+ body["user_id"] = bodyUserId
+ }
+ if bodyUserToken != "" {
+ body["user_token"] = bodyUserToken
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyUserId, "user-id", "", "A unique user identifier, created by `/user/create`. Integrations that began using `/user/create` after December 10,...")
+ cmd.Flags().StringVar(&bodyUserToken, "user-token", "", "The user token associated with the User data is being requested for. This field is used only by customers with...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/wallet.go b/plaid-cli/internal/cli/wallet.go
new file mode 100644
index 00000000..9499676a
--- /dev/null
+++ b/plaid-cli/internal/cli/wallet.go
@@ -0,0 +1,312 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newWalletCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "wallet",
+ Short: "Manage wallet",
+ }
+
+ cmd.AddCommand(newWalletCreateCmd(flags))
+ cmd.AddCommand(newWalletGetCmd(flags))
+ cmd.AddCommand(newWalletListCmd(flags))
+ cmd.AddCommand(newWalletTransactionExecuteCmd(flags))
+ cmd.AddCommand(newWalletTransactionGetCmd(flags))
+ cmd.AddCommand(newWalletTransactionListCmd(flags))
+ return cmd
+}
+
+func newWalletCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIsoCurrencyCode string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "create",
+ Short: "Create an e-wallet",
+ Example: " plaid-cli wallet create --iso-currency-code value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/wallet/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "An ISO-4217 currency code, used with e-wallets and transactions.")
+ _ = cmd.MarkFlagRequired("iso-currency-code")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWalletGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyWalletId string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Short: "Fetch an e-wallet",
+ Example: " plaid-cli wallet get --wallet-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/wallet/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWalletId != "" {
+ body["wallet_id"] = bodyWalletId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWalletId, "wallet-id", "", "The ID of the e-wallet")
+ _ = cmd.MarkFlagRequired("wallet-id")
+
+ return cmd
+}
+
+func newWalletListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodyIsoCurrencyCode string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "list",
+ Short: "Fetch a list of e-wallets",
+ Example: " plaid-cli wallet list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/wallet/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyIsoCurrencyCode != "" {
+ body["iso_currency_code"] = bodyIsoCurrencyCode
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 10, "The number of e-wallets to fetch")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "A base64 value representing the latest e-wallet that has already been requested. Set this to `next_cursor` received...")
+ cmd.Flags().StringVar(&bodyIsoCurrencyCode, "iso-currency-code", "", "An ISO-4217 currency code, used with e-wallets and transactions.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWalletTransactionExecuteCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyIdempotencyKey string
+ var bodyReference string
+ var bodySecret string
+ var bodyWalletId string
+
+ cmd := &cobra.Command{
+ Use: "transaction-execute",
+ Short: "Execute a transaction using an e-wallet",
+ Example: " plaid-cli wallet transaction-execute --idempotency-key value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/wallet/transaction/execute"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyIdempotencyKey != "" {
+ body["idempotency_key"] = bodyIdempotencyKey
+ }
+ if bodyReference != "" {
+ body["reference"] = bodyReference
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWalletId != "" {
+ body["wallet_id"] = bodyWalletId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyIdempotencyKey, "idempotency-key", "", "A random key provided by the client, per unique wallet transaction. Maximum of 128 characters. The API supports...")
+ _ = cmd.MarkFlagRequired("idempotency-key")
+ cmd.Flags().StringVar(&bodyReference, "reference", "", "A reference for the transaction. This must be an alphanumeric string with 6 to 18 characters and must not contain...")
+ _ = cmd.MarkFlagRequired("reference")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWalletId, "wallet-id", "", "The ID of the e-wallet to debit from")
+ _ = cmd.MarkFlagRequired("wallet-id")
+
+ return cmd
+}
+
+func newWalletTransactionGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyTransactionId string
+
+ cmd := &cobra.Command{
+ Use: "transaction-get",
+ Short: "Fetch an e-wallet transaction",
+ Example: " plaid-cli wallet transaction-get --transaction-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/wallet/transaction/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyTransactionId != "" {
+ body["transaction_id"] = bodyTransactionId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyTransactionId, "transaction-id", "", "The ID of the transaction to fetch")
+ _ = cmd.MarkFlagRequired("transaction-id")
+
+ return cmd
+}
+
+func newWalletTransactionListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCount int
+ var bodyCursor string
+ var bodySecret string
+ var bodyWalletId string
+
+ cmd := &cobra.Command{
+ Use: "transaction-list",
+ Short: "List e-wallet transactions",
+ Example: " plaid-cli wallet transaction-list --wallet-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/wallet/transaction/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCount != 0 {
+ body["count"] = bodyCount
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWalletId != "" {
+ body["wallet_id"] = bodyWalletId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().IntVar(&bodyCount, "count", 10, "The number of transactions to fetch")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "A value representing the latest transaction to be included in the response. Set this from `next_cursor` received in...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWalletId, "wallet-id", "", "The ID of the e-wallet to fetch transactions from")
+ _ = cmd.MarkFlagRequired("wallet-id")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/watchlist-screening.go b/plaid-cli/internal/cli/watchlist-screening.go
new file mode 100644
index 00000000..9f23d090
--- /dev/null
+++ b/plaid-cli/internal/cli/watchlist-screening.go
@@ -0,0 +1,990 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newWatchlistScreeningCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "watchlist-screening",
+ Short: "Manage watchlist screening",
+ }
+
+ cmd.AddCommand(newWatchlistScreeningEntityCreateCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityGetCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityHistoryListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityHitListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityProgramGetCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityProgramListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityReviewCreateCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityReviewListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningEntityUpdateCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualCreateCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualGetCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualHistoryListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualHitListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualProgramGetCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualProgramListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualReviewCreateCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualReviewListCmd(flags))
+ cmd.AddCommand(newWatchlistScreeningIndividualUpdateCmd(flags))
+ return cmd
+}
+
+func newWatchlistScreeningEntityCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-create",
+ Aliases: []string{"create"},
+ Short: "Create a watchlist screening for an entity",
+ Example: " plaid-cli watchlist-screening entity-create",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEntityWatchlistScreeningId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-get",
+ Short: "Get an entity screening",
+ Example: " plaid-cli watchlist-screening entity-get --entity-watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEntityWatchlistScreeningId != "" {
+ body["entity_watchlist_screening_id"] = bodyEntityWatchlistScreeningId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEntityWatchlistScreeningId, "entity-watchlist-screening-id", "", "ID of the associated entity screening.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-screening-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityHistoryListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodyEntityWatchlistScreeningId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-history-list",
+ Short: "List history for entity watchlist screenings",
+ Example: " plaid-cli watchlist-screening entity-history-list --entity-watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/history/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyEntityWatchlistScreeningId != "" {
+ body["entity_watchlist_screening_id"] = bodyEntityWatchlistScreeningId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodyEntityWatchlistScreeningId, "entity-watchlist-screening-id", "", "ID of the associated entity screening.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-screening-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityHitListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodyEntityWatchlistScreeningId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-hit-list",
+ Short: "List hits for entity watchlist screenings",
+ Example: " plaid-cli watchlist-screening entity-hit-list --entity-watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/hit/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyEntityWatchlistScreeningId != "" {
+ body["entity_watchlist_screening_id"] = bodyEntityWatchlistScreeningId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodyEntityWatchlistScreeningId, "entity-watchlist-screening-id", "", "ID of the associated entity screening.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-screening-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssignee string
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyCursor string
+ var bodyEntityWatchlistProgramId string
+ var bodySecret string
+ var bodyStatus string
+
+ cmd := &cobra.Command{
+ Use: "entity-list",
+ Short: "List entity watchlist screenings",
+ Example: " plaid-cli watchlist-screening entity-list --entity-watchlist-program-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/list"
+ body := map[string]any{}
+ if bodyAssignee != "" {
+ body["assignee"] = bodyAssignee
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyEntityWatchlistProgramId != "" {
+ body["entity_watchlist_program_id"] = bodyEntityWatchlistProgramId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssignee, "assignee", "", "ID of the associated user. To retrieve the email address or other details of the person corresponding to this id,...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodyEntityWatchlistProgramId, "entity-watchlist-program-id", "", "ID of the associated entity program.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-program-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityProgramGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyEntityWatchlistProgramId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-program-get",
+ Short: "Get entity watchlist screening program",
+ Example: " plaid-cli watchlist-screening entity-program-get --entity-watchlist-program-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/program/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyEntityWatchlistProgramId != "" {
+ body["entity_watchlist_program_id"] = bodyEntityWatchlistProgramId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyEntityWatchlistProgramId, "entity-watchlist-program-id", "", "ID of the associated entity program.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-program-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityProgramListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-program-list",
+ Short: "List entity watchlist screening programs",
+ Example: " plaid-cli watchlist-screening entity-program-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/program/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityReviewCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyComment string
+ var bodyEntityWatchlistScreeningId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-review-create",
+ Short: "Create a review for an entity watchlist screening",
+ Example: " plaid-cli watchlist-screening entity-review-create --entity-watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/review/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyComment != "" {
+ body["comment"] = bodyComment
+ }
+ if bodyEntityWatchlistScreeningId != "" {
+ body["entity_watchlist_screening_id"] = bodyEntityWatchlistScreeningId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyComment, "comment", "", "A comment submitted by a team member as part of reviewing a watchlist screening.")
+ cmd.Flags().StringVar(&bodyEntityWatchlistScreeningId, "entity-watchlist-screening-id", "", "ID of the associated entity screening.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-screening-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityReviewListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodyEntityWatchlistScreeningId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "entity-review-list",
+ Short: "List reviews for entity watchlist screenings",
+ Example: " plaid-cli watchlist-screening entity-review-list --entity-watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/review/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodyEntityWatchlistScreeningId != "" {
+ body["entity_watchlist_screening_id"] = bodyEntityWatchlistScreeningId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodyEntityWatchlistScreeningId, "entity-watchlist-screening-id", "", "ID of the associated entity screening.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-screening-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningEntityUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssignee string
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyEntityWatchlistScreeningId string
+ var bodySecret string
+ var bodyStatus string
+
+ cmd := &cobra.Command{
+ Use: "entity-update",
+ Short: "Update an entity screening",
+ Example: " plaid-cli watchlist-screening entity-update --entity-watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/entity/update"
+ body := map[string]any{}
+ if bodyAssignee != "" {
+ body["assignee"] = bodyAssignee
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyEntityWatchlistScreeningId != "" {
+ body["entity_watchlist_screening_id"] = bodyEntityWatchlistScreeningId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssignee, "assignee", "", "ID of the associated user. To retrieve the email address or other details of the person corresponding to this id,...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodyEntityWatchlistScreeningId, "entity-watchlist-screening-id", "", "ID of the associated entity screening.")
+ _ = cmd.MarkFlagRequired("entity-watchlist-screening-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "individual-create",
+ Short: "Create a watchlist screening for a person",
+ Example: " plaid-cli watchlist-screening individual-create",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyWatchlistScreeningId string
+
+ cmd := &cobra.Command{
+ Use: "individual-get",
+ Short: "Retrieve an individual watchlist screening",
+ Example: " plaid-cli watchlist-screening individual-get --watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWatchlistScreeningId != "" {
+ body["watchlist_screening_id"] = bodyWatchlistScreeningId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWatchlistScreeningId, "watchlist-screening-id", "", "ID of the associated screening.")
+ _ = cmd.MarkFlagRequired("watchlist-screening-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualHistoryListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+ var bodyWatchlistScreeningId string
+
+ cmd := &cobra.Command{
+ Use: "individual-history-list",
+ Short: "List history for individual watchlist screenings",
+ Example: " plaid-cli watchlist-screening individual-history-list --watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/history/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWatchlistScreeningId != "" {
+ body["watchlist_screening_id"] = bodyWatchlistScreeningId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWatchlistScreeningId, "watchlist-screening-id", "", "ID of the associated screening.")
+ _ = cmd.MarkFlagRequired("watchlist-screening-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualHitListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+ var bodyWatchlistScreeningId string
+
+ cmd := &cobra.Command{
+ Use: "individual-hit-list",
+ Short: "List hits for individual watchlist screening",
+ Example: " plaid-cli watchlist-screening individual-hit-list --watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/hit/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWatchlistScreeningId != "" {
+ body["watchlist_screening_id"] = bodyWatchlistScreeningId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWatchlistScreeningId, "watchlist-screening-id", "", "ID of the associated screening.")
+ _ = cmd.MarkFlagRequired("watchlist-screening-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualListCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssignee string
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodyCursor string
+ var bodySecret string
+ var bodyStatus string
+ var bodyWatchlistProgramId string
+
+ cmd := &cobra.Command{
+ Use: "individual-list",
+ Short: "List Individual Watchlist Screenings",
+ Example: " plaid-cli watchlist-screening individual-list --watchlist-program-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/list"
+ body := map[string]any{}
+ if bodyAssignee != "" {
+ body["assignee"] = bodyAssignee
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ if bodyWatchlistProgramId != "" {
+ body["watchlist_program_id"] = bodyWatchlistProgramId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssignee, "assignee", "", "ID of the associated user. To retrieve the email address or other details of the person corresponding to this id,...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.")
+ cmd.Flags().StringVar(&bodyWatchlistProgramId, "watchlist-program-id", "", "ID of the associated program.")
+ _ = cmd.MarkFlagRequired("watchlist-program-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualProgramGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodySecret string
+ var bodyWatchlistProgramId string
+
+ cmd := &cobra.Command{
+ Use: "individual-program-get",
+ Short: "Get individual watchlist screening program",
+ Example: " plaid-cli watchlist-screening individual-program-get --watchlist-program-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/program/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWatchlistProgramId != "" {
+ body["watchlist_program_id"] = bodyWatchlistProgramId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWatchlistProgramId, "watchlist-program-id", "", "ID of the associated program.")
+ _ = cmd.MarkFlagRequired("watchlist-program-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualProgramListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "individual-program-list",
+ Short: "List individual watchlist screening programs",
+ Example: " plaid-cli watchlist-screening individual-program-list",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/program/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualReviewCreateCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyComment string
+ var bodySecret string
+ var bodyWatchlistScreeningId string
+
+ cmd := &cobra.Command{
+ Use: "individual-review-create",
+ Short: "Create a review for an individual watchlist screening",
+ Example: " plaid-cli watchlist-screening individual-review-create --watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/review/create"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyComment != "" {
+ body["comment"] = bodyComment
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWatchlistScreeningId != "" {
+ body["watchlist_screening_id"] = bodyWatchlistScreeningId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyComment, "comment", "", "A comment submitted by a team member as part of reviewing a watchlist screening.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWatchlistScreeningId, "watchlist-screening-id", "", "ID of the associated screening.")
+ _ = cmd.MarkFlagRequired("watchlist-screening-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualReviewListCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyCursor string
+ var bodySecret string
+ var bodyWatchlistScreeningId string
+
+ cmd := &cobra.Command{
+ Use: "individual-review-list",
+ Short: "List reviews for individual watchlist screenings",
+ Example: " plaid-cli watchlist-screening individual-review-list --watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/review/list"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyCursor != "" {
+ body["cursor"] = bodyCursor
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyWatchlistScreeningId != "" {
+ body["watchlist_screening_id"] = bodyWatchlistScreeningId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyCursor, "cursor", "", "An identifier that determines which page of results you receive.")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyWatchlistScreeningId, "watchlist-screening-id", "", "ID of the associated screening.")
+ _ = cmd.MarkFlagRequired("watchlist-screening-id")
+
+ return cmd
+}
+
+func newWatchlistScreeningIndividualUpdateCmd(flags *rootFlags) *cobra.Command {
+ var bodyAssignee string
+ var bodyClientId string
+ var bodyClientUserId string
+ var bodySecret string
+ var bodyStatus string
+ var bodyWatchlistScreeningId string
+
+ cmd := &cobra.Command{
+ Use: "individual-update",
+ Short: "Update individual watchlist screening",
+ Example: " plaid-cli watchlist-screening individual-update --watchlist-screening-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/watchlist_screening/individual/update"
+ body := map[string]any{}
+ if bodyAssignee != "" {
+ body["assignee"] = bodyAssignee
+ }
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyClientUserId != "" {
+ body["client_user_id"] = bodyClientUserId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ if bodyStatus != "" {
+ body["status"] = bodyStatus
+ }
+ if bodyWatchlistScreeningId != "" {
+ body["watchlist_screening_id"] = bodyWatchlistScreeningId
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyAssignee, "assignee", "", "ID of the associated user. To retrieve the email address or other details of the person corresponding to this id,...")
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyClientUserId, "client-user-id", "", "A unique ID that identifies the end user in your system. Either a `user_id` or the `client_user_id` must be...")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+ cmd.Flags().StringVar(&bodyStatus, "status", "", "A status enum indicating whether a screening is still pending review, has been rejected, or has been cleared.")
+ cmd.Flags().StringVar(&bodyWatchlistScreeningId, "watchlist-screening-id", "", "ID of the associated screening.")
+ _ = cmd.MarkFlagRequired("watchlist-screening-id")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/cli/webhook-verification-key.go b/plaid-cli/internal/cli/webhook-verification-key.go
new file mode 100644
index 00000000..f8aef2ab
--- /dev/null
+++ b/plaid-cli/internal/cli/webhook-verification-key.go
@@ -0,0 +1,67 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package cli
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+var _ = strings.ReplaceAll // ensure import
+var _ = fmt.Sprintf // ensure import
+
+func newWebhookVerificationKeyCmd(flags *rootFlags) *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "webhook-verification-key",
+ Short: "Manage webhook verification key",
+ }
+
+ cmd.AddCommand(newWebhookVerificationKeyGetCmd(flags))
+ return cmd
+}
+
+func newWebhookVerificationKeyGetCmd(flags *rootFlags) *cobra.Command {
+ var bodyClientId string
+ var bodyKeyId string
+ var bodySecret string
+
+ cmd := &cobra.Command{
+ Use: "get",
+ Aliases: []string{"create"},
+ Short: "Get webhook verification key",
+ Example: " plaid-cli webhook-verification-key get --key-id value",
+ RunE: func(cmd *cobra.Command, args []string) error {
+ c, err := flags.newClient()
+ if err != nil {
+ return err
+ }
+
+ path := "/webhook_verification_key/get"
+ body := map[string]any{}
+ if bodyClientId != "" {
+ body["client_id"] = bodyClientId
+ }
+ if bodyKeyId != "" {
+ body["key_id"] = bodyKeyId
+ }
+ if bodySecret != "" {
+ body["secret"] = bodySecret
+ }
+ data, err := c.Post(path, body)
+ if err != nil {
+ return classifyAPIError(err)
+ }
+
+ return printOutput(cmd.OutOrStdout(), data, flags.asJSON)
+ },
+ }
+ cmd.Flags().StringVar(&bodyClientId, "client-id", "", "Your Plaid API `client_id`. The `client_id` is required and may be provided either in the `PLAID-CLIENT-ID` header...")
+ cmd.Flags().StringVar(&bodyKeyId, "key-id", "", "The key ID ( `kid` ) from the JWT header.")
+ _ = cmd.MarkFlagRequired("key-id")
+ cmd.Flags().StringVar(&bodySecret, "secret", "", "Your Plaid API `secret`. The `secret` is required and may be provided either in the `PLAID-SECRET` header or as part...")
+
+ return cmd
+}
+
diff --git a/plaid-cli/internal/client/client.go b/plaid-cli/internal/client/client.go
new file mode 100644
index 00000000..276557b0
--- /dev/null
+++ b/plaid-cli/internal/client/client.go
@@ -0,0 +1,300 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package client
+
+import (
+ "encoding/json"
+ "fmt"
+ "io"
+ "math"
+ "net/http"
+ "net/url"
+ "os"
+ "strconv"
+ "strings"
+ "time"
+
+ "github.com/USER/plaid-cli/internal/config"
+)
+
+type Client struct {
+ BaseURL string
+ Config *config.Config
+ HTTPClient *http.Client
+ DryRun bool
+}
+
+// APIError carries HTTP status information for structured exit codes.
+type APIError struct {
+ Method string
+ Path string
+ StatusCode int
+ Body string
+}
+
+func (e *APIError) Error() string {
+ return fmt.Sprintf("%s %s returned HTTP %d: %s", e.Method, e.Path, e.StatusCode, e.Body)
+}
+
+func New(cfg *config.Config, timeout time.Duration) *Client {
+ return &Client{
+ BaseURL: strings.TrimRight(cfg.BaseURL, "/"),
+ Config: cfg,
+ HTTPClient: &http.Client{Timeout: timeout},
+ }
+}
+
+func (c *Client) Get(path string, params map[string]string) (json.RawMessage, error) {
+ return c.do("GET", path, params, nil)
+}
+
+func (c *Client) Post(path string, body any) (json.RawMessage, error) {
+ return c.do("POST", path, nil, body)
+}
+
+func (c *Client) Delete(path string) (json.RawMessage, error) {
+ return c.do("DELETE", path, nil, nil)
+}
+
+func (c *Client) Put(path string, body any) (json.RawMessage, error) {
+ return c.do("PUT", path, nil, body)
+}
+
+func (c *Client) Patch(path string, body any) (json.RawMessage, error) {
+ return c.do("PATCH", path, nil, body)
+}
+
+func (c *Client) do(method, path string, params map[string]string, body any) (json.RawMessage, error) {
+ url := c.BaseURL + path
+
+ var bodyBytes []byte
+ if body != nil {
+ b, err := json.Marshal(body)
+ if err != nil {
+ return nil, fmt.Errorf("marshaling body: %w", err)
+ }
+ bodyBytes = b
+ }
+
+ // Build the request for dry-run display or actual execution
+ if c.DryRun {
+ return c.dryRun(method, url, params, bodyBytes)
+ }
+
+ const maxRetries = 3
+ var lastErr error
+
+ for attempt := 0; attempt <= maxRetries; attempt++ {
+ var bodyReader io.Reader
+ if bodyBytes != nil {
+ bodyReader = strings.NewReader(string(bodyBytes))
+ }
+
+ req, err := http.NewRequest(method, url, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("creating request: %w", err)
+ }
+
+ authHeader, err := c.authHeader()
+ if err != nil {
+ return nil, err
+ }
+ if authHeader != "" {
+ req.Header.Set("Authorization", authHeader)
+ }
+ if bodyBytes != nil {
+ req.Header.Set("Content-Type", "application/json")
+ }
+ req.Header.Set("User-Agent", "plaid-cli/2020-09-14_1.682.2")
+
+ if params != nil {
+ q := req.URL.Query()
+ for k, v := range params {
+ if v != "" {
+ q.Set(k, v)
+ }
+ }
+ req.URL.RawQuery = q.Encode()
+ }
+
+ resp, err := c.HTTPClient.Do(req)
+ if err != nil {
+ lastErr = fmt.Errorf("%s %s: %w", method, path, err)
+ continue
+ }
+
+ respBody, err := io.ReadAll(resp.Body)
+ resp.Body.Close()
+ if err != nil {
+ return nil, fmt.Errorf("reading response: %w", err)
+ }
+
+ // Success
+ if resp.StatusCode < 400 {
+ return json.RawMessage(respBody), nil
+ }
+
+ apiErr := &APIError{
+ Method: method,
+ Path: path,
+ StatusCode: resp.StatusCode,
+ Body: truncateBody(respBody),
+ }
+
+ // Rate limited - wait and retry
+ if resp.StatusCode == 429 && attempt < maxRetries {
+ wait := retryAfter(resp)
+ fmt.Fprintf(os.Stderr, "rate limited, waiting %s (attempt %d/%d)\n", wait, attempt+1, maxRetries)
+ time.Sleep(wait)
+ lastErr = apiErr
+ continue
+ }
+
+ // Server error - retry with backoff
+ if resp.StatusCode >= 500 && attempt < maxRetries {
+ wait := time.Duration(math.Pow(2, float64(attempt))) * time.Second
+ fmt.Fprintf(os.Stderr, "server error %d, retrying in %s (attempt %d/%d)\n", resp.StatusCode, wait, attempt+1, maxRetries)
+ time.Sleep(wait)
+ lastErr = apiErr
+ continue
+ }
+
+ // Client error or retries exhausted - return the error
+ return nil, apiErr
+ }
+
+ return nil, lastErr
+}
+
+func (c *Client) dryRun(method, url string, params map[string]string, body []byte) (json.RawMessage, error) {
+ fmt.Fprintf(os.Stderr, "%s %s\n", method, url)
+ if params != nil {
+ for k, v := range params {
+ if v != "" {
+ fmt.Fprintf(os.Stderr, " ?%s=%s\n", k, v)
+ }
+ }
+ }
+ authHeader, err := c.authHeader()
+ if err != nil {
+ return nil, err
+ }
+ if authHeader != "" {
+ // Mask token for safety
+ auth := authHeader
+ if len(auth) > 20 {
+ auth = auth[:15] + "..."
+ }
+ fmt.Fprintf(os.Stderr, " Authorization: %s\n", auth)
+ }
+ if body != nil {
+ var pretty json.RawMessage
+ if json.Unmarshal(body, &pretty) == nil {
+ enc := json.NewEncoder(os.Stderr)
+ enc.SetIndent(" ", " ")
+ fmt.Fprintf(os.Stderr, " Body:\n")
+ enc.Encode(pretty)
+ }
+ }
+ fmt.Fprintf(os.Stderr, "\n(dry run - no request sent)\n")
+ return json.RawMessage(`{"dry_run": true}`), nil
+}
+
+func (c *Client) authHeader() (string, error) {
+ if c.Config == nil {
+ return "", nil
+ }
+ if c.Config.AccessToken != "" && !c.Config.TokenExpiry.IsZero() && time.Now().After(c.Config.TokenExpiry) && c.Config.RefreshToken != "" {
+ if err := c.refreshAccessToken(); err != nil {
+ return "", err
+ }
+ }
+ return c.Config.AuthHeader(), nil
+}
+
+func (c *Client) refreshAccessToken() error {
+ if c.Config == nil {
+ return nil
+ }
+ if c.Config.RefreshToken == "" {
+ return nil
+ }
+
+ tokenURL := ""
+ if tokenURL == "" {
+ return nil
+ }
+
+ params := url.Values{
+ "grant_type": {"refresh_token"},
+ "refresh_token": {c.Config.RefreshToken},
+ "client_id": {c.Config.ClientID},
+ }
+ if c.Config.ClientSecret != "" {
+ params.Set("client_secret", c.Config.ClientSecret)
+ }
+
+ resp, err := c.HTTPClient.PostForm(tokenURL, params)
+ if err != nil {
+ return fmt.Errorf("refreshing access token: %w", err)
+ }
+ defer resp.Body.Close()
+
+ if resp.StatusCode >= 400 {
+ body, _ := io.ReadAll(resp.Body)
+ return fmt.Errorf("refreshing access token: HTTP %d: %s", resp.StatusCode, truncateBody(body))
+ }
+
+ var tokenResp struct {
+ AccessToken string `json:"access_token"`
+ RefreshToken string `json:"refresh_token"`
+ ExpiresIn int `json:"expires_in"`
+ }
+ if err := json.NewDecoder(resp.Body).Decode(&tokenResp); err != nil {
+ return fmt.Errorf("parsing refresh response: %w", err)
+ }
+ if tokenResp.AccessToken == "" {
+ return fmt.Errorf("refreshing access token: no access token in response")
+ }
+
+ refreshToken := c.Config.RefreshToken
+ if tokenResp.RefreshToken != "" {
+ refreshToken = tokenResp.RefreshToken
+ }
+
+ expiry := time.Time{}
+ if tokenResp.ExpiresIn > 0 {
+ expiry = time.Now().Add(time.Duration(tokenResp.ExpiresIn) * time.Second)
+ }
+
+ if err := c.Config.SaveTokens(c.Config.ClientID, c.Config.ClientSecret, tokenResp.AccessToken, refreshToken, expiry); err != nil {
+ return fmt.Errorf("saving refreshed token: %w", err)
+ }
+
+ return nil
+}
+
+func retryAfter(resp *http.Response) time.Duration {
+ header := resp.Header.Get("Retry-After")
+ if header == "" {
+ return 5 * time.Second
+ }
+ if seconds, err := strconv.Atoi(header); err == nil {
+ return time.Duration(seconds) * time.Second
+ }
+ if t, err := http.ParseTime(header); err == nil {
+ wait := time.Until(t)
+ if wait > 0 {
+ return wait
+ }
+ }
+ return 5 * time.Second
+}
+
+func truncateBody(b []byte) string {
+ s := string(b)
+ if len(s) > 200 {
+ return s[:200] + "..."
+ }
+ return s
+}
diff --git a/plaid-cli/internal/config/config.go b/plaid-cli/internal/config/config.go
new file mode 100644
index 00000000..06097a11
--- /dev/null
+++ b/plaid-cli/internal/config/config.go
@@ -0,0 +1,105 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package config
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+ "strings"
+ "time"
+
+ "github.com/pelletier/go-toml/v2"
+)
+
+type Config struct {
+ BaseURL string `toml:"base_url"`
+ AuthHeaderVal string `toml:"auth_header"`
+ AuthSource string `toml:"-"`
+ AccessToken string `toml:"access_token"`
+ RefreshToken string `toml:"refresh_token"`
+ TokenExpiry time.Time `toml:"token_expiry"`
+ ClientID string `toml:"client_id"`
+ ClientSecret string `toml:"client_secret"`
+ Path string `toml:"-"`
+ PlaidClientId string `toml:"client_id"`
+}
+
+func Load(configPath string) (*Config, error) {
+ cfg := &Config{
+ BaseURL: "https://production.plaid.com",
+ }
+
+ // Resolve config path
+ path := configPath
+ if path == "" {
+ path = os.Getenv("PLAID_CONFIG")
+ }
+ if path == "" {
+ home, _ := os.UserHomeDir()
+ path = filepath.Join(home, ".config", "plaid-cli", "config.toml")
+ }
+ cfg.Path = path
+
+ // Try to load config file
+ data, err := os.ReadFile(path)
+ if err == nil {
+ if err := toml.Unmarshal(data, cfg); err != nil {
+ return nil, fmt.Errorf("parsing config %s: %w", path, err)
+ }
+ }
+
+ // Env var overrides
+ if v := os.Getenv("PLAID_CLIENT_ID"); v != "" {
+ cfg.PlaidClientId = v
+ cfg.AuthSource = "env:PLAID_CLIENT_ID"
+ }
+
+ return cfg, nil
+}
+
+func (c *Config) AuthHeader() string {
+ if c.AuthHeaderVal != "" {
+ return c.AuthHeaderVal
+ }
+ if c.PlaidClientId == "" {
+ return ""
+ }
+ format := ""
+ format = strings.ReplaceAll(format, "{client_id}", c.PlaidClientId)
+ if strings.Contains(format, "{") {
+ return "" // not all vars resolved
+ }
+ return format
+}
+
+func (c *Config) SaveTokens(clientID, clientSecret, accessToken, refreshToken string, expiry time.Time) error {
+ c.ClientID = clientID
+ c.ClientSecret = clientSecret
+ c.AccessToken = accessToken
+ c.RefreshToken = refreshToken
+ c.TokenExpiry = expiry
+ return c.save()
+}
+
+func (c *Config) ClearTokens() error {
+ c.AccessToken = ""
+ c.RefreshToken = ""
+ c.TokenExpiry = time.Time{}
+ return c.save()
+}
+
+func (c *Config) save() error {
+ dir := filepath.Dir(c.Path)
+ if err := os.MkdirAll(dir, 0o700); err != nil {
+ return fmt.Errorf("creating config dir: %w", err)
+ }
+ data, err := toml.Marshal(c)
+ if err != nil {
+ return fmt.Errorf("marshaling config: %w", err)
+ }
+ return os.WriteFile(c.Path, data, 0o600)
+}
+
+// Ensure strings import is used
+var _ = strings.ReplaceAll
diff --git a/plaid-cli/internal/types/types.go b/plaid-cli/internal/types/types.go
new file mode 100644
index 00000000..e149b0b5
--- /dev/null
+++ b/plaid-cli/internal/types/types.go
@@ -0,0 +1,12972 @@
+// Code generated by CLI Printing Press. DO NOT EDIT.
+
+package types
+
+type AAMVAAnalysis struct {
+ City string `json:"city"`
+ DateOfBirth string `json:"date_of_birth"`
+ EyeColor string `json:"eye_color"`
+ FirstName string `json:"first_name"`
+ Gender string `json:"gender"`
+ Height string `json:"height"`
+ IdExpirationDate string `json:"id_expiration_date"`
+ IdIssueDate string `json:"id_issue_date"`
+ IdNumber string `json:"id_number"`
+ IsVerified bool `json:"is_verified"`
+ LastName string `json:"last_name"`
+ MiddleName string `json:"middle_name"`
+ PostalCode string `json:"postal_code"`
+ Street string `json:"street"`
+}
+
+type APR struct {
+ AprPercentage float64 `json:"apr_percentage"`
+ AprType string `json:"apr_type"`
+ BalanceSubjectToApr float64 `json:"balance_subject_to_apr"`
+ InterestChargeAmount float64 `json:"interest_charge_amount"`
+}
+
+type AccountAccess struct {
+ AccountProductAccess string `json:"account_product_access"`
+ Authorized bool `json:"authorized"`
+ UniqueId string `json:"unique_id"`
+}
+
+type AccountAssets struct {
+ AccountId string `json:"account_id"`
+ AccountInsights string `json:"account_insights"`
+ Balances string `json:"balances"`
+ DaysAvailable float64 `json:"days_available"`
+ HistoricalBalances string `json:"historical_balances"`
+ Investments string `json:"investments"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ OwnershipType string `json:"ownership_type"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ Subtype string `json:"subtype"`
+ Transactions string `json:"transactions"`
+ Type string `json:"type"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AccountBalance struct {
+ Available float64 `json:"available"`
+ Current float64 `json:"current"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LastUpdatedDatetime string `json:"last_updated_datetime"`
+ Limit float64 `json:"limit"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type AccountBase struct {
+ AccountId string `json:"account_id"`
+ Balances string `json:"balances"`
+ HolderCategory string `json:"holder_category"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationName string `json:"verification_name"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AccountBaseNullable struct {
+ AccountId string `json:"account_id"`
+ Balances string `json:"balances"`
+ HolderCategory string `json:"holder_category"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationName string `json:"verification_name"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AccountFilter struct {
+ Credit string `json:"credit"`
+ Depository string `json:"depository"`
+ Investment string `json:"investment"`
+ Loan string `json:"loan"`
+}
+
+type AccountFiltersResponse struct {
+ Credit string `json:"credit"`
+ Depository string `json:"depository"`
+ Investment string `json:"investment"`
+ Loan string `json:"loan"`
+}
+
+type AccountIdentity struct {
+ AccountId string `json:"account_id"`
+ Balances string `json:"balances"`
+ HolderCategory string `json:"holder_category"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationName string `json:"verification_name"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AccountIdentityDocumentUpload struct {
+ AccountId string `json:"account_id"`
+ Balances string `json:"balances"`
+ Documents string `json:"documents"`
+ HolderCategory string `json:"holder_category"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationName string `json:"verification_name"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AccountIdentityMatchScore struct {
+ AccountId string `json:"account_id"`
+ Address string `json:"address"`
+ Balances string `json:"balances"`
+ EmailAddress string `json:"email_address"`
+ HolderCategory string `json:"holder_category"`
+ LegalName string `json:"legal_name"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ PhoneNumber string `json:"phone_number"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationName string `json:"verification_name"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AccountIdsWithUpdatedAuth struct {
+}
+
+type AccountIdsWithUpdatedIdentity struct {
+}
+
+type AccountInsights struct {
+ Affordability string `json:"affordability"`
+ Risk string `json:"risk"`
+}
+
+type AccountProductAccess struct {
+ AccountData bool `json:"account_data"`
+ Statements bool `json:"statements"`
+ TaxDocuments bool `json:"tax_documents"`
+}
+
+type AccountProductAccessNullable struct {
+ AccountData bool `json:"account_data"`
+ Statements bool `json:"statements"`
+ TaxDocuments bool `json:"tax_documents"`
+}
+
+type AccountVerificationInsights struct {
+ AccountNumberFormat string `json:"account_number_format"`
+ NameMatchScore int `json:"name_match_score"`
+ NetworkStatus string `json:"network_status"`
+ PreviousReturns string `json:"previous_returns"`
+}
+
+type AccountVerificationInsightsNetworkStatus struct {
+ HasNumbersMatch bool `json:"has_numbers_match"`
+ IsNumbersMatchVerified bool `json:"is_numbers_match_verified"`
+}
+
+type AccountVerificationInsightsPreviousReturns struct {
+ HasPreviousAdministrativeReturn bool `json:"has_previous_administrative_return"`
+}
+
+type AccountsBalanceGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AccountsBalanceGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+ MinLastUpdatedDatetime string `json:"min_last_updated_datetime"`
+}
+
+type AccountsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AccountsGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type AccountsGetResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+}
+
+type Activity struct {
+ Activity string `json:"activity"`
+ Authentication string `json:"authentication"`
+ Id string `json:"id"`
+ InitiatedDate string `json:"initiated_date"`
+ Initiator string `json:"initiator"`
+ Scopes string `json:"scopes"`
+ State string `json:"state"`
+ TargetApplicationId string `json:"target_application_id"`
+}
+
+type Address struct {
+ Data string `json:"data"`
+ Primary bool `json:"primary"`
+}
+
+type AddressData struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type AddressDataNotRequired struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type AddressDataNullable struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type AddressDataNullableNoRequiredFields struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type AddressMatchScore struct {
+ IsPostalCodeMatch bool `json:"is_postal_code_match"`
+ Score int `json:"score"`
+}
+
+type AddressNullable struct {
+ Data string `json:"data"`
+ Primary bool `json:"primary"`
+}
+
+type AffordabilityInsights struct {
+ Expenditure string `json:"expenditure"`
+ Income string `json:"income"`
+}
+
+type AmountWithCurrency struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type AmountWithCurrencyWithMonthlyAverage struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type Application struct {
+ ApplicationId string `json:"application_id"`
+ ApplicationUrl string `json:"application_url"`
+ City string `json:"city"`
+ CompanyLegalName string `json:"company_legal_name"`
+ CountryCode string `json:"country_code"`
+ DisplayName string `json:"display_name"`
+ JoinDate string `json:"join_date"`
+ LogoUrl string `json:"logo_url"`
+ Name string `json:"name"`
+ PostalCode string `json:"postal_code"`
+ ReasonForAccess string `json:"reason_for_access"`
+ Region string `json:"region"`
+ UseCase string `json:"use_case"`
+}
+
+type ApplicationGetRequest struct {
+ ApplicationId string `json:"application_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ApplicationGetResponse struct {
+ Application string `json:"application"`
+ RequestId string `json:"request_id"`
+}
+
+type Asset struct {
+ ASSETDETAIL string `json:"ASSET_DETAIL"`
+ ASSETHOLDER string `json:"ASSET_HOLDER"`
+ ASSETOWNERS string `json:"ASSET_OWNERS"`
+ ASSETTRANSACTIONS string `json:"ASSET_TRANSACTIONS"`
+ VALIDATIONSOURCES string `json:"VALIDATION_SOURCES"`
+}
+
+type AssetDetail struct {
+ AssetAccountIdentifier string `json:"AssetAccountIdentifier"`
+ AssetAsOfDate string `json:"AssetAsOfDate"`
+ AssetAvailableBalanceAmount float64 `json:"AssetAvailableBalanceAmount"`
+ AssetAvailableCashBalanceAmount float64 `json:"AssetAvailableCashBalanceAmount"`
+ AssetBondsBalanceAmount float64 `json:"AssetBondsBalanceAmount"`
+ AssetCashBalanceAmount float64 `json:"AssetCashBalanceAmount"`
+ AssetCryptoBalanceAmount float64 `json:"AssetCryptoBalanceAmount"`
+ AssetCurrentBalanceAmount float64 `json:"AssetCurrentBalanceAmount"`
+ AssetDaysRequestedCount int `json:"AssetDaysRequestedCount"`
+ AssetDescription string `json:"AssetDescription"`
+ AssetEmployerSponsoredIndicator string `json:"AssetEmployerSponsoredIndicator"`
+ AssetHoldingBalanceAmount float64 `json:"AssetHoldingBalanceAmount"`
+ AssetHoldingBalanceNetMarginAmount float64 `json:"AssetHoldingBalanceNetMarginAmount"`
+ AssetMarginAmountBalance float64 `json:"AssetMarginAmountBalance"`
+ AssetOtherBalanceAmount float64 `json:"AssetOtherBalanceAmount"`
+ AssetOwnershipType string `json:"AssetOwnershipType"`
+ AssetRetirementIndicator string `json:"AssetRetirementIndicator"`
+ AssetStocksBalanceAmount float64 `json:"AssetStocksBalanceAmount"`
+ AssetType string `json:"AssetType"`
+ AssetTypeAdditionalDescription string `json:"AssetTypeAdditionalDescription"`
+ AssetUniqueIdentifier string `json:"AssetUniqueIdentifier"`
+}
+
+type AssetHolder struct {
+ NAME string `json:"NAME"`
+}
+
+type AssetHolderName struct {
+ FullName string `json:"FullName"`
+}
+
+type AssetHolding struct {
+ AssetHoldingCurrentPriceAmount float64 `json:"AssetHoldingCurrentPriceAmount"`
+ AssetHoldingDescription string `json:"AssetHoldingDescription"`
+ AssetHoldingID string `json:"AssetHoldingID"`
+ AssetHoldingMarketValueAmount float64 `json:"AssetHoldingMarketValueAmount"`
+ AssetHoldingRestrictedIndicator string `json:"AssetHoldingRestrictedIndicator"`
+ AssetHoldingSecurityName string `json:"AssetHoldingSecurityName"`
+ AssetHoldingSymbol string `json:"AssetHoldingSymbol"`
+ AssetHoldingType string `json:"AssetHoldingType"`
+ AssetHoldingUnits float64 `json:"AssetHoldingUnits"`
+ AssetHoldingVestedAmount float64 `json:"AssetHoldingVestedAmount"`
+ Currency string `json:"Currency"`
+}
+
+type AssetHoldings struct {
+ ASSETHOLDING string `json:"ASSET_HOLDING"`
+}
+
+type AssetOwner struct {
+ AssetOwnerText string `json:"AssetOwnerText"`
+}
+
+type AssetOwners struct {
+ ASSETOWNER string `json:"ASSET_OWNER"`
+}
+
+type AssetReport struct {
+ AssetReportId string `json:"asset_report_id"`
+ ClientReportId string `json:"client_report_id"`
+ DateGenerated string `json:"date_generated"`
+ DaysRequested float64 `json:"days_requested"`
+ Insights string `json:"insights"`
+ Items string `json:"items"`
+ User string `json:"user"`
+}
+
+type AssetReportAccountBalance struct {
+ Available float64 `json:"available"`
+ Current float64 `json:"current"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LastUpdatedDatetime string `json:"last_updated_datetime"`
+ Limit float64 `json:"limit"`
+ MarginLoanAmount float64 `json:"margin_loan_amount"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type AssetReportAuditCopyCreateRequest struct {
+ AssetReportToken string `json:"asset_report_token"`
+ AuditorId string `json:"auditor_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportAuditCopyCreateResponse struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportAuditCopyGetRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportAuditCopyPdfGetRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportAuditCopyRemoveRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportAuditCopyRemoveResponse struct {
+ Removed bool `json:"removed"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportCreateRequest struct {
+ AccessTokens string `json:"access_tokens"`
+ ClientId string `json:"client_id"`
+ DaysRequested int `json:"days_requested"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportCreateRequestOptions struct {
+ AddOns string `json:"add_ons"`
+ ClientReportId string `json:"client_report_id"`
+ IncludeFastReport bool `json:"include_fast_report"`
+ Products string `json:"products"`
+ RequireAllItems bool `json:"require_all_items"`
+ User string `json:"user"`
+ Webhook string `json:"webhook"`
+}
+
+type AssetReportCreateResponse struct {
+ AssetReportId string `json:"asset_report_id"`
+ AssetReportToken string `json:"asset_report_token"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportFilterRequest struct {
+ AccountIdsToExclude string `json:"account_ids_to_exclude"`
+ AssetReportToken string `json:"asset_report_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportFilterResponse struct {
+ AssetReportId string `json:"asset_report_id"`
+ AssetReportToken string `json:"asset_report_token"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportFreddie struct {
+ LOANS string `json:"LOANS"`
+ PARTIES string `json:"PARTIES"`
+ SERVICES string `json:"SERVICES"`
+}
+
+type AssetReportFreddieGetRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportFreddieGetResponse struct {
+ DEAL string `json:"DEAL"`
+ SchemaVersion float64 `json:"SchemaVersion"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportGetRequest struct {
+ AssetReportToken string `json:"asset_report_token"`
+ ClientId string `json:"client_id"`
+ FastReport bool `json:"fast_report"`
+ IncludeInsights bool `json:"include_insights"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type AssetReportGetRequestOptions struct {
+ DaysToInclude int `json:"days_to_include"`
+}
+
+type AssetReportGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type AssetReportInvestmentHolding struct {
+ AccountId string `json:"account_id"`
+ CostBasis float64 `json:"cost_basis"`
+ InstitutionPrice float64 `json:"institution_price"`
+ InstitutionPriceAsOf string `json:"institution_price_as_of"`
+ InstitutionValue float64 `json:"institution_value"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Quantity float64 `json:"quantity"`
+ SecurityId string `json:"security_id"`
+ TickerSymbol string `json:"ticker_symbol"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type AssetReportInvestmentSecurity struct {
+ Name string `json:"name"`
+ SecurityId string `json:"security_id"`
+ TickerSymbol string `json:"ticker_symbol"`
+ Type string `json:"type"`
+}
+
+type AssetReportInvestmentTransaction struct {
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ Date string `json:"date"`
+ Fees float64 `json:"fees"`
+ InvestmentTransactionId string `json:"investment_transaction_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Name string `json:"name"`
+ Price float64 `json:"price"`
+ Quantity float64 `json:"quantity"`
+ SecurityId string `json:"security_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ VestedQuantity float64 `json:"vested_quantity"`
+ VestedValue float64 `json:"vested_value"`
+}
+
+type AssetReportInvestments struct {
+ Holdings string `json:"holdings"`
+ Securities string `json:"securities"`
+ Transactions string `json:"transactions"`
+}
+
+type AssetReportItem struct {
+ Accounts string `json:"accounts"`
+ DateLastUpdated string `json:"date_last_updated"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+}
+
+type AssetReportPDFGetRequest struct {
+ AssetReportToken string `json:"asset_report_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportPDFGetRequestOptions struct {
+ DaysToInclude int `json:"days_to_include"`
+}
+
+type AssetReportRefreshRequest struct {
+ AssetReportToken string `json:"asset_report_token"`
+ ClientId string `json:"client_id"`
+ DaysRequested int `json:"days_requested"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportRefreshRequestOptions struct {
+ ClientReportId string `json:"client_report_id"`
+ User string `json:"user"`
+ Webhook string `json:"webhook"`
+}
+
+type AssetReportRefreshResponse struct {
+ AssetReportId string `json:"asset_report_id"`
+ AssetReportToken string `json:"asset_report_token"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportRemoveRequest struct {
+ AssetReportToken string `json:"asset_report_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type AssetReportRemoveResponse struct {
+ Removed bool `json:"removed"`
+ RequestId string `json:"request_id"`
+}
+
+type AssetReportTransaction struct {
+ AccountId string `json:"account_id"`
+ AccountOwner string `json:"account_owner"`
+ Amount float64 `json:"amount"`
+ Category string `json:"category"`
+ CategoryId string `json:"category_id"`
+ CheckNumber string `json:"check_number"`
+ CreditCategory string `json:"credit_category"`
+ Date string `json:"date"`
+ DateTransacted string `json:"date_transacted"`
+ IncomeSourceId string `json:"income_source_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Location string `json:"location"`
+ MerchantName string `json:"merchant_name"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ PaymentMeta string `json:"payment_meta"`
+ Pending bool `json:"pending"`
+ PendingTransactionId string `json:"pending_transaction_id"`
+ TransactionId string `json:"transaction_id"`
+ TransactionType string `json:"transaction_type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type AssetReportUser struct {
+ ClientUserId string `json:"client_user_id"`
+ Email string `json:"email"`
+ FirstName string `json:"first_name"`
+ LastName string `json:"last_name"`
+ MiddleName string `json:"middle_name"`
+ PhoneNumber string `json:"phone_number"`
+ Ssn string `json:"ssn"`
+}
+
+type AssetTransaction struct {
+ ASSETTRANSACTIONDESCRIPTON string `json:"ASSET_TRANSACTION_DESCRIPTON"`
+ ASSETTRANSACTIONDETAIL string `json:"ASSET_TRANSACTION_DETAIL"`
+}
+
+type AssetTransactionDescription struct {
+ AssetTransactionDescription string `json:"AssetTransactionDescription"`
+}
+
+type AssetTransactionDetail struct {
+ AssetInvestmentTransactionType string `json:"AssetInvestmentTransactionType"`
+ AssetInvestmentTransactionTypeDescription string `json:"AssetInvestmentTransactionTypeDescription"`
+ AssetTransactionAmount float64 `json:"AssetTransactionAmount"`
+ AssetTransactionCategoryType string `json:"AssetTransactionCategoryType"`
+ AssetTransactionDate string `json:"AssetTransactionDate"`
+ AssetTransactionPaidByName string `json:"AssetTransactionPaidByName"`
+ AssetTransactionPaidToName string `json:"AssetTransactionPaidToName"`
+ AssetTransactionPostDate string `json:"AssetTransactionPostDate"`
+ AssetTransactionType string `json:"AssetTransactionType"`
+ AssetTransactionTypeAdditionalDescription string `json:"AssetTransactionTypeAdditionalDescription"`
+ AssetTransactionUniqueIdentifier string `json:"AssetTransactionUniqueIdentifier"`
+ FinancialInstitutionTransactionIdentifier string `json:"FinancialInstitutionTransactionIdentifier"`
+}
+
+type AssetTransactions struct {
+ ASSETTRANSACTION string `json:"ASSET_TRANSACTION"`
+}
+
+type Assets struct {
+ ASSET string `json:"ASSET"`
+}
+
+type AssetsErrorWebhook struct {
+ AssetReportId string `json:"asset_report_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type AssetsProductReadyWebhook struct {
+ AssetReportId string `json:"asset_report_id"`
+ Environment string `json:"environment"`
+ ReportType string `json:"report_type"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type AuthDefaultUpdateWebhook struct {
+ AccountIdsWithNewAuth string `json:"account_ids_with_new_auth"`
+ AccountIdsWithUpdatedAuth string `json:"account_ids_with_updated_auth"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type AuthGetNumbers struct {
+ Ach string `json:"ach"`
+ Bacs string `json:"bacs"`
+ Eft string `json:"eft"`
+ International string `json:"international"`
+}
+
+type AuthGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type AuthGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type AuthGetResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ Numbers string `json:"numbers"`
+ RequestId string `json:"request_id"`
+}
+
+type AuthMetadata struct {
+ SupportedMethods string `json:"supported_methods"`
+}
+
+type AuthSupportedMethods struct {
+ AutomatedMicroDeposits bool `json:"automated_micro_deposits"`
+ InstantAuth bool `json:"instant_auth"`
+ InstantMatch bool `json:"instant_match"`
+ InstantMicroDeposits bool `json:"instant_micro_deposits"`
+}
+
+type AuthVerifyNumbersACH struct {
+ Account string `json:"account"`
+ Routing string `json:"routing"`
+}
+
+type AuthVerifyRequest struct {
+ ClientId string `json:"client_id"`
+ LegalName string `json:"legal_name"`
+ Numbers string `json:"numbers"`
+ Secret string `json:"secret"`
+}
+
+type AuthVerifyRequestNumbers struct {
+ Ach string `json:"ach"`
+}
+
+type AuthVerifyResponse struct {
+ ItemId string `json:"item_id"`
+ RequestId string `json:"request_id"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type AutomaticallyVerifiedWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BankIncomeCompleteWebhook struct {
+ Environment string `json:"environment"`
+ Result string `json:"result"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BankIncomeRefreshCompleteWebhook struct {
+ Environment string `json:"environment"`
+ Result string `json:"result"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BankIncomeRefreshUpdateWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BankInitiatedReturnRisk struct {
+ RiskTier int `json:"risk_tier"`
+ Score int `json:"score"`
+}
+
+type BankPenaltiesIndicators struct {
+ Amount float64 `json:"amount"`
+ CategoryDetails string `json:"category_details"`
+ DaysSinceLastOccurrence int `json:"days_since_last_occurrence"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyAverage string `json:"monthly_average"`
+ MonthlySummaries string `json:"monthly_summaries"`
+ PercentageOfIncome float64 `json:"percentage_of_income"`
+ TransactionsCount int `json:"transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type BankTransfer struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ Cancellable bool `json:"cancellable"`
+ Created string `json:"created"`
+ CustomTag string `json:"custom_tag"`
+ Description string `json:"description"`
+ Direction string `json:"direction"`
+ FailureReason string `json:"failure_reason"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Status string `json:"status"`
+ Type string `json:"type"`
+ User string `json:"user"`
+}
+
+type BankTransferBalance struct {
+ Available string `json:"available"`
+ Transactable string `json:"transactable"`
+}
+
+type BankTransferBalanceGetRequest struct {
+ ClientId string `json:"client_id"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Secret string `json:"secret"`
+}
+
+type BankTransferBalanceGetResponse struct {
+ Balance string `json:"balance"`
+ OriginationAccountId string `json:"origination_account_id"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferCancelRequest struct {
+ BankTransferId string `json:"bank_transfer_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BankTransferCancelResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ CustomTag string `json:"custom_tag"`
+ Description string `json:"description"`
+ IdempotencyKey string `json:"idempotency_key"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Secret string `json:"secret"`
+ Type string `json:"type"`
+ User string `json:"user"`
+}
+
+type BankTransferCreateResponse struct {
+ BankTransfer string `json:"bank_transfer"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferEvent struct {
+ AccountId string `json:"account_id"`
+ BankTransferAmount string `json:"bank_transfer_amount"`
+ BankTransferId string `json:"bank_transfer_id"`
+ BankTransferIsoCurrencyCode string `json:"bank_transfer_iso_currency_code"`
+ BankTransferType string `json:"bank_transfer_type"`
+ Direction string `json:"direction"`
+ EventId int `json:"event_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Timestamp string `json:"timestamp"`
+}
+
+type BankTransferEventListRequest struct {
+ AccountId string `json:"account_id"`
+ BankTransferId string `json:"bank_transfer_id"`
+ BankTransferType string `json:"bank_transfer_type"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Direction string `json:"direction"`
+ EndDate string `json:"end_date"`
+ EventTypes string `json:"event_types"`
+ Offset int `json:"offset"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type BankTransferEventListResponse struct {
+ BankTransferEvents string `json:"bank_transfer_events"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferEventSyncRequest struct {
+ AfterId int `json:"after_id"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Secret string `json:"secret"`
+}
+
+type BankTransferEventSyncResponse struct {
+ BankTransferEvents string `json:"bank_transfer_events"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferFailure struct {
+ AchReturnCode string `json:"ach_return_code"`
+ Description string `json:"description"`
+}
+
+type BankTransferGetRequest struct {
+ BankTransferId string `json:"bank_transfer_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BankTransferGetResponse struct {
+ BankTransfer string `json:"bank_transfer"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Direction string `json:"direction"`
+ EndDate string `json:"end_date"`
+ Offset int `json:"offset"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type BankTransferListResponse struct {
+ BankTransfers string `json:"bank_transfers"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferMetadata struct {
+}
+
+type BankTransferMigrateAccountRequest struct {
+ AccountNumber string `json:"account_number"`
+ AccountType string `json:"account_type"`
+ ClientId string `json:"client_id"`
+ RoutingNumber string `json:"routing_number"`
+ Secret string `json:"secret"`
+ WireRoutingNumber string `json:"wire_routing_number"`
+}
+
+type BankTransferMigrateAccountResponse struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ RequestId string `json:"request_id"`
+}
+
+type BankTransferSweep struct {
+ Amount string `json:"amount"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type BankTransferSweepGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ SweepId string `json:"sweep_id"`
+}
+
+type BankTransferSweepGetResponse struct {
+ RequestId string `json:"request_id"`
+ Sweep string `json:"sweep"`
+}
+
+type BankTransferSweepListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndTime string `json:"end_time"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Secret string `json:"secret"`
+ StartTime string `json:"start_time"`
+}
+
+type BankTransferSweepListResponse struct {
+ RequestId string `json:"request_id"`
+ Sweeps string `json:"sweeps"`
+}
+
+type BankTransferUser struct {
+ EmailAddress string `json:"email_address"`
+ LegalName string `json:"legal_name"`
+ RoutingNumber string `json:"routing_number"`
+}
+
+type BankTransfersEventsUpdateWebhook struct {
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BankTransfersEventsUpdateWebhookForAuth struct {
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BaseReport struct {
+ Attributes string `json:"attributes"`
+ ClientReportId string `json:"client_report_id"`
+ DateGenerated string `json:"date_generated"`
+ DaysRequested float64 `json:"days_requested"`
+ Items string `json:"items"`
+ ReportId string `json:"report_id"`
+}
+
+type BaseReportAccount struct {
+ AccountId string `json:"account_id"`
+ AccountInsights string `json:"account_insights"`
+ Attributes string `json:"attributes"`
+ Balances string `json:"balances"`
+ ConsumerDisputes string `json:"consumer_disputes"`
+ DaysAvailable float64 `json:"days_available"`
+ HistoricalBalances string `json:"historical_balances"`
+ Mask string `json:"mask"`
+ Metadata string `json:"metadata"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ OwnershipType string `json:"ownership_type"`
+ Subtype string `json:"subtype"`
+ Transactions string `json:"transactions"`
+ Type string `json:"type"`
+}
+
+type BaseReportAccountBalances struct {
+ Available float64 `json:"available"`
+ AverageBalance float64 `json:"average_balance"`
+ AverageMonthlyBalances string `json:"average_monthly_balances"`
+ Current float64 `json:"current"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LastUpdatedDatetime string `json:"last_updated_datetime"`
+ Limit float64 `json:"limit"`
+ MostRecentThirtyDayAverageBalance float64 `json:"most_recent_thirty_day_average_balance"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type BaseReportAccountInsights struct {
+ AverageDaysBetweenTransactions float64 `json:"average_days_between_transactions"`
+ AverageInflowAmounts string `json:"average_inflow_amounts"`
+ AverageOutflowAmounts string `json:"average_outflow_amounts"`
+ DaysAvailable int `json:"days_available"`
+ LongestGapsBetweenTransactions string `json:"longest_gaps_between_transactions"`
+ MostRecentTransactionDate string `json:"most_recent_transaction_date"`
+ NumberOfDaysNoTransactions int `json:"number_of_days_no_transactions"`
+ NumberOfInflows string `json:"number_of_inflows"`
+ NumberOfOutflows string `json:"number_of_outflows"`
+ OldestTransactionDate string `json:"oldest_transaction_date"`
+}
+
+type BaseReportAccountMetadata struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type BaseReportAttributes struct {
+ IsPrimaryAccount bool `json:"is_primary_account"`
+ NsfOverdraftTransactionsCount int `json:"nsf_overdraft_transactions_count"`
+ NsfOverdraftTransactionsCount30d int `json:"nsf_overdraft_transactions_count_30d"`
+ NsfOverdraftTransactionsCount60d int `json:"nsf_overdraft_transactions_count_60d"`
+ NsfOverdraftTransactionsCount90d int `json:"nsf_overdraft_transactions_count_90d"`
+ PrimaryAccountScore float64 `json:"primary_account_score"`
+ TotalInflowAmount string `json:"total_inflow_amount"`
+ TotalInflowAmount30d string `json:"total_inflow_amount_30d"`
+ TotalInflowAmount60d string `json:"total_inflow_amount_60d"`
+ TotalInflowAmount90d string `json:"total_inflow_amount_90d"`
+ TotalOutflowAmount string `json:"total_outflow_amount"`
+ TotalOutflowAmount30d string `json:"total_outflow_amount_30d"`
+ TotalOutflowAmount60d string `json:"total_outflow_amount_60d"`
+ TotalOutflowAmount90d string `json:"total_outflow_amount_90d"`
+}
+
+type BaseReportAverageFlowInsights struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+ TotalAmount string `json:"total_amount"`
+}
+
+type BaseReportAverageMonthlyBalances struct {
+ AverageBalance string `json:"average_balance"`
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type BaseReportHistoricalBalance struct {
+ Current float64 `json:"current"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type BaseReportInvestmentHolding struct {
+ AccountId string `json:"account_id"`
+ CostBasis float64 `json:"cost_basis"`
+ InstitutionPrice float64 `json:"institution_price"`
+ InstitutionPriceAsOf string `json:"institution_price_as_of"`
+ InstitutionValue float64 `json:"institution_value"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Quantity float64 `json:"quantity"`
+ SecurityId string `json:"security_id"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type BaseReportInvestmentSecurity struct {
+ Cusip string `json:"cusip"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionSecurityId string `json:"institution_security_id"`
+ Isin string `json:"isin"`
+ Name string `json:"name"`
+ SecurityId string `json:"security_id"`
+ TickerSymbol string `json:"ticker_symbol"`
+ Type string `json:"type"`
+}
+
+type BaseReportInvestmentTransaction struct {
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ Date string `json:"date"`
+ Fees float64 `json:"fees"`
+ InvestmentTransactionId string `json:"investment_transaction_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Name string `json:"name"`
+ Price float64 `json:"price"`
+ Quantity float64 `json:"quantity"`
+ SecurityId string `json:"security_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type BaseReportInvestments struct {
+ Holdings string `json:"holdings"`
+ InvestmentTransactions string `json:"investment_transactions"`
+ Securities string `json:"securities"`
+}
+
+type BaseReportItem struct {
+ Accounts string `json:"accounts"`
+ DateLastUpdated string `json:"date_last_updated"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+}
+
+type BaseReportLongestGapInsights struct {
+ Days int `json:"days"`
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type BaseReportNumberFlowInsights struct {
+ Count int `json:"count"`
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type BaseReportTransaction struct {
+ AccountId string `json:"account_id"`
+ AccountOwner string `json:"account_owner"`
+ Amount float64 `json:"amount"`
+ Category string `json:"category"`
+ CategoryId string `json:"category_id"`
+ CheckNumber string `json:"check_number"`
+ CreditCategory string `json:"credit_category"`
+ Date string `json:"date"`
+ DateTransacted string `json:"date_transacted"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Location string `json:"location"`
+ MerchantName string `json:"merchant_name"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ Pending bool `json:"pending"`
+ PersonalFinanceCategory string `json:"personal_finance_category"`
+ TransactionId string `json:"transaction_id"`
+ TransactionType string `json:"transaction_type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type BaseReportUserAttributes struct {
+ NsfOverdraftTransactionsCount int `json:"nsf_overdraft_transactions_count"`
+ NsfOverdraftTransactionsCount30d int `json:"nsf_overdraft_transactions_count_30d"`
+ NsfOverdraftTransactionsCount60d int `json:"nsf_overdraft_transactions_count_60d"`
+ NsfOverdraftTransactionsCount90d int `json:"nsf_overdraft_transactions_count_90d"`
+ TotalInflowAmount string `json:"total_inflow_amount"`
+ TotalInflowAmount30d string `json:"total_inflow_amount_30d"`
+ TotalInflowAmount60d string `json:"total_inflow_amount_60d"`
+ TotalInflowAmount90d string `json:"total_inflow_amount_90d"`
+ TotalOutflowAmount string `json:"total_outflow_amount"`
+ TotalOutflowAmount30d string `json:"total_outflow_amount_30d"`
+ TotalOutflowAmount60d string `json:"total_outflow_amount_60d"`
+ TotalOutflowAmount90d string `json:"total_outflow_amount_90d"`
+}
+
+type BaseReportWarning struct {
+ Cause string `json:"cause"`
+ WarningCode string `json:"warning_code"`
+ WarningType string `json:"warning_type"`
+}
+
+type BaseReportsErrorWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BeaconAccountRiskAttributes struct {
+ AddressChangeCount28d int `json:"address_change_count_28d"`
+ AddressChangeCount90d int `json:"address_change_count_90d"`
+ DaysSinceAccountOpening int `json:"days_since_account_opening"`
+ DaysSinceFirstObservedTransaction int `json:"days_since_first_observed_transaction"`
+ DaysSinceFirstPlaidConnection int `json:"days_since_first_plaid_connection"`
+ DistinctIpAddressesCount30d int `json:"distinct_ip_addresses_count_30d"`
+ DistinctIpAddressesCount3d int `json:"distinct_ip_addresses_count_3d"`
+ DistinctIpAddressesCount7d int `json:"distinct_ip_addresses_count_7d"`
+ DistinctIpAddressesCount90d int `json:"distinct_ip_addresses_count_90d"`
+ DistinctUserAgentsCount30d int `json:"distinct_user_agents_count_30d"`
+ DistinctUserAgentsCount3d int `json:"distinct_user_agents_count_3d"`
+ DistinctUserAgentsCount7d int `json:"distinct_user_agents_count_7d"`
+ DistinctUserAgentsCount90d int `json:"distinct_user_agents_count_90d"`
+ EmailChangeCount28d int `json:"email_change_count_28d"`
+ EmailChangeCount90d int `json:"email_change_count_90d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount30d int `json:"failed_plaid_non_oauth_authentication_attempts_count_30d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount3d int `json:"failed_plaid_non_oauth_authentication_attempts_count_3d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount7d int `json:"failed_plaid_non_oauth_authentication_attempts_count_7d"`
+ IsAccountClosed bool `json:"is_account_closed"`
+ IsAccountFrozenOrRestricted bool `json:"is_account_frozen_or_restricted"`
+ PhoneChangeCount28d int `json:"phone_change_count_28d"`
+ PhoneChangeCount90d int `json:"phone_change_count_90d"`
+ PlaidConnectionsCount30d int `json:"plaid_connections_count_30d"`
+ PlaidConnectionsCount7d int `json:"plaid_connections_count_7d"`
+ PlaidNonOauthAuthenticationAttemptsCount30d int `json:"plaid_non_oauth_authentication_attempts_count_30d"`
+ PlaidNonOauthAuthenticationAttemptsCount3d int `json:"plaid_non_oauth_authentication_attempts_count_3d"`
+ PlaidNonOauthAuthenticationAttemptsCount7d int `json:"plaid_non_oauth_authentication_attempts_count_7d"`
+ TotalPlaidConnectionsCount int `json:"total_plaid_connections_count"`
+}
+
+type BeaconAccountRiskEvaluateAccount struct {
+ AccountId string `json:"account_id"`
+ Attributes string `json:"attributes"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+}
+
+type BeaconAccountRiskEvaluateAccountAttributes struct {
+ AddressChangeCount28d int `json:"address_change_count_28d"`
+ AddressChangeCount90d int `json:"address_change_count_90d"`
+ DaysSinceAccountOpening int `json:"days_since_account_opening"`
+ DaysSinceFirstObservedTransaction int `json:"days_since_first_observed_transaction"`
+ DaysSinceFirstPlaidConnection int `json:"days_since_first_plaid_connection"`
+ DistinctIpAddressesCount30d int `json:"distinct_ip_addresses_count_30d"`
+ DistinctIpAddressesCount3d int `json:"distinct_ip_addresses_count_3d"`
+ DistinctIpAddressesCount7d int `json:"distinct_ip_addresses_count_7d"`
+ DistinctIpAddressesCount90d int `json:"distinct_ip_addresses_count_90d"`
+ DistinctUserAgentsCount30d int `json:"distinct_user_agents_count_30d"`
+ DistinctUserAgentsCount3d int `json:"distinct_user_agents_count_3d"`
+ DistinctUserAgentsCount7d int `json:"distinct_user_agents_count_7d"`
+ DistinctUserAgentsCount90d int `json:"distinct_user_agents_count_90d"`
+ EmailChangeCount28d int `json:"email_change_count_28d"`
+ EmailChangeCount90d int `json:"email_change_count_90d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount30d int `json:"failed_plaid_non_oauth_authentication_attempts_count_30d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount3d int `json:"failed_plaid_non_oauth_authentication_attempts_count_3d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount7d int `json:"failed_plaid_non_oauth_authentication_attempts_count_7d"`
+ IsAccountClosed bool `json:"is_account_closed"`
+ IsAccountFrozenOrRestricted bool `json:"is_account_frozen_or_restricted"`
+ PhoneChangeCount28d int `json:"phone_change_count_28d"`
+ PhoneChangeCount90d int `json:"phone_change_count_90d"`
+ PlaidConnectionsCount30d int `json:"plaid_connections_count_30d"`
+ PlaidConnectionsCount7d int `json:"plaid_connections_count_7d"`
+ PlaidNonOauthAuthenticationAttemptsCount30d int `json:"plaid_non_oauth_authentication_attempts_count_30d"`
+ PlaidNonOauthAuthenticationAttemptsCount3d int `json:"plaid_non_oauth_authentication_attempts_count_3d"`
+ PlaidNonOauthAuthenticationAttemptsCount7d int `json:"plaid_non_oauth_authentication_attempts_count_7d"`
+ TotalPlaidConnectionsCount int `json:"total_plaid_connections_count"`
+}
+
+type BeaconAccountRiskEvaluateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientEvaluationId string `json:"client_evaluation_id"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Device string `json:"device"`
+ EvaluateTime string `json:"evaluate_time"`
+ EvaluationReason string `json:"evaluation_reason"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type BeaconAccountRiskEvaluateRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type BeaconAccountRiskEvaluateResponse struct {
+ Accounts string `json:"accounts"`
+ RequestId string `json:"request_id"`
+}
+
+type BeaconAuditTrail struct {
+ DashboardUserId string `json:"dashboard_user_id"`
+ Source string `json:"source"`
+ Timestamp string `json:"timestamp"`
+}
+
+type BeaconBankAccountInsights struct {
+ AccountId string `json:"account_id"`
+ Attributes string `json:"attributes"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+}
+
+type BeaconBankAccounts struct {
+ Accounts string `json:"accounts"`
+ ItemId string `json:"item_id"`
+}
+
+type BeaconDuplicateDetectedWebhook struct {
+ BeaconDuplicateId string `json:"beacon_duplicate_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BeaconDuplicateGetRequest struct {
+ BeaconDuplicateId string `json:"beacon_duplicate_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BeaconDuplicateGetResponse struct {
+ Analysis string `json:"analysis"`
+ BeaconUser1 string `json:"beacon_user1"`
+ BeaconUser2 string `json:"beacon_user2"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+}
+
+type BeaconMatchSummaryAnalysis struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ IpAddress string `json:"ip_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type BeaconReport struct {
+ AuditTrail string `json:"audit_trail"`
+ BeaconUserId string `json:"beacon_user_id"`
+ CreatedAt string `json:"created_at"`
+ EventDate string `json:"event_date"`
+ FraudAmount string `json:"fraud_amount"`
+ FraudDate string `json:"fraud_date"`
+ Id string `json:"id"`
+ Type string `json:"type"`
+}
+
+type BeaconReportCreateRequest struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ FraudAmount string `json:"fraud_amount"`
+ FraudDate string `json:"fraud_date"`
+ Secret string `json:"secret"`
+ Type string `json:"type"`
+}
+
+type BeaconReportCreateResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ BeaconUserId string `json:"beacon_user_id"`
+ CreatedAt string `json:"created_at"`
+ EventDate string `json:"event_date"`
+ FraudAmount string `json:"fraud_amount"`
+ FraudDate string `json:"fraud_date"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ Type string `json:"type"`
+}
+
+type BeaconReportCreatedWebhook struct {
+ BeaconReportId string `json:"beacon_report_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BeaconReportGetRequest struct {
+ BeaconReportId string `json:"beacon_report_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BeaconReportGetResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ BeaconUserId string `json:"beacon_user_id"`
+ CreatedAt string `json:"created_at"`
+ EventDate string `json:"event_date"`
+ FraudAmount string `json:"fraud_amount"`
+ FraudDate string `json:"fraud_date"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ Type string `json:"type"`
+}
+
+type BeaconReportListRequest struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type BeaconReportListResponse struct {
+ BeaconReports string `json:"beacon_reports"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type BeaconReportSyndication struct {
+ Analysis string `json:"analysis"`
+ BeaconUserId string `json:"beacon_user_id"`
+ Id string `json:"id"`
+ Report string `json:"report"`
+}
+
+type BeaconReportSyndicationAnalysis struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ DepositoryAccounts string `json:"depository_accounts"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ IpAddress string `json:"ip_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type BeaconReportSyndicationCreatedWebhook struct {
+ BeaconReportSyndicationId string `json:"beacon_report_syndication_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BeaconReportSyndicationGetRequest struct {
+ BeaconReportSyndicationId string `json:"beacon_report_syndication_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BeaconReportSyndicationGetResponse struct {
+ Analysis string `json:"analysis"`
+ BeaconUserId string `json:"beacon_user_id"`
+ Id string `json:"id"`
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+}
+
+type BeaconReportSyndicationListRequest struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type BeaconReportSyndicationListResponse struct {
+ BeaconReportSyndications string `json:"beacon_report_syndications"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type BeaconReportSyndicationOriginalReport struct {
+ CreatedAt string `json:"created_at"`
+ EventDate string `json:"event_date"`
+ FraudDate string `json:"fraud_date"`
+ Id string `json:"id"`
+ Type string `json:"type"`
+}
+
+type BeaconReportUpdatedWebhook struct {
+ BeaconReportId string `json:"beacon_report_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BeaconSyndicatedReportDepositoryAccountMatchAnalysis struct {
+ AccountMask string `json:"account_mask"`
+ MatchStatus string `json:"match_status"`
+ RoutingNumber string `json:"routing_number"`
+}
+
+type BeaconUser struct {
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ ItemIds string `json:"item_ids"`
+ ProgramId string `json:"program_id"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+ User string `json:"user"`
+ Version int `json:"version"`
+}
+
+type BeaconUserAccountInsightsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BeaconUserAccountInsightsGetResponse struct {
+ BankAccountInsights string `json:"bank_account_insights"`
+ BeaconUserId string `json:"beacon_user_id"`
+ CreatedAt string `json:"created_at"`
+ RequestId string `json:"request_id"`
+ UpdatedAt string `json:"updated_at"`
+}
+
+type BeaconUserAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type BeaconUserCreateRequest struct {
+ AccessTokens string `json:"access_tokens"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ ProgramId string `json:"program_id"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type BeaconUserCreateResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ ItemIds string `json:"item_ids"`
+ ProgramId string `json:"program_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+ User string `json:"user"`
+ Version int `json:"version"`
+}
+
+type BeaconUserData struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ DepositoryAccounts string `json:"depository_accounts"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ IpAddress string `json:"ip_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type BeaconUserDepositoryAccount struct {
+ AccountMask string `json:"account_mask"`
+ AddedAt string `json:"added_at"`
+ RoutingNumber string `json:"routing_number"`
+}
+
+type BeaconUserGetRequest struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BeaconUserGetResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ ItemIds string `json:"item_ids"`
+ ProgramId string `json:"program_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+ User string `json:"user"`
+ Version int `json:"version"`
+}
+
+type BeaconUserHistoryListRequest struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type BeaconUserHistoryListResponse struct {
+ BeaconUsers string `json:"beacon_users"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type BeaconUserIDNumber struct {
+ Type string `json:"type"`
+ Value string `json:"value"`
+}
+
+type BeaconUserName struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type BeaconUserNameNullable struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type BeaconUserRequestAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type BeaconUserRequestAddressNullable struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type BeaconUserRequestData struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ DepositoryAccounts string `json:"depository_accounts"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ IpAddress string `json:"ip_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type BeaconUserRequestDepositoryAccount struct {
+ AccountNumber string `json:"account_number"`
+ RoutingNumber string `json:"routing_number"`
+}
+
+type BeaconUserReviewRequest struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+}
+
+type BeaconUserRevision struct {
+ Id string `json:"id"`
+ Version int `json:"version"`
+}
+
+type BeaconUserStatusUpdatedWebhook struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type BeaconUserUpdateRequest struct {
+ AccessTokens string `json:"access_tokens"`
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type BeaconUserUpdateRequestData struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ DepositoryAccounts string `json:"depository_accounts"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ IpAddress string `json:"ip_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type BeaconUserUpdateResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ ItemIds string `json:"item_ids"`
+ ProgramId string `json:"program_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+ User string `json:"user"`
+ Version int `json:"version"`
+}
+
+type BetaEwaReportV1GetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BetaEwaReportV1GetResponse struct {
+ EwaReportId string `json:"ewa_report_id"`
+ EwaScores string `json:"ewa_scores"`
+ GenerationTime string `json:"generation_time"`
+ RequestId string `json:"request_id"`
+}
+
+type BetaPartnerCustomerV1CreateRequest struct {
+ Address string `json:"address"`
+ ApplicationName string `json:"application_name"`
+ BankAddendumAcceptance string `json:"bank_addendum_acceptance"`
+ BillingContact string `json:"billing_contact"`
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ CreateLinkCustomization bool `json:"create_link_customization"`
+ CustomerSupportInfo string `json:"customer_support_info"`
+ IsDiligenceAttested bool `json:"is_diligence_attested"`
+ LegalEntityName string `json:"legal_entity_name"`
+ Logo string `json:"logo"`
+ Products string `json:"products"`
+ Questionnaires string `json:"questionnaires"`
+ RedirectUris string `json:"redirect_uris"`
+ Secret string `json:"secret"`
+ TechnicalContact string `json:"technical_contact"`
+ Website string `json:"website"`
+}
+
+type BetaPartnerCustomerV1CreateResponse struct {
+ EndCustomer string `json:"end_customer"`
+ RequestId string `json:"request_id"`
+}
+
+type BetaPartnerCustomerV1EnableRequest struct {
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Products string `json:"products"`
+ Secret string `json:"secret"`
+}
+
+type BetaPartnerCustomerV1EnableResponse struct {
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ ProductStatuses string `json:"product_statuses"`
+ ProductionSecret string `json:"production_secret"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type BetaPartnerCustomerV1GetRequest struct {
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Secret string `json:"secret"`
+}
+
+type BetaPartnerCustomerV1GetResponse struct {
+ EndCustomer string `json:"end_customer"`
+ RequestId string `json:"request_id"`
+}
+
+type BetaPartnerCustomerV1UpdateRequest struct {
+ BankAddendumAcceptance string `json:"bank_addendum_acceptance"`
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ LegalEntityName string `json:"legal_entity_name"`
+ Questionnaires string `json:"questionnaires"`
+ RedirectUris string `json:"redirect_uris"`
+ Secret string `json:"secret"`
+}
+
+type BetaPartnerCustomerV1UpdateResponse struct {
+ EndCustomer string `json:"end_customer"`
+ RequestId string `json:"request_id"`
+}
+
+type BetaPartnerEndCustomer struct {
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ ProductStatuses string `json:"product_statuses"`
+ RequirementsDue string `json:"requirements_due"`
+ Status string `json:"status"`
+}
+
+type BetaPartnerEndCustomerWithSecrets struct {
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ ProductStatuses string `json:"product_statuses"`
+ RequirementsDue string `json:"requirements_due"`
+ Secrets string `json:"secrets"`
+ Status string `json:"status"`
+}
+
+type BusinessAccount struct {
+ AccountId string `json:"account_id"`
+ Balances string `json:"balances"`
+ HolderCategory string `json:"holder_category"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ PersistentAccountId string `json:"persistent_account_id"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationInsights string `json:"verification_insights"`
+ VerificationName string `json:"verification_name"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type BusinessDigitalPresenceCheck struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ PhoneNumber string `json:"phone_number"`
+ Score int `json:"score"`
+ Status string `json:"status"`
+ Website string `json:"website"`
+ WebsiteAnalysis string `json:"website_analysis"`
+}
+
+type BusinessEmailAddress struct {
+ EmailAddress string `json:"email_address"`
+}
+
+type BusinessFieldMatchSummary struct {
+ Summary string `json:"summary"`
+}
+
+type BusinessFinanceCategory struct {
+ ConfidenceLevel string `json:"confidence_level"`
+ Detailed string `json:"detailed"`
+ Primary string `json:"primary"`
+}
+
+type BusinessIndustryPrediction struct {
+ Code int `json:"code"`
+ Title string `json:"title"`
+}
+
+type BusinessIndustryPredictionNullable struct {
+ Code int `json:"code"`
+ Title string `json:"title"`
+}
+
+type BusinessKYBCheck struct {
+ Address string `json:"address"`
+ MatchDetails string `json:"match_details"`
+ Name string `json:"name"`
+ Score int `json:"score"`
+ Status string `json:"status"`
+ Website string `json:"website"`
+}
+
+type BusinessKYBMatchDetails struct {
+ Addresses string `json:"addresses"`
+ EmailAddresses string `json:"email_addresses"`
+ EntityType string `json:"entity_type"`
+ FormationDate string `json:"formation_date"`
+ Name string `json:"name"`
+ PhoneNumbers string `json:"phone_numbers"`
+ Websites string `json:"websites"`
+}
+
+type BusinessPhoneNumber struct {
+ Number string `json:"number"`
+}
+
+type BusinessRiskCheck struct {
+ IndustryPrediction string `json:"industry_prediction"`
+ Score int `json:"score"`
+ Status string `json:"status"`
+}
+
+type BusinessSearchTerms struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+ Website string `json:"website"`
+}
+
+type BusinessVerificationCreateRequest struct {
+ Business string `json:"business"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Secret string `json:"secret"`
+}
+
+type BusinessVerificationCreateRequestBusiness struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+ Website string `json:"website"`
+}
+
+type BusinessVerificationCreateResponse struct {
+ ClientUserId string `json:"client_user_id"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ DigitalPresenceCheck string `json:"digital_presence_check"`
+ Id string `json:"id"`
+ KybCheck string `json:"kyb_check"`
+ RedactedAt string `json:"redacted_at"`
+ RequestId string `json:"request_id"`
+ RiskCheck string `json:"risk_check"`
+ SearchTerms string `json:"search_terms"`
+ ShareableUrl string `json:"shareable_url"`
+ Status string `json:"status"`
+}
+
+type BusinessVerificationGetRequest struct {
+ BusinessVerificationId string `json:"business_verification_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type BusinessVerificationGetResponse struct {
+ ClientUserId string `json:"client_user_id"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ DigitalPresenceCheck string `json:"digital_presence_check"`
+ Id string `json:"id"`
+ KybCheck string `json:"kyb_check"`
+ RedactedAt string `json:"redacted_at"`
+ RequestId string `json:"request_id"`
+ RiskCheck string `json:"risk_check"`
+ SearchTerms string `json:"search_terms"`
+ ShareableUrl string `json:"shareable_url"`
+ Status string `json:"status"`
+}
+
+type BusinessWebsite struct {
+ Url string `json:"url"`
+}
+
+type BusinessWebsiteAnalysis struct {
+ EmailIsDeliverable string `json:"email_is_deliverable"`
+ IsParked string `json:"is_parked"`
+ Ssl string `json:"ssl"`
+ WebsiteBuildStatus string `json:"website_build_status"`
+ WhoisRecord string `json:"whois_record"`
+}
+
+type BusinessWebsiteSSL struct {
+ IsValid string `json:"is_valid"`
+}
+
+type BusinessWhoisRecord struct {
+ DomainCreatedAt string `json:"domain_created_at"`
+ DomainExpiresAt string `json:"domain_expires_at"`
+ DomainUpdatedAt string `json:"domain_updated_at"`
+ Registrar string `json:"registrar"`
+}
+
+type CRALoansRegisterRequest struct {
+ ClientId string `json:"client_id"`
+ Loans string `json:"loans"`
+ Secret string `json:"secret"`
+}
+
+type CashFlowUpdatesExpectedDepositMissedWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesInsightsV2Webhook struct {
+ Environment string `json:"environment"`
+ Insights string `json:"insights"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesInsightsWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesLargeDepositWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesLowBalanceWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesNSFWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesNewIncomeStreamWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashFlowUpdatesNewLoanPaymentWebhook struct {
+ Environment string `json:"environment"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CashflowAttributesSchema struct {
+}
+
+type CashflowReportAccountInsights struct {
+ HistoricalBalances string `json:"historical_balances"`
+ MonthlySummaries string `json:"monthly_summaries"`
+}
+
+type CashflowReportGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ DaysRequested int `json:"days_requested"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type CashflowReportGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type CashflowReportGetResponse struct {
+ Accounts string `json:"accounts"`
+ HasMore bool `json:"has_more"`
+ Item string `json:"item"`
+ LastSuccessfulUpdateTime string `json:"last_successful_update_time"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ TotalTransactions int `json:"total_transactions"`
+ Transactions string `json:"transactions"`
+}
+
+type CashflowReportHistoricalBalance struct {
+ Amount float64 `json:"amount"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportInsightsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type CashflowReportInsightsGetResponse struct {
+ AccountInsights string `json:"account_insights"`
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ LastGeneratedTime string `json:"last_generated_time"`
+ RequestId string `json:"request_id"`
+}
+
+type CashflowReportMonthlySummary struct {
+ AverageDailyEndingBalance string `json:"average_daily_ending_balance"`
+ AverageDailyInflowAmount string `json:"average_daily_inflow_amount"`
+ AverageDailyInflowTransactionCount float64 `json:"average_daily_inflow_transaction_count"`
+ AverageDailyNetCashflowAmount string `json:"average_daily_net_cashflow_amount"`
+ AverageDailyOutflowAmount string `json:"average_daily_outflow_amount"`
+ AverageDailyOutflowTransactionCount float64 `json:"average_daily_outflow_transaction_count"`
+ EndDate string `json:"end_date"`
+ EndingBalance string `json:"ending_balance"`
+ NegativeEndingBalanceDayCount int `json:"negative_ending_balance_day_count"`
+ NsfTransactionCount int `json:"nsf_transaction_count"`
+ OverdraftTransactionCount int `json:"overdraft_transaction_count"`
+ StartDate string `json:"start_date"`
+ StartingBalance string `json:"starting_balance"`
+ TotalLoanPayment string `json:"total_loan_payment"`
+ TotalPayroll string `json:"total_payroll"`
+ TotalRevenue string `json:"total_revenue"`
+ TotalVariableExpense string `json:"total_variable_expense"`
+}
+
+type CashflowReportMonthlySummaryAverageDailyEndingBalance struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryAverageDailyInflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryAverageDailyNetCashflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryAverageDailyOutflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryEndingBalance struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryStartingBalance struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryTotalLoanPayment struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryTotalPayroll struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryTotalRevenue struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportMonthlySummaryTotalVariableExpense struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CashflowReportPaymentMeta struct {
+ ByOrderOf string `json:"by_order_of"`
+ Payee string `json:"payee"`
+ Payer string `json:"payer"`
+ PaymentMethod string `json:"payment_method"`
+ PaymentProcessor string `json:"payment_processor"`
+ PpdId string `json:"ppd_id"`
+ Reason string `json:"reason"`
+ ReferenceNumber string `json:"reference_number"`
+}
+
+type CashflowReportRefreshRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ DaysRequested int `json:"days_requested"`
+ Secret string `json:"secret"`
+}
+
+type CashflowReportRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CashflowReportTransaction struct {
+ AccountId string `json:"account_id"`
+ AccountOwner string `json:"account_owner"`
+ Amount float64 `json:"amount"`
+ AuthorizedDate string `json:"authorized_date"`
+ AuthorizedDatetime string `json:"authorized_datetime"`
+ BusinessFinanceCategory string `json:"business_finance_category"`
+ CheckNumber string `json:"check_number"`
+ Counterparties string `json:"counterparties"`
+ CreditCategory string `json:"credit_category"`
+ Date string `json:"date"`
+ Datetime string `json:"datetime"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Location string `json:"location"`
+ LogoUrl string `json:"logo_url"`
+ MerchantEntityId string `json:"merchant_entity_id"`
+ MerchantName string `json:"merchant_name"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ PaymentChannel string `json:"payment_channel"`
+ PaymentMeta string `json:"payment_meta"`
+ Pending bool `json:"pending"`
+ PendingTransactionId string `json:"pending_transaction_id"`
+ PersonalFinanceCategory string `json:"personal_finance_category"`
+ PersonalFinanceCategoryIconUrl string `json:"personal_finance_category_icon_url"`
+ TransactionCode string `json:"transaction_code"`
+ TransactionId string `json:"transaction_id"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ Website string `json:"website"`
+}
+
+type CashflowReportTransactionsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type CashflowReportTransactionsGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type CashflowReportTransactionsGetResponse struct {
+ Accounts string `json:"accounts"`
+ HasMore bool `json:"has_more"`
+ Item string `json:"item"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ TotalTransactions int `json:"total_transactions"`
+ Transactions string `json:"transactions"`
+}
+
+type CategoriesGetRequest struct {
+}
+
+type CategoriesGetResponse struct {
+ Categories string `json:"categories"`
+ RequestId string `json:"request_id"`
+}
+
+type Category struct {
+ CategoryId string `json:"category_id"`
+ Group string `json:"group"`
+ Hierarchy string `json:"hierarchy"`
+}
+
+type CategoryExpenses struct {
+ Amount float64 `json:"amount"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyAverage string `json:"monthly_average"`
+ TransactionsCount int `json:"transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CategoryInsightDetails struct {
+ Name string `json:"name"`
+ TopCounterparties string `json:"top_counterparties"`
+ TotalInflows float64 `json:"total_inflows"`
+ TotalOutflows float64 `json:"total_outflows"`
+ TransactionCount int `json:"transaction_count"`
+}
+
+type CategoryInsights struct {
+ DetailedCategoryInsights string `json:"detailed_category_insights"`
+ PrimaryCategoryInsights string `json:"primary_category_insights"`
+}
+
+type Cause struct {
+ Causes string `json:"causes"`
+ DisplayMessage string `json:"display_message"`
+ DocumentationUrl string `json:"documentation_url"`
+ ErrorCode string `json:"error_code"`
+ ErrorCodeReason string `json:"error_code_reason"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+ ItemId string `json:"item_id"`
+ ProvidedAccountSubtypes string `json:"provided_account_subtypes"`
+ RequestId string `json:"request_id"`
+ RequiredAccountSubtypes string `json:"required_account_subtypes"`
+ Status int `json:"status"`
+ SuggestedAction string `json:"suggested_action"`
+}
+
+type CheckReportWarning struct {
+ Cause string `json:"cause"`
+ WarningCode string `json:"warning_code"`
+ WarningType string `json:"warning_type"`
+}
+
+type ClientCustomization struct {
+ CustomEntityId string `json:"custom_entity_id"`
+}
+
+type ClientProvidedEnhancedTransaction struct {
+ Amount float64 `json:"amount"`
+ Description string `json:"description"`
+ Enhancements string `json:"enhancements"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type ClientProvidedEnrichedTransaction struct {
+ AccountSubtype string `json:"account_subtype"`
+ AccountType string `json:"account_type"`
+ Amount float64 `json:"amount"`
+ ClientAccountId string `json:"client_account_id"`
+ ClientCustomization string `json:"client_customization"`
+ ClientUserId string `json:"client_user_id"`
+ Description string `json:"description"`
+ Direction string `json:"direction"`
+ Enrichments string `json:"enrichments"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type ClientProvidedRawTransaction struct {
+ Amount float64 `json:"amount"`
+ Description string `json:"description"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type ClientProvidedTransaction struct {
+ AccountSubtype string `json:"account_subtype"`
+ AccountType string `json:"account_type"`
+ Amount float64 `json:"amount"`
+ ClientAccountId string `json:"client_account_id"`
+ ClientUserId string `json:"client_user_id"`
+ DatePosted string `json:"date_posted"`
+ Description string `json:"description"`
+ Direction string `json:"direction"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Location string `json:"location"`
+ Mcc string `json:"mcc"`
+ UserId string `json:"user_id"`
+}
+
+type ClientProvidedTransactionLocation struct {
+ Address string `json:"address"`
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+}
+
+type ClientUserIdentity struct {
+ Addresses string `json:"addresses"`
+ DateOfBirth string `json:"date_of_birth"`
+ Emails string `json:"emails"`
+ IdNumbers string `json:"id_numbers"`
+ Name string `json:"name"`
+ PhoneNumbers string `json:"phone_numbers"`
+}
+
+type ClientUserIdentityAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Primary bool `json:"primary"`
+ Region string `json:"region"`
+ Street1 string `json:"street_1"`
+ Street2 string `json:"street_2"`
+}
+
+type ClientUserIdentityEmail struct {
+ Data string `json:"data"`
+ Primary bool `json:"primary"`
+}
+
+type ClientUserIdentityName struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type ClientUserIdentityPhoneNumber struct {
+ Data string `json:"data"`
+ Primary bool `json:"primary"`
+}
+
+type ConnectedApplication struct {
+ ApplicationId string `json:"application_id"`
+ ApplicationUrl string `json:"application_url"`
+ CreatedAt string `json:"created_at"`
+ DisplayName string `json:"display_name"`
+ LogoUrl string `json:"logo_url"`
+ Name string `json:"name"`
+ ReasonForAccess string `json:"reason_for_access"`
+ Scopes string `json:"scopes"`
+}
+
+type ConsentEvent struct {
+ ConsentedAccounts string `json:"consented_accounts"`
+ ConsentedDataScopes string `json:"consented_data_scopes"`
+ ConsentedUseCases string `json:"consented_use_cases"`
+ CreatedAt string `json:"created_at"`
+ EventCode string `json:"event_code"`
+ EventType string `json:"event_type"`
+ Initiator string `json:"initiator"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+}
+
+type ConsentEventsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ConsentEventsGetResponse struct {
+ ConsentEvents string `json:"consent_events"`
+ RequestId string `json:"request_id"`
+}
+
+type ConsentedAccount struct {
+ AccountId string `json:"account_id"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+}
+
+type ConsumerDispute struct {
+ Category string `json:"category"`
+ ConsumerDisputeId string `json:"consumer_dispute_id"`
+ DisputeFieldCreateDate string `json:"dispute_field_create_date"`
+ Statement string `json:"statement"`
+}
+
+type ConsumerReportPDFGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type ConsumerReportUserIdentity struct {
+ DateOfBirth string `json:"date_of_birth"`
+ Emails string `json:"emails"`
+ FirstName string `json:"first_name"`
+ LastName string `json:"last_name"`
+ PhoneNumbers string `json:"phone_numbers"`
+ PrimaryAddress string `json:"primary_address"`
+ SsnFull string `json:"ssn_full"`
+ SsnLast4 string `json:"ssn_last_4"`
+}
+
+type Counterparty struct {
+ AccountNumbers string `json:"account_numbers"`
+ ConfidenceLevel string `json:"confidence_level"`
+ EntityId string `json:"entity_id"`
+ LogoUrl string `json:"logo_url"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+ Type string `json:"type"`
+ Website string `json:"website"`
+}
+
+type CounterpartyInsights struct {
+ FinancialInstitutionInsights string `json:"financial_institution_insights"`
+ MerchantInsights string `json:"merchant_insights"`
+}
+
+type CounterpartyNumbers struct {
+ Bacs string `json:"bacs"`
+ International string `json:"international"`
+}
+
+type CounterpartyNumbersBACS struct {
+ Account string `json:"account"`
+ SortCode string `json:"sort_code"`
+}
+
+type CounterpartyNumbersInternational struct {
+ Bic string `json:"bic"`
+ Iban string `json:"iban"`
+}
+
+type CraBankIncomeAccount struct {
+ AccountId string `json:"account_id"`
+ Mask string `json:"mask"`
+ Metadata string `json:"metadata"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+}
+
+type CraBankIncomeAccountMetadata struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type CraBankIncomeCause struct {
+ DisplayMessage string `json:"display_message"`
+ ErrorCode string `json:"error_code"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+}
+
+type CraBankIncomeCompleteWebhook struct {
+ Environment string `json:"environment"`
+ Result string `json:"result"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraBankIncomeEmployer struct {
+ Name string `json:"name"`
+}
+
+type CraBankIncomeErrorWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraBankIncomeHistoricalSummary struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+ TotalAmounts string `json:"total_amounts"`
+ Transactions string `json:"transactions"`
+}
+
+type CraBankIncomeIncomeProvider struct {
+ IsNormalized bool `json:"is_normalized"`
+ Name string `json:"name"`
+}
+
+type CraBankIncomeItem struct {
+ BankIncomeAccounts string `json:"bank_income_accounts"`
+ BankIncomeSources string `json:"bank_income_sources"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ LastUpdatedTime string `json:"last_updated_time"`
+}
+
+type CraBankIncomeSource struct {
+ AccountId string `json:"account_id"`
+ Employer string `json:"employer"`
+ EndDate string `json:"end_date"`
+ ForecastedAverageMonthlyIncome float64 `json:"forecasted_average_monthly_income"`
+ ForecastedAverageMonthlyIncomePredictionIntervals string `json:"forecasted_average_monthly_income_prediction_intervals"`
+ HistoricalAverageMonthlyGrossIncome float64 `json:"historical_average_monthly_gross_income"`
+ HistoricalAverageMonthlyIncome float64 `json:"historical_average_monthly_income"`
+ HistoricalSummary string `json:"historical_summary"`
+ IncomeCategory string `json:"income_category"`
+ IncomeDescription string `json:"income_description"`
+ IncomeProvider string `json:"income_provider"`
+ IncomeSourceId string `json:"income_source_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ NextPaymentDate string `json:"next_payment_date"`
+ PayFrequency string `json:"pay_frequency"`
+ StartDate string `json:"start_date"`
+ Status string `json:"status"`
+ TotalAmount float64 `json:"total_amount"`
+ TransactionCount int `json:"transaction_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CraBankIncomeSummary struct {
+ EndDate string `json:"end_date"`
+ ForecastedAnnualIncome string `json:"forecasted_annual_income"`
+ ForecastedAverageMonthlyIncome string `json:"forecasted_average_monthly_income"`
+ HistoricalAnnualGrossIncome string `json:"historical_annual_gross_income"`
+ HistoricalAnnualIncome string `json:"historical_annual_income"`
+ HistoricalAverageMonthlyGrossIncome string `json:"historical_average_monthly_gross_income"`
+ HistoricalAverageMonthlyIncome string `json:"historical_average_monthly_income"`
+ HistoricalSummary string `json:"historical_summary"`
+ IncomeCategoriesCount int `json:"income_categories_count"`
+ IncomeSourcesCount int `json:"income_sources_count"`
+ IncomeTransactionsCount int `json:"income_transactions_count"`
+ StartDate string `json:"start_date"`
+ TotalAmounts string `json:"total_amounts"`
+}
+
+type CraBankIncomeTransaction struct {
+ Amount float64 `json:"amount"`
+ BonusType string `json:"bonus_type"`
+ CheckNumber string `json:"check_number"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ Pending bool `json:"pending"`
+ TransactionId string `json:"transaction_id"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CraBankIncomeWarning struct {
+ Cause string `json:"cause"`
+ WarningCode string `json:"warning_code"`
+ WarningType string `json:"warning_type"`
+}
+
+type CraCashflowInsightsReport struct {
+ Attributes string `json:"attributes"`
+ GeneratedTime string `json:"generated_time"`
+ PlaidCheckScore string `json:"plaid_check_score"`
+ ReportId string `json:"report_id"`
+}
+
+type CraCheckReportBaseReportGetRequest struct {
+ ClientId string `json:"client_id"`
+ ItemIds string `json:"item_ids"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportBaseReportGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportCashflowInsightsGetOptions struct {
+ AttributesVersion string `json:"attributes_version"`
+ PlaidCheckScoreVersion string `json:"plaid_check_score_version"`
+}
+
+type CraCheckReportCashflowInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportCashflowInsightsGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportCreateBaseReportOptions struct {
+ ClientReportId string `json:"client_report_id"`
+ GseOptions string `json:"gse_options"`
+ RequireIdentity bool `json:"require_identity"`
+}
+
+type CraCheckReportCreatePartnerInsightsOptions struct {
+ Fico string `json:"fico"`
+ PrismProducts string `json:"prism_products"`
+ PrismVersions string `json:"prism_versions"`
+}
+
+type CraCheckReportCreateRequest struct {
+ BaseReport string `json:"base_report"`
+ CashflowInsights string `json:"cashflow_insights"`
+ ClientId string `json:"client_id"`
+ ClientReportId string `json:"client_report_id"`
+ ConsumerReportPermissiblePurpose string `json:"consumer_report_permissible_purpose"`
+ DaysRequested int `json:"days_requested"`
+ DaysRequired int `json:"days_required"`
+ IncludeInvestments bool `json:"include_investments"`
+ LendScore string `json:"lend_score"`
+ NetworkInsights string `json:"network_insights"`
+ PartnerInsights string `json:"partner_insights"`
+ Products string `json:"products"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+ Webhook string `json:"webhook"`
+}
+
+type CraCheckReportCreateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CraCheckReportFailedWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraCheckReportFreddieMacGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+}
+
+type CraCheckReportFreddieMacGetResponse struct {
+ DEAL string `json:"DEAL"`
+ SchemaVersion float64 `json:"SchemaVersion"`
+ RequestId string `json:"request_id"`
+}
+
+type CraCheckReportFreddieMacVerificationOfAssetsDeal struct {
+ LOANS string `json:"LOANS"`
+ PARTIES string `json:"PARTIES"`
+ SERVICES string `json:"SERVICES"`
+}
+
+type CraCheckReportGSEOptions struct {
+ ReportTypes string `json:"report_types"`
+}
+
+type CraCheckReportIncomeInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportIncomeInsightsGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportLendScoreGetOptions struct {
+ LendScoreVersion string `json:"lend_score_version"`
+}
+
+type CraCheckReportLendScoreGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportLendScoreGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportNetworkInsightsGetOptions struct {
+ NetworkInsightsVersion string `json:"network_insights_version"`
+}
+
+type CraCheckReportNetworkInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportNetworkInsightsGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportPDFGetRequest struct {
+ AddOns string `json:"add_ons"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportPartnerInsightsGetOptions struct {
+ PrismProducts string `json:"prism_products"`
+ PrismVersions string `json:"prism_versions"`
+}
+
+type CraCheckReportPartnerInsightsGetPartnerInsights struct {
+ Fico string `json:"fico"`
+ PrismVersions string `json:"prism_versions"`
+}
+
+type CraCheckReportPartnerInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ PartnerInsights string `json:"partner_insights"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportPartnerInsightsGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportReadyWebhook struct {
+ Environment string `json:"environment"`
+ FailedProducts string `json:"failed_products"`
+ ItemIds string `json:"item_ids"`
+ SuccessfulProducts string `json:"successful_products"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraCheckReportVerificationGetEmploymentRefreshOptions struct {
+ DaysRequested int `json:"days_requested"`
+}
+
+type CraCheckReportVerificationGetRequest struct {
+ ClientId string `json:"client_id"`
+ EmploymentRefreshOptions string `json:"employment_refresh_options"`
+ ReportsRequested string `json:"reports_requested"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraCheckReportVerificationGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraCheckReportVerificationPdfGetRequest struct {
+ ClientId string `json:"client_id"`
+ ReportRequested string `json:"report_requested"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraEmploymentRefreshReport struct {
+ DaysRequested float64 `json:"days_requested"`
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+}
+
+type CraEmploymentRefreshReportAccount struct {
+ AccountId string `json:"account_id"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Subtype string `json:"subtype"`
+ Transactions string `json:"transactions"`
+ Type string `json:"type"`
+}
+
+type CraEmploymentRefreshReportItem struct {
+ Accounts string `json:"accounts"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ LastUpdateTime string `json:"last_update_time"`
+}
+
+type CraEmploymentRefreshReportTransaction struct {
+ AccountId string `json:"account_id"`
+ Date string `json:"date"`
+ OriginalDescription string `json:"original_description"`
+ Pending bool `json:"pending"`
+ TransactionId string `json:"transaction_id"`
+}
+
+type CraIncomeInsights struct {
+ BankIncomeSummary string `json:"bank_income_summary"`
+ ClientReportId string `json:"client_report_id"`
+ DaysRequested int `json:"days_requested"`
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+ ReportId string `json:"report_id"`
+ Warnings string `json:"warnings"`
+}
+
+type CraLendScoreReport struct {
+ GeneratedTime string `json:"generated_time"`
+ LendScore string `json:"lend_score"`
+ ReportId string `json:"report_id"`
+}
+
+type CraLoanApplication struct {
+ ApplicationDate string `json:"application_date"`
+ ApplicationId string `json:"application_id"`
+ Decision string `json:"decision"`
+ DecisionDate string `json:"decision_date"`
+ Type string `json:"type"`
+ UserToken string `json:"user_token"`
+}
+
+type CraLoanClosedStatus struct {
+ Date string `json:"date"`
+ Status string `json:"status"`
+}
+
+type CraLoanOpenedStatus struct {
+ Date string `json:"date"`
+ Status string `json:"status"`
+}
+
+type CraLoanPaymentHistory struct {
+ AmountPastDue float64 `json:"amount_past_due"`
+ BalanceRemaining float64 `json:"balance_remaining"`
+ DaysPastDue int `json:"days_past_due"`
+ DueDate string `json:"due_date"`
+ Period int `json:"period"`
+}
+
+type CraLoanRegister struct {
+ Application string `json:"application"`
+ LoanAmount float64 `json:"loan_amount"`
+ LoanId string `json:"loan_id"`
+ OpenedDate string `json:"opened_date"`
+ OpenedWithStatus string `json:"opened_with_status"`
+ PaymentSchedule string `json:"payment_schedule"`
+ Type string `json:"type"`
+ UserToken string `json:"user_token"`
+}
+
+type CraLoanRegisterApplication struct {
+ ApplicationDate string `json:"application_date"`
+ ApplicationId string `json:"application_id"`
+}
+
+type CraLoanStatusHistoryUpdate struct {
+ Date string `json:"date"`
+ Status string `json:"status"`
+}
+
+type CraLoanUnregister struct {
+ ClosedWithStatus string `json:"closed_with_status"`
+ LoanId string `json:"loan_id"`
+}
+
+type CraLoanUnregisterResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CraLoanUpdate struct {
+ LoanId string `json:"loan_id"`
+ PaymentHistory string `json:"payment_history"`
+ StatusHistory string `json:"status_history"`
+}
+
+type CraLoansApplicationsRegisterRequest struct {
+ Applications string `json:"applications"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type CraLoansApplicationsRegisterResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CraLoansRegisterResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CraLoansUnregisterRequest struct {
+ ClientId string `json:"client_id"`
+ Loans string `json:"loans"`
+ Secret string `json:"secret"`
+}
+
+type CraLoansUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ Loans string `json:"loans"`
+ Secret string `json:"secret"`
+}
+
+type CraLoansUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CraMonitoringInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ ConsumerReportPermissiblePurpose string `json:"consumer_report_permissible_purpose"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type CraMonitoringInsightsGetResponse struct {
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+ UserInsightsId string `json:"user_insights_id"`
+}
+
+type CraMonitoringInsightsItem struct {
+ Accounts string `json:"accounts"`
+ DateGenerated string `json:"date_generated"`
+ Insights string `json:"insights"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+}
+
+type CraMonitoringInsightsSubscribeRequest struct {
+ ClientId string `json:"client_id"`
+ IncomeCategories string `json:"income_categories"`
+ ItemId string `json:"item_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+ Webhook string `json:"webhook"`
+}
+
+type CraMonitoringInsightsSubscribeResponse struct {
+ RequestId string `json:"request_id"`
+ SubscriptionId string `json:"subscription_id"`
+}
+
+type CraMonitoringInsightsUnsubscribeRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ SubscriptionId string `json:"subscription_id"`
+}
+
+type CraMonitoringInsightsUnsubscribeResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CraNetworkInsightsItem struct {
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+}
+
+type CraNetworkInsightsReport struct {
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+ NetworkAttributes string `json:"network_attributes"`
+ ReportId string `json:"report_id"`
+}
+
+type CraPartnerInsights struct {
+ ClientReportId string `json:"client_report_id"`
+ Fico string `json:"fico"`
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+ Prism string `json:"prism"`
+ ReportId string `json:"report_id"`
+}
+
+type CraPartnerInsightsBaseFicoScore struct {
+ BaseFicoScoreVersion string `json:"base_fico_score_version"`
+ Bureau string `json:"bureau"`
+ DidInquiriesAdverselyAffectScore bool `json:"did_inquiries_adversely_affect_score"`
+ ReasonCode1 string `json:"reason_code_1"`
+ ReasonCode2 string `json:"reason_code_2"`
+ ReasonCode3 string `json:"reason_code_3"`
+ ReasonCode4 string `json:"reason_code_4"`
+ Score int `json:"score"`
+}
+
+type CraPartnerInsightsCompleteWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraPartnerInsightsErrorWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraPartnerInsightsFicoInput struct {
+ FicoLenderId string `json:"fico_lender_id"`
+ LenderApplicationId string `json:"lender_application_id"`
+ UltraficoScoreRequests string `json:"ultrafico_score_requests"`
+}
+
+type CraPartnerInsightsFicoResults struct {
+ LenderApplicationId string `json:"lender_application_id"`
+ UltraficoScoreResults string `json:"ultrafico_score_results"`
+}
+
+type CraPartnerInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CraPartnerInsightsGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+}
+
+type CraPartnerInsightsItem struct {
+ Accounts string `json:"accounts"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+}
+
+type CraPartnerInsightsItemAccount struct {
+ AccountId string `json:"account_id"`
+ Mask string `json:"mask"`
+ Metadata string `json:"metadata"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+}
+
+type CraPartnerInsightsItemAccountMetadata struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type CraPartnerInsightsPrism struct {
+ CashScore string `json:"cash_score"`
+ Detect string `json:"detect"`
+ Extend string `json:"extend"`
+ FirstDetect string `json:"first_detect"`
+ Insights string `json:"insights"`
+ Status string `json:"status"`
+}
+
+type CraPartnerInsightsUltraFicoScore struct {
+ DidInquiriesAdverselyAffectScore bool `json:"did_inquiries_adversely_affect_score"`
+ ReasonCode1 string `json:"reason_code_1"`
+ ReasonCode2 string `json:"reason_code_2"`
+ ReasonCode3 string `json:"reason_code_3"`
+ ReasonCode4 string `json:"reason_code_4"`
+ Score int `json:"score"`
+ UltraficoScoreVersion string `json:"ultrafico_score_version"`
+}
+
+type CraPartnerInsightsUltraFicoScoreRequest struct {
+ BaseFicoScore string `json:"base_fico_score"`
+ FicoScoringRequestId string `json:"fico_scoring_request_id"`
+ RequestCorrelationId string `json:"request_correlation_id"`
+ UltraficoScoreVersion string `json:"ultrafico_score_version"`
+}
+
+type CraPartnerInsightsUltraFicoScoreResult struct {
+ ErrorReason string `json:"error_reason"`
+ FicoScoringRequestId string `json:"fico_scoring_request_id"`
+ RequestCorrelationId string `json:"request_correlation_id"`
+ UltraficoScore string `json:"ultrafico_score"`
+}
+
+type CraPredictionInterval struct {
+ LowerBound float64 `json:"lower_bound"`
+ Probability float64 `json:"probability"`
+ UpperBound float64 `json:"upper_bound"`
+}
+
+type CraUpgradeFailedWebhook struct {
+ Environment string `json:"environment"`
+ ItemIds string `json:"item_ids"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraUserCheckReportFailedWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraUserCheckReportReadyWebhook struct {
+ Environment string `json:"environment"`
+ FailedProducts string `json:"failed_products"`
+ ItemIds string `json:"item_ids"`
+ SuccessfulProducts string `json:"successful_products"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type CraVerificationReport struct {
+ ClientReportId string `json:"client_report_id"`
+ EmploymentRefresh string `json:"employment_refresh"`
+ ReportId string `json:"report_id"`
+ Voa string `json:"voa"`
+}
+
+type CraVoaReport struct {
+ Attributes string `json:"attributes"`
+ DaysRequested float64 `json:"days_requested"`
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+}
+
+type CraVoaReportAccount struct {
+ AccountId string `json:"account_id"`
+ Balances string `json:"balances"`
+ ConsumerDisputes string `json:"consumer_disputes"`
+ DaysAvailable float64 `json:"days_available"`
+ Investments string `json:"investments"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ OwnershipType string `json:"ownership_type"`
+ Subtype string `json:"subtype"`
+ TransactionsInsights string `json:"transactions_insights"`
+ Type string `json:"type"`
+}
+
+type CraVoaReportAccountBalances struct {
+ Available float64 `json:"available"`
+ AverageBalance30Days float64 `json:"average_balance_30_days"`
+ AverageBalance60Days float64 `json:"average_balance_60_days"`
+ Current float64 `json:"current"`
+ HistoricalBalances string `json:"historical_balances"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ NsfOverdraftTransactionsCount float64 `json:"nsf_overdraft_transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CraVoaReportAccountHistoricalBalance struct {
+ Current float64 `json:"current"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CraVoaReportAttributes struct {
+ TotalInflowAmount string `json:"total_inflow_amount"`
+ TotalOutflowAmount string `json:"total_outflow_amount"`
+}
+
+type CraVoaReportItem struct {
+ Accounts string `json:"accounts"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ LastUpdateTime string `json:"last_update_time"`
+}
+
+type CraVoaReportTransactionsInsights struct {
+ AllTransactions string `json:"all_transactions"`
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type Credit1099 struct {
+ AprilAmount float64 `json:"april_amount"`
+ AugustAmount float64 `json:"august_amount"`
+ CardNotPresentTransaction float64 `json:"card_not_present_transaction"`
+ CropInsuranceProceeds float64 `json:"crop_insurance_proceeds"`
+ DecemberAmount float64 `json:"december_amount"`
+ DocumentId string `json:"document_id"`
+ DocumentMetadata string `json:"document_metadata"`
+ ExcessGoldenParachutePayments float64 `json:"excess_golden_parachute_payments"`
+ FebruaryAmount float64 `json:"february_amount"`
+ FederalIncomeTaxWithheld float64 `json:"federal_income_tax_withheld"`
+ Filer string `json:"filer"`
+ FishingBoatProceeds float64 `json:"fishing_boat_proceeds"`
+ Form1099Type string `json:"form_1099_type"`
+ GrossAmount float64 `json:"gross_amount"`
+ GrossProceedsPaidToAnAttorney float64 `json:"gross_proceeds_paid_to_an_attorney"`
+ JanuaryAmount float64 `json:"january_amount"`
+ JulyAmount float64 `json:"july_amount"`
+ JuneAmount float64 `json:"june_amount"`
+ MarchAmount float64 `json:"march_amount"`
+ MayAmount float64 `json:"may_amount"`
+ MedicalAndHealthcarePayments float64 `json:"medical_and_healthcare_payments"`
+ MerchantCategoryCode string `json:"merchant_category_code"`
+ NonemployeeCompensation float64 `json:"nonemployee_compensation"`
+ NovemberAmount float64 `json:"november_amount"`
+ NumberOfPaymentTransactions string `json:"number_of_payment_transactions"`
+ OctoberAmount float64 `json:"october_amount"`
+ OtherIncome float64 `json:"other_income"`
+ Payer string `json:"payer"`
+ PayerMadeDirectSalesOf5000OrMoreOfConsumerProductsToBuyer string `json:"payer_made_direct_sales_of_5000_or_more_of_consumer_products_to_buyer"`
+ PayerStateNumber string `json:"payer_state_number"`
+ PayerStateNumberLower string `json:"payer_state_number_lower"`
+ PrimaryState string `json:"primary_state"`
+ PrimaryStateId string `json:"primary_state_id"`
+ PrimaryStateIncomeTax float64 `json:"primary_state_income_tax"`
+ PseName string `json:"pse_name"`
+ PseTelephoneNumber string `json:"pse_telephone_number"`
+ Recipient string `json:"recipient"`
+ Rents float64 `json:"rents"`
+ Royalties float64 `json:"royalties"`
+ SecondaryState string `json:"secondary_state"`
+ SecondaryStateId string `json:"secondary_state_id"`
+ SecondaryStateIncomeTax float64 `json:"secondary_state_income_tax"`
+ Section409aDeferrals float64 `json:"section_409a_deferrals"`
+ Section409aIncome float64 `json:"section_409a_income"`
+ SeptemberAmount float64 `json:"september_amount"`
+ StateIncome float64 `json:"state_income"`
+ StateIncomeLower float64 `json:"state_income_lower"`
+ StateTaxWithheld float64 `json:"state_tax_withheld"`
+ StateTaxWithheldLower float64 `json:"state_tax_withheld_lower"`
+ SubstitutePaymentsInLieuOfDividendsOrInterest float64 `json:"substitute_payments_in_lieu_of_dividends_or_interest"`
+ TaxYear string `json:"tax_year"`
+ TransactionsReported string `json:"transactions_reported"`
+}
+
+type Credit1099Filer struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+ Tin string `json:"tin"`
+ Type string `json:"type"`
+}
+
+type Credit1099Payer struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+ TelephoneNumber string `json:"telephone_number"`
+ Tin string `json:"tin"`
+}
+
+type Credit1099Recipient struct {
+ AccountNumber string `json:"account_number"`
+ Address string `json:"address"`
+ FactaFilingRequirement string `json:"facta_filing_requirement"`
+ Name string `json:"name"`
+ SecondTinExists string `json:"second_tin_exists"`
+ Tin string `json:"tin"`
+}
+
+type CreditAccount struct {
+ CreditCard string `json:"credit_card"`
+ Paypal string `json:"paypal"`
+}
+
+type CreditAmountWithCurrency struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CreditAuditCopyTokenCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ReportTokens string `json:"report_tokens"`
+ Secret string `json:"secret"`
+}
+
+type CreditAuditCopyTokenCreateResponse struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditAuditCopyTokenRemoveRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type CreditAuditCopyTokenRemoveResponse struct {
+ Removed bool `json:"removed"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditAuditCopyTokenUpdateRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ ReportTokens string `json:"report_tokens"`
+ Secret string `json:"secret"`
+}
+
+type CreditAuditCopyTokenUpdateResponse struct {
+ RequestId string `json:"request_id"`
+ Updated bool `json:"updated"`
+}
+
+type CreditBankEmployer struct {
+ Name string `json:"name"`
+}
+
+type CreditBankEmployment struct {
+ AccountId string `json:"account_id"`
+ BankEmploymentId string `json:"bank_employment_id"`
+ EarliestDepositDate string `json:"earliest_deposit_date"`
+ Employer string `json:"employer"`
+ LatestDepositDate string `json:"latest_deposit_date"`
+}
+
+type CreditBankEmploymentGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditBankEmploymentGetResponse struct {
+ BankEmploymentReports string `json:"bank_employment_reports"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditBankEmploymentItem struct {
+ BankEmploymentAccounts string `json:"bank_employment_accounts"`
+ BankEmployments string `json:"bank_employments"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ LastUpdatedTime string `json:"last_updated_time"`
+}
+
+type CreditBankEmploymentReport struct {
+ BankEmploymentReportId string `json:"bank_employment_report_id"`
+ DaysRequested int `json:"days_requested"`
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+ Warnings string `json:"warnings"`
+}
+
+type CreditBankEmploymentWarning struct {
+ Cause string `json:"cause"`
+ WarningCode string `json:"warning_code"`
+ WarningType string `json:"warning_type"`
+}
+
+type CreditBankIncome struct {
+ BankIncomeId string `json:"bank_income_id"`
+ BankIncomeSummary string `json:"bank_income_summary"`
+ DaysRequested int `json:"days_requested"`
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+ Warnings string `json:"warnings"`
+}
+
+type CreditBankIncomeAccount struct {
+ AccountId string `json:"account_id"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+ Owners string `json:"owners"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+}
+
+type CreditBankIncomeCause struct {
+ DisplayMessage string `json:"display_message"`
+ ErrorCode string `json:"error_code"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+ ItemId string `json:"item_id"`
+}
+
+type CreditBankIncomeGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditBankIncomeGetRequestOptions struct {
+ Count int `json:"count"`
+}
+
+type CreditBankIncomeGetResponse struct {
+ BankIncome string `json:"bank_income"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditBankIncomeHistoricalSummary struct {
+ EndDate string `json:"end_date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ StartDate string `json:"start_date"`
+ TotalAmount float64 `json:"total_amount"`
+ TotalAmounts string `json:"total_amounts"`
+ Transactions string `json:"transactions"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CreditBankIncomeItem struct {
+ BankIncomeAccounts string `json:"bank_income_accounts"`
+ BankIncomeSources string `json:"bank_income_sources"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ LastUpdatedTime string `json:"last_updated_time"`
+}
+
+type CreditBankIncomePDFGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditBankIncomeRefreshRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditBankIncomeRefreshRequestOptions struct {
+ DaysRequested int `json:"days_requested"`
+}
+
+type CreditBankIncomeRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CreditBankIncomeSource struct {
+ AccountId string `json:"account_id"`
+ EndDate string `json:"end_date"`
+ HistoricalSummary string `json:"historical_summary"`
+ IncomeCategory string `json:"income_category"`
+ IncomeDescription string `json:"income_description"`
+ IncomeSourceId string `json:"income_source_id"`
+ PayFrequency string `json:"pay_frequency"`
+ StartDate string `json:"start_date"`
+ TotalAmount float64 `json:"total_amount"`
+ TransactionCount int `json:"transaction_count"`
+}
+
+type CreditBankIncomeSummary struct {
+ EndDate string `json:"end_date"`
+ HistoricalSummary string `json:"historical_summary"`
+ IncomeCategoriesCount int `json:"income_categories_count"`
+ IncomeSourcesCount int `json:"income_sources_count"`
+ IncomeTransactionsCount int `json:"income_transactions_count"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ StartDate string `json:"start_date"`
+ TotalAmount float64 `json:"total_amount"`
+ TotalAmounts string `json:"total_amounts"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CreditBankIncomeTransaction struct {
+ Amount float64 `json:"amount"`
+ CheckNumber string `json:"check_number"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ Pending bool `json:"pending"`
+ TransactionId string `json:"transaction_id"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type CreditBankIncomeWarning struct {
+ Cause string `json:"cause"`
+ WarningCode string `json:"warning_code"`
+ WarningType string `json:"warning_type"`
+}
+
+type CreditBankIncomeWebhookUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ EnableWebhooks bool `json:"enable_webhooks"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditBankIncomeWebhookUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CreditBankStatementUploadAccountOwner struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+}
+
+type CreditBankStatementUploadAccountOwnerAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type CreditBankStatementUploadBankAccount struct {
+ AccountId string `json:"account_id"`
+ AccountNumber string `json:"account_number"`
+ AccountType string `json:"account_type"`
+ BankName string `json:"bank_name"`
+ Name string `json:"name"`
+ Owner string `json:"owner"`
+ Periods string `json:"periods"`
+}
+
+type CreditBankStatementUploadBankAccountPeriod struct {
+ EndDate string `json:"end_date"`
+ EndingBalance float64 `json:"ending_balance"`
+ StartDate string `json:"start_date"`
+ StartingBalance float64 `json:"starting_balance"`
+}
+
+type CreditBankStatementUploadItem struct {
+ BankStatements string `json:"bank_statements"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+}
+
+type CreditBankStatementUploadObject struct {
+ BankAccounts string `json:"bank_accounts"`
+ DocumentId string `json:"document_id"`
+ DocumentMetadata string `json:"document_metadata"`
+ Transactions string `json:"transactions"`
+}
+
+type CreditBankStatementUploadTransaction struct {
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ Date string `json:"date"`
+ OriginalDescription string `json:"original_description"`
+}
+
+type CreditBankStatementsUploadsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditBankStatementsUploadsGetRequestOptions struct {
+ ItemIds string `json:"item_ids"`
+}
+
+type CreditBankStatementsUploadsGetResponse struct {
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditCardLiability struct {
+ AccountId string `json:"account_id"`
+ Aprs string `json:"aprs"`
+ IsOverdue bool `json:"is_overdue"`
+ LastPaymentAmount float64 `json:"last_payment_amount"`
+ LastPaymentDate string `json:"last_payment_date"`
+ LastStatementBalance float64 `json:"last_statement_balance"`
+ LastStatementIssueDate string `json:"last_statement_issue_date"`
+ MinimumPaymentAmount float64 `json:"minimum_payment_amount"`
+ NextPaymentDueDate string `json:"next_payment_due_date"`
+}
+
+type CreditCategory struct {
+ Detailed string `json:"detailed"`
+ Primary string `json:"primary"`
+}
+
+type CreditDocumentMetadata struct {
+ DocumentType string `json:"document_type"`
+ DownloadUrl string `json:"download_url"`
+ ErrorMessage string `json:"error_message"`
+ Name string `json:"name"`
+ PageCount int `json:"page_count"`
+ Status string `json:"status"`
+}
+
+type CreditEmployerVerification struct {
+ Name string `json:"name"`
+}
+
+type CreditEmploymentGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditEmploymentGetResponse struct {
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditEmploymentItem struct {
+ EmploymentReportToken string `json:"employment_report_token"`
+ Employments string `json:"employments"`
+ ItemId string `json:"item_id"`
+}
+
+type CreditEmploymentVerification struct {
+ AccountId string `json:"account_id"`
+ EmployeeType string `json:"employee_type"`
+ Employer string `json:"employer"`
+ EndDate string `json:"end_date"`
+ LastPaystubDate string `json:"last_paystub_date"`
+ PlatformIds string `json:"platform_ids"`
+ StartDate string `json:"start_date"`
+ Status string `json:"status"`
+ Title string `json:"title"`
+}
+
+type CreditFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type CreditFreddieMacAsset struct {
+ ASSETDETAIL string `json:"ASSET_DETAIL"`
+ ASSETHOLDER string `json:"ASSET_HOLDER"`
+ ASSETHOLDINGS string `json:"ASSET_HOLDINGS"`
+ ASSETOWNERS string `json:"ASSET_OWNERS"`
+ ASSETTRANSACTIONS string `json:"ASSET_TRANSACTIONS"`
+ VALIDATIONSOURCES string `json:"VALIDATION_SOURCES"`
+}
+
+type CreditFreddieMacAssetTransaction struct {
+ ASSETTRANSACTIONDESCRIPTION string `json:"ASSET_TRANSACTION_DESCRIPTION"`
+ ASSETTRANSACTIONDETAIL string `json:"ASSET_TRANSACTION_DETAIL"`
+}
+
+type CreditFreddieMacAssetTransactions struct {
+ ASSETTRANSACTION string `json:"ASSET_TRANSACTION"`
+}
+
+type CreditFreddieMacAssets struct {
+ ASSET string `json:"ASSET"`
+}
+
+type CreditFreddieMacIndividualName struct {
+ FirstName string `json:"FirstName"`
+ LastName string `json:"LastName"`
+ MiddleName string `json:"MiddleName"`
+}
+
+type CreditFreddieMacLoan struct {
+ LOANIDENTIFIERS string `json:"LOAN_IDENTIFIERS"`
+ LoanRoleType string `json:"LoanRoleType"`
+}
+
+type CreditFreddieMacLoanIdentifiers struct {
+ LOANIDENTIFIER string `json:"LOAN_IDENTIFIER"`
+}
+
+type CreditFreddieMacLoans struct {
+ LOAN string `json:"LOAN"`
+}
+
+type CreditFreddieMacParties struct {
+ PARTY string `json:"PARTY"`
+}
+
+type CreditFreddieMacParty struct {
+ INDIVIDUAL string `json:"INDIVIDUAL"`
+ ROLES string `json:"ROLES"`
+ TAXPAYERIDENTIFIERS string `json:"TAXPAYER_IDENTIFIERS"`
+}
+
+type CreditFreddieMacPartyIndividual struct {
+ NAME string `json:"NAME"`
+}
+
+type CreditFreddieMacReportingInformation struct {
+ ReportDateTime string `json:"ReportDateTime"`
+ ReportIdentifierType string `json:"ReportIdentifierType"`
+ ReportingInformationIdentifier string `json:"ReportingInformationIdentifier"`
+ ReportingInformationParentIdentifier string `json:"ReportingInformationParentIdentifier"`
+}
+
+type CreditFreddieMacReportsGetRequest struct {
+ AuditCopyToken string `json:"audit_copy_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type CreditFreddieMacReportsGetResponse struct {
+ DEAL string `json:"DEAL"`
+ SchemaVersion float64 `json:"SchemaVersion"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditFreddieMacService struct {
+ STATUSES string `json:"STATUSES"`
+ VERIFICATIONOFASSET string `json:"VERIFICATION_OF_ASSET"`
+}
+
+type CreditFreddieMacServices struct {
+ SERVICE string `json:"SERVICE"`
+}
+
+type CreditFreddieMacVerificationOfAsset struct {
+ REPORTINGINFORMATION string `json:"REPORTING_INFORMATION"`
+ SERVICEPRODUCTFULFILLMENT string `json:"SERVICE_PRODUCT_FULFILLMENT"`
+ VERIFICATIONOFASSETRESPONSE string `json:"VERIFICATION_OF_ASSET_RESPONSE"`
+}
+
+type CreditFreddieMacVerificationOfAssetResponse struct {
+ ASSETS string `json:"ASSETS"`
+}
+
+type CreditFreddieMacVerificationOfAssetsDeal struct {
+ LOANS string `json:"LOANS"`
+ PARTIES string `json:"PARTIES"`
+ SERVICES string `json:"SERVICES"`
+}
+
+type CreditPayStub struct {
+ Deductions string `json:"deductions"`
+ DocumentId string `json:"document_id"`
+ DocumentMetadata string `json:"document_metadata"`
+ Earnings string `json:"earnings"`
+ Employee string `json:"employee"`
+ Employer string `json:"employer"`
+ NetPay string `json:"net_pay"`
+ PayPeriodDetails string `json:"pay_period_details"`
+}
+
+type CreditPayStubAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type CreditPayStubDeductions struct {
+ Breakdown string `json:"breakdown"`
+ Total string `json:"total"`
+}
+
+type CreditPayStubEarnings struct {
+ Breakdown string `json:"breakdown"`
+ Total string `json:"total"`
+}
+
+type CreditPayStubEmployee struct {
+ Address string `json:"address"`
+ MaritalStatus string `json:"marital_status"`
+ Name string `json:"name"`
+ TaxpayerId string `json:"taxpayer_id"`
+}
+
+type CreditPayStubEmployer struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+}
+
+type CreditPayStubNetPay struct {
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type CreditPayrollIncomeGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditPayrollIncomeGetRequestOptions struct {
+ ItemIds string `json:"item_ids"`
+}
+
+type CreditPayrollIncomeGetResponse struct {
+ Error string `json:"error"`
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditPayrollIncomeParsingConfigUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ ItemId string `json:"item_id"`
+ ParsingConfig string `json:"parsing_config"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditPayrollIncomeParsingConfigUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type CreditPayrollIncomePrecheckRequest struct {
+ AccessTokens string `json:"access_tokens"`
+ ClientId string `json:"client_id"`
+ Employer string `json:"employer"`
+ PayrollInstitution string `json:"payroll_institution"`
+ Secret string `json:"secret"`
+ UsMilitaryInfo string `json:"us_military_info"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditPayrollIncomePrecheckResponse struct {
+ Confidence string `json:"confidence"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditPayrollIncomeRefreshRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditPayrollIncomeRefreshRequestOptions struct {
+ ItemIds string `json:"item_ids"`
+ Webhook string `json:"webhook"`
+}
+
+type CreditPayrollIncomeRefreshResponse struct {
+ RequestId string `json:"request_id"`
+ VerificationRefreshStatus string `json:"verification_refresh_status"`
+}
+
+type CreditPayrollIncomeRiskSignalsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditPayrollIncomeRiskSignalsGetResponse struct {
+ Error string `json:"error"`
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditPlatformIds struct {
+ EmployeeId string `json:"employee_id"`
+ PayrollId string `json:"payroll_id"`
+ PositionId string `json:"position_id"`
+}
+
+type CreditRelayCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ReportTokens string `json:"report_tokens"`
+ SecondaryClientId string `json:"secondary_client_id"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type CreditRelayCreateResponse struct {
+ RelayToken string `json:"relay_token"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditRelayGetRequest struct {
+ ClientId string `json:"client_id"`
+ IncludeInsights bool `json:"include_insights"`
+ RelayToken string `json:"relay_token"`
+ ReportType string `json:"report_type"`
+ Secret string `json:"secret"`
+}
+
+type CreditRelayPDFGetRequest struct {
+ ClientId string `json:"client_id"`
+ RelayToken string `json:"relay_token"`
+ ReportType string `json:"report_type"`
+ Secret string `json:"secret"`
+}
+
+type CreditRelayRefreshRequest struct {
+ ClientId string `json:"client_id"`
+ RelayToken string `json:"relay_token"`
+ ReportType string `json:"report_type"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type CreditRelayRefreshResponse struct {
+ AssetReportId string `json:"asset_report_id"`
+ RelayToken string `json:"relay_token"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditRelayRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ RelayToken string `json:"relay_token"`
+ Secret string `json:"secret"`
+}
+
+type CreditRelayRemoveResponse struct {
+ Removed bool `json:"removed"`
+ RequestId string `json:"request_id"`
+}
+
+type CreditSession struct {
+ Errors string `json:"errors"`
+ LinkSessionId string `json:"link_session_id"`
+ Results string `json:"results"`
+ SessionStartTime string `json:"session_start_time"`
+}
+
+type CreditSessionBankEmploymentResult struct {
+ InstitutionId string `json:"institution_id"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+}
+
+type CreditSessionBankIncomeResult struct {
+ InstitutionId string `json:"institution_id"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+}
+
+type CreditSessionDocumentIncomeResult struct {
+ Num1099sUploaded int `json:"num_1099s_uploaded"`
+ NumBankStatementsUploaded int `json:"num_bank_statements_uploaded"`
+ NumPaystubsUploaded int `json:"num_paystubs_uploaded"`
+ NumW2sUploaded int `json:"num_w2s_uploaded"`
+}
+
+type CreditSessionError struct {
+ DisplayMessage string `json:"display_message"`
+ ErrorCode string `json:"error_code"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+}
+
+type CreditSessionItemAddResult struct {
+ InstitutionId string `json:"institution_id"`
+ ItemId string `json:"item_id"`
+ PublicToken string `json:"public_token"`
+}
+
+type CreditSessionPayrollIncomeResult struct {
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ NumPaystubsRetrieved int `json:"num_paystubs_retrieved"`
+ NumW2sRetrieved int `json:"num_w2s_retrieved"`
+}
+
+type CreditSessionResults struct {
+ BankEmploymentResults string `json:"bank_employment_results"`
+ BankIncomeResults string `json:"bank_income_results"`
+ DocumentIncomeResults string `json:"document_income_results"`
+ ItemAddResults string `json:"item_add_results"`
+ PayrollIncomeResults string `json:"payroll_income_results"`
+}
+
+type CreditSessionsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserToken string `json:"user_token"`
+}
+
+type CreditSessionsGetResponse struct {
+ RequestId string `json:"request_id"`
+ Sessions string `json:"sessions"`
+}
+
+type CreditW2 struct {
+ AllocatedTips string `json:"allocated_tips"`
+ Box12 string `json:"box_12"`
+ Box9 string `json:"box_9"`
+ DependentCareBenefits string `json:"dependent_care_benefits"`
+ DocumentId string `json:"document_id"`
+ DocumentMetadata string `json:"document_metadata"`
+ Employee string `json:"employee"`
+ Employer string `json:"employer"`
+ EmployerIdNumber string `json:"employer_id_number"`
+ FederalIncomeTaxWithheld string `json:"federal_income_tax_withheld"`
+ MedicareTaxWithheld string `json:"medicare_tax_withheld"`
+ MedicareWagesAndTips string `json:"medicare_wages_and_tips"`
+ NonqualifiedPlans string `json:"nonqualified_plans"`
+ Other string `json:"other"`
+ RetirementPlan string `json:"retirement_plan"`
+ SocialSecurityTaxWithheld string `json:"social_security_tax_withheld"`
+ SocialSecurityTips string `json:"social_security_tips"`
+ SocialSecurityWages string `json:"social_security_wages"`
+ StateAndLocalWages string `json:"state_and_local_wages"`
+ StatutoryEmployee string `json:"statutory_employee"`
+ TaxYear string `json:"tax_year"`
+ ThirdPartySickPay string `json:"third_party_sick_pay"`
+ WagesTipsOtherComp string `json:"wages_tips_other_comp"`
+}
+
+type CustomSandboxTransaction struct {
+ Amount float64 `json:"amount"`
+ DatePosted string `json:"date_posted"`
+ DateTransacted string `json:"date_transacted"`
+ Description string `json:"description"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type CustomerInitiatedReturnRisk struct {
+ RiskTier int `json:"risk_tier"`
+ Score int `json:"score"`
+}
+
+type DashboardUser struct {
+ CreatedAt string `json:"created_at"`
+ EmailAddress string `json:"email_address"`
+ Id string `json:"id"`
+ Status string `json:"status"`
+}
+
+type DashboardUserGetRequest struct {
+ ClientId string `json:"client_id"`
+ DashboardUserId string `json:"dashboard_user_id"`
+ Secret string `json:"secret"`
+}
+
+type DashboardUserGetResponse struct {
+ CreatedAt string `json:"created_at"`
+ EmailAddress string `json:"email_address"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type DashboardUserListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type DashboardUserListResponse struct {
+ DashboardUsers string `json:"dashboard_users"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type DateRange struct {
+ Beginning string `json:"beginning"`
+ Ending string `json:"ending"`
+}
+
+type Deductions struct {
+ Breakdown string `json:"breakdown"`
+ Subtotals string `json:"subtotals"`
+ Total string `json:"total"`
+ Totals string `json:"totals"`
+}
+
+type DeductionsBreakdown struct {
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type DeductionsTotal struct {
+ CurrentAmount float64 `json:"current_amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type DefaultUpdateWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewTransactions float64 `json:"new_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type DepositoryAccount struct {
+ CashManagement string `json:"cash_management"`
+ Cd string `json:"cd"`
+ Checking string `json:"checking"`
+ Ebt string `json:"ebt"`
+ Hsa string `json:"hsa"`
+ MoneyMarket string `json:"money_market"`
+ Paypal string `json:"paypal"`
+ Prepaid string `json:"prepaid"`
+ Savings string `json:"savings"`
+}
+
+type DepositoryFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type DetailedOriginator struct {
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ OutstandingRequirements string `json:"outstanding_requirements"`
+ TransferDiligenceStatus string `json:"transfer_diligence_status"`
+}
+
+type DetectedAccount struct {
+ AccountSubtype string `json:"account_subtype"`
+ AccountType string `json:"account_type"`
+ NewestTransactionAmount float64 `json:"newest_transaction_amount"`
+ NewestTransactionDate string `json:"newest_transaction_date"`
+ OldestTransactionDate string `json:"oldest_transaction_date"`
+ TotalInflows float64 `json:"total_inflows"`
+ TotalOutflows float64 `json:"total_outflows"`
+ TransactionCount int `json:"transaction_count"`
+}
+
+type DeviceId struct {
+ Id string `json:"id"`
+ Type int `json:"type"`
+}
+
+type DistributionBreakdown struct {
+ AccountName string `json:"account_name"`
+ BankName string `json:"bank_name"`
+ CurrentAmount float64 `json:"current_amount"`
+ CurrentPay string `json:"current_pay"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Mask string `json:"mask"`
+ Type string `json:"type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type DocumentAnalysis struct {
+ AamvaVerification string `json:"aamva_verification"`
+ Authenticity string `json:"authenticity"`
+ ExtractedData string `json:"extracted_data"`
+ FraudAnalysisDetails string `json:"fraud_analysis_details"`
+ HumanReview string `json:"human_review"`
+ ImageQuality string `json:"image_quality"`
+ ImageQualityDetails string `json:"image_quality_details"`
+}
+
+type DocumentMetadata struct {
+ DocId string `json:"doc_id"`
+ DocType string `json:"doc_type"`
+ Name string `json:"name"`
+ Status string `json:"status"`
+}
+
+type DocumentRiskSignal struct {
+ ActualValue string `json:"actual_value"`
+ ExpectedValue string `json:"expected_value"`
+ Field string `json:"field"`
+ HasFraudRisk bool `json:"has_fraud_risk"`
+ InstitutionMetadata string `json:"institution_metadata"`
+ PageNumber int `json:"page_number"`
+ SignalDescription string `json:"signal_description"`
+ Type string `json:"type"`
+}
+
+type DocumentRiskSignalInstitutionMetadata struct {
+ ItemId string `json:"item_id"`
+}
+
+type DocumentRiskSignalsObject struct {
+ AccountId string `json:"account_id"`
+ MultiDocumentRiskSignals string `json:"multi_document_risk_signals"`
+ SingleDocumentRiskSignals string `json:"single_document_risk_signals"`
+}
+
+type DocumentRiskSummary struct {
+ RiskScore float64 `json:"risk_score"`
+}
+
+type DocumentaryVerification struct {
+ Documents string `json:"documents"`
+ Status string `json:"status"`
+}
+
+type DocumentaryVerificationDocument struct {
+ Analysis string `json:"analysis"`
+ Attempt int `json:"attempt"`
+ ExtractedData string `json:"extracted_data"`
+ Images string `json:"images"`
+ RedactedAt string `json:"redacted_at"`
+ Status string `json:"status"`
+}
+
+type Earnings struct {
+ Breakdown string `json:"breakdown"`
+ Subtotals string `json:"subtotals"`
+ Total string `json:"total"`
+ Totals string `json:"totals"`
+}
+
+type EarningsBreakdown struct {
+ CanonicalDescription string `json:"canonical_description"`
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ Hours float64 `json:"hours"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Rate float64 `json:"rate"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type EarningsTotal struct {
+ CurrentAmount float64 `json:"current_amount"`
+ CurrentPay string `json:"current_pay"`
+ Hours float64 `json:"hours"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+ YtdPay string `json:"ytd_pay"`
+}
+
+type Email struct {
+ Data string `json:"data"`
+ Primary bool `json:"primary"`
+ Type string `json:"type"`
+}
+
+type EmailAddressMatchScore struct {
+ Score int `json:"score"`
+}
+
+type Employee struct {
+ Address string `json:"address"`
+ MaritalStatus string `json:"marital_status"`
+ Name string `json:"name"`
+ TaxpayerId string `json:"taxpayer_id"`
+}
+
+type EmployeeIncomeSummaryFieldString struct {
+ Value string `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type Employer struct {
+ Address string `json:"address"`
+ ConfidenceScore float64 `json:"confidence_score"`
+ EmployerId string `json:"employer_id"`
+ Name string `json:"name"`
+}
+
+type EmployerIncomeSummaryFieldString struct {
+ Value string `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type EmployerVerification struct {
+ Name string `json:"name"`
+}
+
+type EmployersSearchRequest struct {
+ ClientId string `json:"client_id"`
+ Products string `json:"products"`
+ Query string `json:"query"`
+ Secret string `json:"secret"`
+}
+
+type EmployersSearchResponse struct {
+ Employers string `json:"employers"`
+ RequestId string `json:"request_id"`
+}
+
+type EmploymentDetails struct {
+ AnnualSalary string `json:"annual_salary"`
+ HireDate string `json:"hire_date"`
+}
+
+type EmploymentVerification struct {
+ Employer string `json:"employer"`
+ EndDate string `json:"end_date"`
+ PlatformIds string `json:"platform_ids"`
+ StartDate string `json:"start_date"`
+ Status string `json:"status"`
+ Title string `json:"title"`
+}
+
+type EmploymentVerificationGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type EmploymentVerificationGetResponse struct {
+ Employments string `json:"employments"`
+ RequestId string `json:"request_id"`
+}
+
+type Enhancements struct {
+ Category string `json:"category"`
+ CategoryId string `json:"category_id"`
+ CheckNumber string `json:"check_number"`
+ Counterparties string `json:"counterparties"`
+ Location string `json:"location"`
+ LogoUrl string `json:"logo_url"`
+ MerchantName string `json:"merchant_name"`
+ PaymentChannel string `json:"payment_channel"`
+ PersonalFinanceCategory string `json:"personal_finance_category"`
+ PersonalFinanceCategoryIconUrl string `json:"personal_finance_category_icon_url"`
+ Website string `json:"website"`
+}
+
+type Enrichments struct {
+ CheckNumber string `json:"check_number"`
+ Counterparties string `json:"counterparties"`
+ EntityId string `json:"entity_id"`
+ LegacyCategory string `json:"legacy_category"`
+ LegacyCategoryId string `json:"legacy_category_id"`
+ Location string `json:"location"`
+ LogoUrl string `json:"logo_url"`
+ MerchantName string `json:"merchant_name"`
+ PaymentChannel string `json:"payment_channel"`
+ PersonalFinanceCategory string `json:"personal_finance_category"`
+ PersonalFinanceCategoryIconUrl string `json:"personal_finance_category_icon_url"`
+ PhoneNumber string `json:"phone_number"`
+ Recurrence string `json:"recurrence"`
+ Website string `json:"website"`
+}
+
+type EntityDocument struct {
+ Number string `json:"number"`
+ Type string `json:"type"`
+}
+
+type EntityScreeningHitAnalysis struct {
+ Documents string `json:"documents"`
+ EmailAddresses string `json:"email_addresses"`
+ Locations string `json:"locations"`
+ Names string `json:"names"`
+ PhoneNumbers string `json:"phone_numbers"`
+ SearchTermsVersion int `json:"search_terms_version"`
+ Urls string `json:"urls"`
+}
+
+type EntityScreeningHitData struct {
+ Documents string `json:"documents"`
+ EmailAddresses string `json:"email_addresses"`
+ Locations string `json:"locations"`
+ Names string `json:"names"`
+ PhoneNumbers string `json:"phone_numbers"`
+ Urls string `json:"urls"`
+}
+
+type EntityScreeningHitDocumentsItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type EntityScreeningHitEmails struct {
+ EmailAddress string `json:"email_address"`
+}
+
+type EntityScreeningHitEmailsItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type EntityScreeningHitNames struct {
+ Full string `json:"full"`
+ IsPrimary bool `json:"is_primary"`
+ WeakAliasDetermination string `json:"weak_alias_determination"`
+}
+
+type EntityScreeningHitNamesItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type EntityScreeningHitPhoneNumbers struct {
+ PhoneNumber string `json:"phone_number"`
+ Type string `json:"type"`
+}
+
+type EntityScreeningHitUrls struct {
+ Url string `json:"url"`
+}
+
+type EntityScreeningHitUrlsItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type EntityScreeningHitsPhoneNumberItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type EntityScreeningStatusUpdatedWebhook struct {
+ EntityScreeningId string `json:"entity_screening_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type EntityWatchlistProgram struct {
+ AuditTrail string `json:"audit_trail"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ IsArchived bool `json:"is_archived"`
+ IsRescanningEnabled bool `json:"is_rescanning_enabled"`
+ ListsEnabled string `json:"lists_enabled"`
+ Name string `json:"name"`
+ NameSensitivity string `json:"name_sensitivity"`
+}
+
+type EntityWatchlistScreening struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type EntityWatchlistScreeningHit struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+ FirstActive string `json:"first_active"`
+ HistoricalSince string `json:"historical_since"`
+ Id string `json:"id"`
+ InactiveSince string `json:"inactive_since"`
+ ListCode string `json:"list_code"`
+ PlaidUid string `json:"plaid_uid"`
+ ReviewStatus string `json:"review_status"`
+ SourceUid string `json:"source_uid"`
+}
+
+type EntityWatchlistScreeningReview struct {
+ AuditTrail string `json:"audit_trail"`
+ Comment string `json:"comment"`
+ ConfirmedHits string `json:"confirmed_hits"`
+ DismissedHits string `json:"dismissed_hits"`
+ Id string `json:"id"`
+}
+
+type EntityWatchlistScreeningSearchTerms struct {
+ Country string `json:"country"`
+ DocumentNumber string `json:"document_number"`
+ EmailAddress string `json:"email_address"`
+ EntityWatchlistProgramId string `json:"entity_watchlist_program_id"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+ Url string `json:"url"`
+ Version int `json:"version"`
+}
+
+type EntityWatchlistSearchTerms struct {
+ Country string `json:"country"`
+ DocumentNumber string `json:"document_number"`
+ EmailAddress string `json:"email_address"`
+ EntityWatchlistProgramId string `json:"entity_watchlist_program_id"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+ Url string `json:"url"`
+}
+
+type EwaScore struct {
+ HighestAmount float64 `json:"highest_amount"`
+ LowestAmount float64 `json:"lowest_amount"`
+ Score int `json:"score"`
+}
+
+type ExpenditureInsights struct {
+ CashFlow string `json:"cash_flow"`
+ EssentialExpenditure string `json:"essential_expenditure"`
+ NonEssentialExpenditure string `json:"non_essential_expenditure"`
+ Other string `json:"other"`
+ OutlierTransactions string `json:"outlier_transactions"`
+ TotalExpenditure string `json:"total_expenditure"`
+ TransfersOut string `json:"transfers_out"`
+}
+
+type ExpenditureSummary struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyAverage string `json:"monthly_average"`
+ PercentageOfIncome float64 `json:"percentage_of_income"`
+ TopCategories string `json:"top_categories"`
+ TransactionsCount int `json:"transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type ExtendedRecipientMetadata struct {
+ Category string `json:"category"`
+ ClientName string `json:"client_name"`
+ ConnectionCount int `json:"connection_count"`
+ JoinedDate string `json:"joined_date"`
+ LogoUri string `json:"logo_uri"`
+ RecipientId string `json:"recipient_id"`
+ ThirdPartyLegalName string `json:"third_party_legal_name"`
+}
+
+type ExternalPaymentInitiationConsentOptions struct {
+ Bacs string `json:"bacs"`
+ Iban string `json:"iban"`
+ RequestRefundDetails bool `json:"request_refund_details"`
+}
+
+type ExternalPaymentOptions struct {
+ Bacs string `json:"bacs"`
+ Iban string `json:"iban"`
+ RequestRefundDetails bool `json:"request_refund_details"`
+ Scheme string `json:"scheme"`
+}
+
+type ExternalPaymentRefundDetails struct {
+ Bacs string `json:"bacs"`
+ Iban string `json:"iban"`
+ Name string `json:"name"`
+}
+
+type ExternalPaymentScheduleBase struct {
+ AdjustedStartDate string `json:"adjusted_start_date"`
+ EndDate string `json:"end_date"`
+ Interval string `json:"interval"`
+ IntervalExecutionDay int `json:"interval_execution_day"`
+ StartDate string `json:"start_date"`
+}
+
+type ExternalPaymentScheduleGet struct {
+ AdjustedStartDate string `json:"adjusted_start_date"`
+ EndDate string `json:"end_date"`
+ Interval string `json:"interval"`
+ IntervalExecutionDay int `json:"interval_execution_day"`
+ StartDate string `json:"start_date"`
+}
+
+type ExternalPaymentScheduleRequest struct {
+ AdjustedStartDate string `json:"adjusted_start_date"`
+ EndDate string `json:"end_date"`
+ Interval string `json:"interval"`
+ IntervalExecutionDay int `json:"interval_execution_day"`
+ StartDate string `json:"start_date"`
+}
+
+type FDXFiAttribute struct {
+ Name string `json:"name"`
+ Value string `json:"value"`
+}
+
+type FDXHateoasLink struct {
+ Action string `json:"action"`
+ Href string `json:"href"`
+ Rel string `json:"rel"`
+ Types string `json:"types"`
+}
+
+type FDXInitiatorFiAttribute struct {
+ Name string `json:"name"`
+ Value string `json:"value"`
+}
+
+type FDXLifecycleEvent struct {
+ Initiator string `json:"initiator"`
+ OtherReason string `json:"otherReason"`
+ Reason string `json:"reason"`
+ Status string `json:"status"`
+ UpdatedTime string `json:"updatedTime"`
+}
+
+type FDXNotification struct {
+ Category string `json:"category"`
+ NotificationId string `json:"notificationId"`
+ NotificationPayload string `json:"notificationPayload"`
+ Priority string `json:"priority"`
+ Publisher string `json:"publisher"`
+ SentOn string `json:"sentOn"`
+ Severity string `json:"severity"`
+ Subscriber string `json:"subscriber"`
+ Type string `json:"type"`
+ Url string `json:"url"`
+}
+
+type FDXNotificationPayload struct {
+ Event string `json:"event"`
+ Id string `json:"id"`
+ IdType string `json:"idType"`
+}
+
+type FDXParty struct {
+ HomeUri string `json:"homeUri"`
+ LogoUri string `json:"logoUri"`
+ Name string `json:"name"`
+ RegisteredEntityId string `json:"registeredEntityId"`
+ RegisteredEntityName string `json:"registeredEntityName"`
+ Registry string `json:"registry"`
+ Type string `json:"type"`
+}
+
+type FDXRecipientMetadata struct {
+ ClientName string `json:"client_name"`
+ LogoUri string `json:"logo_uri"`
+ RecipientId string `json:"recipient_id"`
+ ThirdPartyLegalName string `json:"third_party_legal_name"`
+}
+
+type FallbackAuthMicrodepositAutoVerifiedWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type FallbackAuthMicrodepositVerificationExpiredWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type FinancialInstitutionInsights struct {
+ DetectedAccounts string `json:"detected_accounts"`
+ EntityId string `json:"entity_id"`
+ Name string `json:"name"`
+ Website string `json:"website"`
+}
+
+type FixedIncome struct {
+ FaceValue float64 `json:"face_value"`
+ IssueDate string `json:"issue_date"`
+ MaturityDate string `json:"maturity_date"`
+ YieldRate string `json:"yield_rate"`
+}
+
+type ForecastedMonthlyIncome struct {
+ BaselineAmount float64 `json:"baseline_amount"`
+ CurrentAmount float64 `json:"current_amount"`
+}
+
+type ForwardedJSONResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type FraudAmount struct {
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Value float64 `json:"value"`
+}
+
+type FraudAnalysisDetails struct {
+ DetailCheck string `json:"detail_check"`
+ ImageCompositionCheck string `json:"image_composition_check"`
+ IntegrityCheck string `json:"integrity_check"`
+ IssueDateCheck string `json:"issue_date_check"`
+ PortraitDetailsCheck string `json:"portrait_details_check"`
+ PortraitPresenceCheck string `json:"portrait_presence_check"`
+ TypeSupported string `json:"type_supported"`
+}
+
+type FraudAttributes struct {
+}
+
+type GamblingIndicators struct {
+ Amount float64 `json:"amount"`
+ DaysSinceLastOccurrence int `json:"days_since_last_occurrence"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyAverage string `json:"monthly_average"`
+ MonthlySummaries string `json:"monthly_summaries"`
+ PercentageOfIncome float64 `json:"percentage_of_income"`
+ TopMerchants string `json:"top_merchants"`
+ TransactionsCount int `json:"transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type GenericScreeningHitLocationItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type GetRecipientResponse struct {
+ ClientName string `json:"client_name"`
+ LogoUri string `json:"logo_uri"`
+ RecipientId string `json:"recipient_id"`
+ ThirdPartyLegalName string `json:"third_party_legal_name"`
+}
+
+type GetRecipientsResponse struct {
+ Recipients string `json:"recipients"`
+}
+
+type HealthIncident struct {
+ EndDate string `json:"end_date"`
+ IncidentUpdates string `json:"incident_updates"`
+ StartDate string `json:"start_date"`
+ Title string `json:"title"`
+}
+
+type HistoricalAnnualIncome struct {
+ BaselineAmount float64 `json:"baseline_amount"`
+ CurrentAmount float64 `json:"current_amount"`
+}
+
+type HistoricalBalance struct {
+ Current float64 `json:"current"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type HistoricalUpdateWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewTransactions float64 `json:"new_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type Holding struct {
+ AccountId string `json:"account_id"`
+ CostBasis float64 `json:"cost_basis"`
+ InstitutionPrice float64 `json:"institution_price"`
+ InstitutionPriceAsOf string `json:"institution_price_as_of"`
+ InstitutionPriceDatetime string `json:"institution_price_datetime"`
+ InstitutionValue float64 `json:"institution_value"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Quantity float64 `json:"quantity"`
+ SecurityId string `json:"security_id"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ VestedQuantity float64 `json:"vested_quantity"`
+ VestedValue float64 `json:"vested_value"`
+}
+
+type HoldingsDefaultUpdateWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewHoldings float64 `json:"new_holdings"`
+ UpdatedHoldings float64 `json:"updated_holdings"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type HoldingsOverride struct {
+ CostBasis float64 `json:"cost_basis"`
+ Currency string `json:"currency"`
+ InstitutionPrice float64 `json:"institution_price"`
+ InstitutionPriceAsOf string `json:"institution_price_as_of"`
+ Quantity float64 `json:"quantity"`
+ Security string `json:"security"`
+}
+
+type HostedMMDVerificationWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type HumanReview struct {
+ Status string `json:"status"`
+}
+
+type IDVProtectEvent struct {
+ EventId string `json:"event_id"`
+ FraudAttributes string `json:"fraud_attributes"`
+ Timestamp string `json:"timestamp"`
+ TrustIndex string `json:"trust_index"`
+}
+
+type IdentityDefaultUpdateWebhook struct {
+ AccountIdsWithUpdatedIdentity string `json:"account_ids_with_updated_identity"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IdentityDocumentMetadata struct {
+ IsAccountNumberMatch bool `json:"is_account_number_match"`
+ LastUpdated string `json:"last_updated"`
+ UploadedAt string `json:"uploaded_at"`
+}
+
+type IdentityDocumentUpload struct {
+ DocumentId string `json:"document_id"`
+ Metadata string `json:"metadata"`
+ RiskInsights string `json:"risk_insights"`
+}
+
+type IdentityDocumentUploadMetadata struct {
+ DocumentType string `json:"document_type"`
+ IsAccountNumberMatch bool `json:"is_account_number_match"`
+ LastUpdated string `json:"last_updated"`
+ PageCount int `json:"page_count"`
+ UploadedAt string `json:"uploaded_at"`
+}
+
+type IdentityDocumentUploadRiskInsights struct {
+ RiskSignals string `json:"risk_signals"`
+ RiskSummary string `json:"risk_summary"`
+}
+
+type IdentityDocumentUploadRiskSignal struct {
+ HasFraudRisk bool `json:"has_fraud_risk"`
+ PageNumber int `json:"page_number"`
+ SignalDescription string `json:"signal_description"`
+ Type string `json:"type"`
+}
+
+type IdentityDocumentUploadRiskSummary struct {
+ RiskScore int `json:"risk_score"`
+}
+
+type IdentityDocumentsUploadsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type IdentityDocumentsUploadsGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type IdentityDocumentsUploadsGetResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+}
+
+type IdentityGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type IdentityGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type IdentityGetResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+}
+
+type IdentityMatchRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type IdentityMatchRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type IdentityMatchResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+}
+
+type IdentityMatchUser struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type IdentityRefreshRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type IdentityRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type IdentityVerification struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientUserId string `json:"client_user_id"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ DocumentaryVerification string `json:"documentary_verification"`
+ Id string `json:"id"`
+ KycCheck string `json:"kyc_check"`
+ LatestScoredProtectEvent string `json:"latest_scored_protect_event"`
+ PreviousAttemptId string `json:"previous_attempt_id"`
+ RedactedAt string `json:"redacted_at"`
+ RiskCheck string `json:"risk_check"`
+ SelfieCheck string `json:"selfie_check"`
+ ShareableUrl string `json:"shareable_url"`
+ Status string `json:"status"`
+ Steps string `json:"steps"`
+ Template string `json:"template"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+ VerifySms string `json:"verify_sms"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type IdentityVerificationAutofillAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PoBox string `json:"po_box"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+ Type string `json:"type"`
+}
+
+type IdentityVerificationAutofillCreateRequest struct {
+ ClientId string `json:"client_id"`
+ IdentityVerificationId string `json:"identity_verification_id"`
+ Secret string `json:"secret"`
+}
+
+type IdentityVerificationAutofillCreateResponse struct {
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ User string `json:"user"`
+}
+
+type IdentityVerificationAutofillUserData struct {
+ Address string `json:"address"`
+ IdNumber string `json:"id_number"`
+ Name string `json:"name"`
+}
+
+type IdentityVerificationCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ GaveConsent bool `json:"gave_consent"`
+ IsIdempotent bool `json:"is_idempotent"`
+ IsShareable bool `json:"is_shareable"`
+ Secret string `json:"secret"`
+ TemplateId string `json:"template_id"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+}
+
+type IdentityVerificationCreateRequestUser struct {
+ Address string `json:"address"`
+ ClientUserId string `json:"client_user_id"`
+ DateOfBirth string `json:"date_of_birth"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type IdentityVerificationCreateResponse struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientUserId string `json:"client_user_id"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ DocumentaryVerification string `json:"documentary_verification"`
+ Id string `json:"id"`
+ KycCheck string `json:"kyc_check"`
+ LatestScoredProtectEvent string `json:"latest_scored_protect_event"`
+ PreviousAttemptId string `json:"previous_attempt_id"`
+ RedactedAt string `json:"redacted_at"`
+ RequestId string `json:"request_id"`
+ RiskCheck string `json:"risk_check"`
+ SelfieCheck string `json:"selfie_check"`
+ ShareableUrl string `json:"shareable_url"`
+ Status string `json:"status"`
+ Steps string `json:"steps"`
+ Template string `json:"template"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+ VerifySms string `json:"verify_sms"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type IdentityVerificationDocumentAddressResponse struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type IdentityVerificationDocumentNameResponse struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type IdentityVerificationGetRequest struct {
+ ClientId string `json:"client_id"`
+ IdentityVerificationId string `json:"identity_verification_id"`
+ Secret string `json:"secret"`
+}
+
+type IdentityVerificationGetResponse struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientUserId string `json:"client_user_id"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ DocumentaryVerification string `json:"documentary_verification"`
+ Id string `json:"id"`
+ KycCheck string `json:"kyc_check"`
+ LatestScoredProtectEvent string `json:"latest_scored_protect_event"`
+ PreviousAttemptId string `json:"previous_attempt_id"`
+ RedactedAt string `json:"redacted_at"`
+ RequestId string `json:"request_id"`
+ RiskCheck string `json:"risk_check"`
+ SelfieCheck string `json:"selfie_check"`
+ ShareableUrl string `json:"shareable_url"`
+ Status string `json:"status"`
+ Steps string `json:"steps"`
+ Template string `json:"template"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+ VerifySms string `json:"verify_sms"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type IdentityVerificationListRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+ TemplateId string `json:"template_id"`
+ UserId string `json:"user_id"`
+}
+
+type IdentityVerificationListResponse struct {
+ IdentityVerifications string `json:"identity_verifications"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type IdentityVerificationRequestUser struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type IdentityVerificationRequestUserName struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type IdentityVerificationResponseUserName struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type IdentityVerificationRetriedWebhook struct {
+ Environment string `json:"environment"`
+ IdentityVerificationId string `json:"identity_verification_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IdentityVerificationRetryRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ IsShareable bool `json:"is_shareable"`
+ Secret string `json:"secret"`
+ Steps string `json:"steps"`
+ Strategy string `json:"strategy"`
+ TemplateId string `json:"template_id"`
+ User string `json:"user"`
+}
+
+type IdentityVerificationRetryRequestStepsObject struct {
+ DocumentaryVerification bool `json:"documentary_verification"`
+ KycCheck bool `json:"kyc_check"`
+ SelfieCheck bool `json:"selfie_check"`
+ VerifySms bool `json:"verify_sms"`
+}
+
+type IdentityVerificationRetryResponse struct {
+ BeaconUserId string `json:"beacon_user_id"`
+ ClientUserId string `json:"client_user_id"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ DocumentaryVerification string `json:"documentary_verification"`
+ Id string `json:"id"`
+ KycCheck string `json:"kyc_check"`
+ LatestScoredProtectEvent string `json:"latest_scored_protect_event"`
+ PreviousAttemptId string `json:"previous_attempt_id"`
+ RedactedAt string `json:"redacted_at"`
+ RequestId string `json:"request_id"`
+ RiskCheck string `json:"risk_check"`
+ SelfieCheck string `json:"selfie_check"`
+ ShareableUrl string `json:"shareable_url"`
+ Status string `json:"status"`
+ Steps string `json:"steps"`
+ Template string `json:"template"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+ VerifySms string `json:"verify_sms"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type IdentityVerificationStatusUpdatedWebhook struct {
+ Environment string `json:"environment"`
+ IdentityVerificationId string `json:"identity_verification_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IdentityVerificationStepSummary struct {
+ AcceptTos string `json:"accept_tos"`
+ DocumentaryVerification string `json:"documentary_verification"`
+ KycCheck string `json:"kyc_check"`
+ RiskCheck string `json:"risk_check"`
+ SelfieCheck string `json:"selfie_check"`
+ VerifySms string `json:"verify_sms"`
+ WatchlistScreening string `json:"watchlist_screening"`
+}
+
+type IdentityVerificationStepUpdatedWebhook struct {
+ Environment string `json:"environment"`
+ IdentityVerificationId string `json:"identity_verification_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IdentityVerificationTemplateReference struct {
+ Id string `json:"id"`
+ Version int `json:"version"`
+}
+
+type IdentityVerificationUserAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type IdentityVerificationUserData struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ IpAddress string `json:"ip_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type ImageQualityDetails struct {
+ BlurCheck string `json:"blur_check"`
+ DimensionsCheck string `json:"dimensions_check"`
+ GlareCheck string `json:"glare_check"`
+}
+
+type IncidentUpdate struct {
+ Description string `json:"description"`
+ Status string `json:"status"`
+ UpdatedDate string `json:"updated_date"`
+}
+
+type IncomeBreakdown struct {
+ Hours float64 `json:"hours"`
+ Rate float64 `json:"rate"`
+ Total float64 `json:"total"`
+ Type string `json:"type"`
+}
+
+type IncomeInsights struct {
+ IncomeExcludingTransfers string `json:"income_excluding_transfers"`
+ TotalIncome string `json:"total_income"`
+ TransfersIn string `json:"transfers_in"`
+}
+
+type IncomeOverride struct {
+ Paystubs string `json:"paystubs"`
+ W2s string `json:"w2s"`
+}
+
+type IncomeSourcesCounts struct {
+ BaselineCount float64 `json:"baseline_count"`
+ CurrentCount float64 `json:"current_count"`
+}
+
+type IncomeSummary struct {
+ EmployeeName string `json:"employee_name"`
+ EmployerName string `json:"employer_name"`
+ PayFrequency string `json:"pay_frequency"`
+ ProjectedWage string `json:"projected_wage"`
+ VerifiedTransaction string `json:"verified_transaction"`
+ YtdGrossIncome string `json:"ytd_gross_income"`
+ YtdNetIncome string `json:"ytd_net_income"`
+}
+
+type IncomeSummaryFieldNumber struct {
+ Value float64 `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type IncomeSummaryFieldString struct {
+ Value string `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type IncomeVerificationCreateRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ PrecheckId string `json:"precheck_id"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type IncomeVerificationCreateRequestOptions struct {
+ AccessTokens string `json:"access_tokens"`
+}
+
+type IncomeVerificationCreateResponse struct {
+ IncomeVerificationId string `json:"income_verification_id"`
+ RequestId string `json:"request_id"`
+}
+
+type IncomeVerificationDocumentsDownloadRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ DocumentId string `json:"document_id"`
+ IncomeVerificationId string `json:"income_verification_id"`
+ Secret string `json:"secret"`
+}
+
+type IncomeVerificationPaystubsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ IncomeVerificationId string `json:"income_verification_id"`
+ Secret string `json:"secret"`
+}
+
+type IncomeVerificationPaystubsGetResponse struct {
+ DocumentMetadata string `json:"document_metadata"`
+ Error string `json:"error"`
+ Paystubs string `json:"paystubs"`
+ RequestId string `json:"request_id"`
+}
+
+type IncomeVerificationPrecheckEmployer struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+ TaxId string `json:"tax_id"`
+ Url string `json:"url"`
+}
+
+type IncomeVerificationPrecheckEmployerAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type IncomeVerificationPrecheckEmployerAddressData struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type IncomeVerificationPrecheckMilitaryInfo struct {
+ Branch string `json:"branch"`
+ IsActiveDuty bool `json:"is_active_duty"`
+}
+
+type IncomeVerificationPrecheckPayrollInstitution struct {
+ Name string `json:"name"`
+}
+
+type IncomeVerificationPrecheckRequest struct {
+ ClientId string `json:"client_id"`
+ Employer string `json:"employer"`
+ PayrollInstitution string `json:"payroll_institution"`
+ Secret string `json:"secret"`
+ TransactionsAccessToken string `json:"transactions_access_token"`
+ TransactionsAccessTokens string `json:"transactions_access_tokens"`
+ UsMilitaryInfo string `json:"us_military_info"`
+ User string `json:"user"`
+}
+
+type IncomeVerificationPrecheckResponse struct {
+ Confidence string `json:"confidence"`
+ PrecheckId string `json:"precheck_id"`
+ RequestId string `json:"request_id"`
+}
+
+type IncomeVerificationPrecheckUser struct {
+ EmailAddress string `json:"email_address"`
+ FirstName string `json:"first_name"`
+ HomeAddress string `json:"home_address"`
+ LastName string `json:"last_name"`
+}
+
+type IncomeVerificationRefreshReconnectNeededWebhook struct {
+ Environment string `json:"environment"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IncomeVerificationRiskSignalsStatusWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ RiskSignalsStatus string `json:"risk_signals_status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IncomeVerificationStatusWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ VerificationStatus string `json:"verification_status"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IncomeVerificationTaxformsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ IncomeVerificationId string `json:"income_verification_id"`
+ Secret string `json:"secret"`
+}
+
+type IncomeVerificationTaxformsGetResponse struct {
+ DocumentMetadata string `json:"document_metadata"`
+ Error string `json:"error"`
+ RequestId string `json:"request_id"`
+ Taxforms string `json:"taxforms"`
+}
+
+type IncomeVerificationWebhookStatus struct {
+ Id string `json:"id"`
+}
+
+type IndividualName struct {
+ FirstName string `json:"FirstName"`
+ LastName string `json:"LastName"`
+}
+
+type IndividualScreeningHitNames struct {
+ Full string `json:"full"`
+ IsPrimary bool `json:"is_primary"`
+ WeakAliasDetermination string `json:"weak_alias_determination"`
+}
+
+type IndividualWatchlistProgram struct {
+ AuditTrail string `json:"audit_trail"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ IsArchived bool `json:"is_archived"`
+ IsRescanningEnabled bool `json:"is_rescanning_enabled"`
+ ListsEnabled string `json:"lists_enabled"`
+ Name string `json:"name"`
+ NameSensitivity string `json:"name_sensitivity"`
+}
+
+type InflowModel struct {
+ IncomeAmount float64 `json:"income_amount"`
+ PaymentDayOfMonth float64 `json:"payment_day_of_month"`
+ StatementDayOfMonth string `json:"statement_day_of_month"`
+ TransactionName string `json:"transaction_name"`
+ Type string `json:"type"`
+}
+
+type InitialUpdateWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewTransactions float64 `json:"new_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type Institution struct {
+ AuthMetadata string `json:"auth_metadata"`
+ CountryCodes string `json:"country_codes"`
+ DtcNumbers string `json:"dtc_numbers"`
+ InstitutionId string `json:"institution_id"`
+ Logo string `json:"logo"`
+ Name string `json:"name"`
+ Oauth bool `json:"oauth"`
+ PaymentInitiationMetadata string `json:"payment_initiation_metadata"`
+ PrimaryColor string `json:"primary_color"`
+ Products string `json:"products"`
+ RoutingNumbers string `json:"routing_numbers"`
+ Status string `json:"status"`
+ Url string `json:"url"`
+}
+
+type InstitutionStatus struct {
+ Auth string `json:"auth"`
+ HealthIncidents string `json:"health_incidents"`
+ Identity string `json:"identity"`
+ Investments string `json:"investments"`
+ InvestmentsUpdates string `json:"investments_updates"`
+ ItemLogins string `json:"item_logins"`
+ Liabilities string `json:"liabilities"`
+ LiabilitiesUpdates string `json:"liabilities_updates"`
+ TransactionsUpdates string `json:"transactions_updates"`
+}
+
+type InstitutionStatusAlertWebhook struct {
+ Environment string `json:"environment"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionOverallSuccessRate float64 `json:"institution_overall_success_rate"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type InstitutionSupportedNetworks struct {
+ Rfp string `json:"rfp"`
+ Rtp string `json:"rtp"`
+}
+
+type InstitutionsGetByIdRequest struct {
+ ClientId string `json:"client_id"`
+ CountryCodes string `json:"country_codes"`
+ InstitutionId string `json:"institution_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type InstitutionsGetByIdRequestOptions struct {
+ IncludeAuthMetadata bool `json:"include_auth_metadata"`
+ IncludeOptionalMetadata bool `json:"include_optional_metadata"`
+ IncludePaymentInitiationMetadata bool `json:"include_payment_initiation_metadata"`
+ IncludeStatus bool `json:"include_status"`
+}
+
+type InstitutionsGetByIdResponse struct {
+ Institution string `json:"institution"`
+ RequestId string `json:"request_id"`
+}
+
+type InstitutionsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ CountryCodes string `json:"country_codes"`
+ Offset int `json:"offset"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type InstitutionsGetRequestOptions struct {
+ IncludeAuthMetadata bool `json:"include_auth_metadata"`
+ IncludeOptionalMetadata bool `json:"include_optional_metadata"`
+ IncludePaymentInitiationMetadata bool `json:"include_payment_initiation_metadata"`
+ Oauth bool `json:"oauth"`
+ Products string `json:"products"`
+ RoutingNumbers string `json:"routing_numbers"`
+}
+
+type InstitutionsGetResponse struct {
+ Institutions string `json:"institutions"`
+ RequestId string `json:"request_id"`
+ Total int `json:"total"`
+}
+
+type InstitutionsSearchAccountFilter struct {
+ Credit string `json:"credit"`
+ Depository string `json:"depository"`
+ Investment string `json:"investment"`
+ Loan string `json:"loan"`
+}
+
+type InstitutionsSearchPaymentInitiationOptions struct {
+ ConsentId string `json:"consent_id"`
+ PaymentId string `json:"payment_id"`
+}
+
+type InstitutionsSearchRequest struct {
+ ClientId string `json:"client_id"`
+ CountryCodes string `json:"country_codes"`
+ Options string `json:"options"`
+ Products string `json:"products"`
+ Query string `json:"query"`
+ Secret string `json:"secret"`
+}
+
+type InstitutionsSearchRequestOptions struct {
+ IncludeAuthMetadata bool `json:"include_auth_metadata"`
+ IncludeOptionalMetadata bool `json:"include_optional_metadata"`
+ IncludePaymentInitiationMetadata bool `json:"include_payment_initiation_metadata"`
+ Oauth bool `json:"oauth"`
+ PaymentInitiation string `json:"payment_initiation"`
+}
+
+type InstitutionsSearchResponse struct {
+ Institutions string `json:"institutions"`
+ RequestId string `json:"request_id"`
+}
+
+type InvestmentAccountSubtypeStandalone struct {
+ T401a string `json:"T401a"`
+ T401k string `json:"T401k"`
+ T403B string `json:"T403B"`
+ T457b string `json:"T457b"`
+ T529 string `json:"T529"`
+ Brokerage string `json:"brokerage"`
+ CashIsa string `json:"cash_isa"`
+ CryptoExchange string `json:"crypto_exchange"`
+ EducationSavingsAccount string `json:"education_savings_account"`
+ FixedAnnuity string `json:"fixed_annuity"`
+ Gic string `json:"gic"`
+ HealthReimbursementArrangement string `json:"health_reimbursement_arrangement"`
+ Hsa string `json:"hsa"`
+ Ira string `json:"ira"`
+ Isa string `json:"isa"`
+ Keogh string `json:"keogh"`
+ Lif string `json:"lif"`
+ LifeInsurance string `json:"life_insurance"`
+ Lira string `json:"lira"`
+ Lrif string `json:"lrif"`
+ Lrsp string `json:"lrsp"`
+ MutualFund string `json:"mutual_fund"`
+ NonCustodialWallet string `json:"non_custodial_wallet"`
+ NonTaxableBrokerageAccount string `json:"non_taxable_brokerage_account"`
+ Other string `json:"other"`
+ OtherAnnuity string `json:"other_annuity"`
+ OtherInsurance string `json:"other_insurance"`
+ Pension string `json:"pension"`
+ Prif string `json:"prif"`
+ ProfitSharingPlan string `json:"profit_sharing_plan"`
+ Qshr string `json:"qshr"`
+ Rdsp string `json:"rdsp"`
+ Resp string `json:"resp"`
+ Retirement string `json:"retirement"`
+ Rlif string `json:"rlif"`
+ Roth string `json:"roth"`
+ Roth401k string `json:"roth_401k"`
+ Rrif string `json:"rrif"`
+ Rrsp string `json:"rrsp"`
+ Sarsep string `json:"sarsep"`
+ SepIra string `json:"sep_ira"`
+ SimpleIra string `json:"simple_ira"`
+ Sipp string `json:"sipp"`
+ StockPlan string `json:"stock_plan"`
+ Tfsa string `json:"tfsa"`
+ ThriftSavingsPlan string `json:"thrift_savings_plan"`
+ Trust string `json:"trust"`
+ Ugma string `json:"ugma"`
+ Utma string `json:"utma"`
+ VariableAnnuity string `json:"variable_annuity"`
+}
+
+type InvestmentFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type InvestmentHoldingsGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type InvestmentTransaction struct {
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ CancelTransactionId string `json:"cancel_transaction_id"`
+ Date string `json:"date"`
+ Fees float64 `json:"fees"`
+ InvestmentTransactionId string `json:"investment_transaction_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Name string `json:"name"`
+ Price float64 `json:"price"`
+ Quantity float64 `json:"quantity"`
+ SecurityId string `json:"security_id"`
+ Subtype string `json:"subtype"`
+ TransactionDatetime string `json:"transaction_datetime"`
+ Type string `json:"type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type InvestmentsAuth401kContributionDetails struct {
+ ContributionAmount12m float64 `json:"contribution_amount_12m"`
+ ContributionAmount1m float64 `json:"contribution_amount_1m"`
+ ContributionAmount6m float64 `json:"contribution_amount_6m"`
+ ContributionCount12m int `json:"contribution_count_12m"`
+ ContributionCount1m int `json:"contribution_count_1m"`
+ ContributionCount6m int `json:"contribution_count_6m"`
+ LastContributionTransactions string `json:"last_contribution_transactions"`
+}
+
+type InvestmentsAuth401kFeeDetails struct {
+ AccountFeeAmount12m float64 `json:"account_fee_amount_12m"`
+ AccountFeeCount12m int `json:"account_fee_count_12m"`
+}
+
+type InvestmentsAuthAccountDetails401k struct {
+ AccountId string `json:"account_id"`
+ ContributionDetails string `json:"contribution_details"`
+ FeeDetails string `json:"fee_details"`
+}
+
+type InvestmentsAuthDataSources struct {
+ Holdings string `json:"holdings"`
+ Numbers string `json:"numbers"`
+ Owners string `json:"owners"`
+}
+
+type InvestmentsAuthGetNumbers struct {
+ Acats string `json:"acats"`
+ Aton string `json:"aton"`
+ Retirement401k string `json:"retirement_401k"`
+}
+
+type InvestmentsAuthGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type InvestmentsAuthGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type InvestmentsAuthGetResponse struct {
+ AccountDetails401k string `json:"account_details_401k"`
+ Accounts string `json:"accounts"`
+ DataSources string `json:"data_sources"`
+ Holdings string `json:"holdings"`
+ Item string `json:"item"`
+ Numbers string `json:"numbers"`
+ Owners string `json:"owners"`
+ RequestId string `json:"request_id"`
+ Securities string `json:"securities"`
+}
+
+type InvestmentsAuthOwner struct {
+ AccountId string `json:"account_id"`
+ Names string `json:"names"`
+}
+
+type InvestmentsDefaultUpdateWebhook struct {
+ CancelledInvestmentsTransactions float64 `json:"cancelled_investments_transactions"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewInvestmentsTransactions float64 `json:"new_investments_transactions"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type InvestmentsHistoricalUpdateWebhook struct {
+ CancelledInvestmentsTransactions float64 `json:"cancelled_investments_transactions"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewInvestmentsTransactions float64 `json:"new_investments_transactions"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type InvestmentsHoldingsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type InvestmentsHoldingsGetResponse struct {
+ Accounts string `json:"accounts"`
+ Holdings string `json:"holdings"`
+ IsInvestmentsFallbackItem bool `json:"is_investments_fallback_item"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+ Securities string `json:"securities"`
+}
+
+type InvestmentsRefreshRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type InvestmentsRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type InvestmentsTransactionsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ EndDate string `json:"end_date"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type InvestmentsTransactionsGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+ AsyncUpdate bool `json:"async_update"`
+ Count int `json:"count"`
+ Offset int `json:"offset"`
+}
+
+type InvestmentsTransactionsGetResponse struct {
+ Accounts string `json:"accounts"`
+ InvestmentTransactions string `json:"investment_transactions"`
+ IsInvestmentsFallbackItem bool `json:"is_investments_fallback_item"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+ Securities string `json:"securities"`
+ TotalInvestmentTransactions int `json:"total_investment_transactions"`
+}
+
+type Investments_TransactionsOverride struct {
+ Currency string `json:"currency"`
+ Date string `json:"date"`
+ Fees float64 `json:"fees"`
+ Name string `json:"name"`
+ Price float64 `json:"price"`
+ Quantity float64 `json:"quantity"`
+ Security string `json:"security"`
+ Type string `json:"type"`
+}
+
+type Issue struct {
+ CreatedAt string `json:"created_at"`
+ DetailedDescription string `json:"detailed_description"`
+ InstitutionIds string `json:"institution_ids"`
+ InstitutionNames string `json:"institution_names"`
+ IssueId string `json:"issue_id"`
+ Status string `json:"status"`
+ Summary string `json:"summary"`
+}
+
+type IssueResolvedWebhook struct {
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ IssueDescription string `json:"issue_description"`
+ IssueId string `json:"issue_id"`
+ IssueResolvedAt string `json:"issue_resolved_at"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type IssuesGetRequest struct {
+ ClientId string `json:"client_id"`
+ IssueId string `json:"issue_id"`
+ Secret string `json:"secret"`
+}
+
+type IssuesGetResponse struct {
+ Issue string `json:"issue"`
+ RequestId string `json:"request_id"`
+}
+
+type IssuesSearchRequest struct {
+ ClientId string `json:"client_id"`
+ ItemId string `json:"item_id"`
+ LinkSessionId string `json:"link_session_id"`
+ LinkSessionRequestId string `json:"link_session_request_id"`
+ Secret string `json:"secret"`
+}
+
+type IssuesSearchResponse struct {
+ Issues string `json:"issues"`
+ RequestId string `json:"request_id"`
+}
+
+type IssuesSubscribeRequest struct {
+ ClientId string `json:"client_id"`
+ IssueId string `json:"issue_id"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type IssuesSubscribeResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type Item struct {
+ AuthMethod string `json:"auth_method"`
+ AvailableProducts string `json:"available_products"`
+ BilledProducts string `json:"billed_products"`
+ ConsentExpirationTime string `json:"consent_expiration_time"`
+ ConsentedProducts string `json:"consented_products"`
+ Error string `json:"error"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ Products string `json:"products"`
+ UpdateType string `json:"update_type"`
+ Webhook string `json:"webhook"`
+}
+
+type ItemAccessTokenInvalidateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ItemAccessTokenInvalidateResponse struct {
+ NewAccessToken string `json:"new_access_token"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemActivityListRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type ItemActivityListResponse struct {
+ Activities string `json:"activities"`
+ Cursor string `json:"cursor"`
+ LastDataAccessTimes string `json:"last_data_access_times"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemAddResultWebhook struct {
+ Environment string `json:"environment"`
+ LinkSessionId string `json:"link_session_id"`
+ LinkToken string `json:"link_token"`
+ PublicToken string `json:"public_token"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ItemApplicationListRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ItemApplicationListResponse struct {
+ Applications string `json:"applications"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemApplicationListUserAuth struct {
+ FiUsernameHash string `json:"fi_username_hash"`
+ UserId string `json:"user_id"`
+}
+
+type ItemApplicationScopesUpdateRequest struct {
+ AccessToken string `json:"access_token"`
+ ApplicationId string `json:"application_id"`
+ ClientId string `json:"client_id"`
+ Context string `json:"context"`
+ Scopes string `json:"scopes"`
+ Secret string `json:"secret"`
+ State string `json:"state"`
+}
+
+type ItemApplicationScopesUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ItemApplicationUnlinkRequest struct {
+ AccessToken string `json:"access_token"`
+ ApplicationId string `json:"application_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ItemApplicationUnlinkResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ItemErrorWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ItemGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ItemGetResponse struct {
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type ItemImportRequest struct {
+ ClientId string `json:"client_id"`
+ InstitutionId string `json:"institution_id"`
+ Options string `json:"options"`
+ Products string `json:"products"`
+ Secret string `json:"secret"`
+ UserAuth string `json:"user_auth"`
+}
+
+type ItemImportRequestOptions struct {
+ Webhook string `json:"webhook"`
+}
+
+type ItemImportRequestUserAuth struct {
+ AuthToken string `json:"auth_token"`
+ UserId string `json:"user_id"`
+}
+
+type ItemImportResponse struct {
+ AccessToken string `json:"access_token"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemLoginRepairedWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ItemProductReadyWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ItemPublicTokenCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ItemPublicTokenCreateResponse struct {
+ Expiration string `json:"expiration"`
+ PublicToken string `json:"public_token"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemPublicTokenExchangeRequest struct {
+ ClientId string `json:"client_id"`
+ PublicToken string `json:"public_token"`
+ Secret string `json:"secret"`
+}
+
+type ItemPublicTokenExchangeResponse struct {
+ AccessToken string `json:"access_token"`
+ ItemId string `json:"item_id"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemRemoveRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ ReasonCode string `json:"reason_code"`
+ ReasonNote string `json:"reason_note"`
+ Secret string `json:"secret"`
+}
+
+type ItemRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ItemStatus struct {
+ Investments string `json:"investments"`
+ LastWebhook string `json:"last_webhook"`
+ Transactions string `json:"transactions"`
+}
+
+type ItemStatusInvestments struct {
+ LastFailedUpdate string `json:"last_failed_update"`
+ LastSuccessfulUpdate string `json:"last_successful_update"`
+}
+
+type ItemStatusLastWebhook struct {
+ CodeSent string `json:"code_sent"`
+ SentAt string `json:"sent_at"`
+}
+
+type ItemStatusNullable struct {
+ Investments string `json:"investments"`
+ LastWebhook string `json:"last_webhook"`
+ Transactions string `json:"transactions"`
+}
+
+type ItemStatusTransactions struct {
+ LastFailedUpdate string `json:"last_failed_update"`
+ LastSuccessfulUpdate string `json:"last_successful_update"`
+}
+
+type ItemWebhookUpdateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type ItemWebhookUpdateResponse struct {
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+}
+
+type ItemWithConsentFields struct {
+ AuthMethod string `json:"auth_method"`
+ AvailableProducts string `json:"available_products"`
+ BilledProducts string `json:"billed_products"`
+ ConsentExpirationTime string `json:"consent_expiration_time"`
+ ConsentedDataScopes string `json:"consented_data_scopes"`
+ ConsentedProducts string `json:"consented_products"`
+ ConsentedUseCases string `json:"consented_use_cases"`
+ CreatedAt string `json:"created_at"`
+ Error string `json:"error"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ Products string `json:"products"`
+ UpdateType string `json:"update_type"`
+ Webhook string `json:"webhook"`
+}
+
+type JWKPublicKey struct {
+ Alg string `json:"alg"`
+ CreatedAt int `json:"created_at"`
+ Crv string `json:"crv"`
+ ExpiredAt int `json:"expired_at"`
+ Kid string `json:"kid"`
+ Kty string `json:"kty"`
+ Use string `json:"use"`
+ X string `json:"x"`
+ Y string `json:"y"`
+}
+
+type JWTHeader struct {
+ Alg string `json:"alg"`
+ Id string `json:"id"`
+ Kid string `json:"kid"`
+}
+
+type KYCCheckAddressSummary struct {
+ City string `json:"city"`
+ InternationalDetails string `json:"international_details"`
+ PoBox string `json:"po_box"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Summary string `json:"summary"`
+ Type string `json:"type"`
+}
+
+type KYCCheckDateOfBirthSummary struct {
+ Day string `json:"day"`
+ Month string `json:"month"`
+ Summary string `json:"summary"`
+ Year string `json:"year"`
+}
+
+type KYCCheckDetails struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ IdNumber string `json:"id_number"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+ Status string `json:"status"`
+}
+
+type KYCCheckDetailsInternationalAddress struct {
+ Building string `json:"building"`
+ County string `json:"county"`
+ District string `json:"district"`
+ HouseNumber string `json:"house_number"`
+ Subpremise string `json:"subpremise"`
+ Thoroughfare string `json:"thoroughfare"`
+}
+
+type KYCCheckIDNumberSummary struct {
+ Summary string `json:"summary"`
+}
+
+type KYCCheckNameSummary struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+ Summary string `json:"summary"`
+}
+
+type KYCCheckPhoneSummary struct {
+ AreaCode string `json:"area_code"`
+ Summary string `json:"summary"`
+}
+
+type LastDataAccessTimes struct {
+ AccountBalanceInfo string `json:"account_balance_info"`
+ AccountRoutingNumber string `json:"account_routing_number"`
+ ApplicationId string `json:"application_id"`
+ ContactDetails string `json:"contact_details"`
+ CreditAndLoans string `json:"credit_and_loans"`
+ Investments string `json:"investments"`
+ PayrollInfo string `json:"payroll_info"`
+ TransactionRiskInfo string `json:"transaction_risk_info"`
+ Transactions string `json:"transactions"`
+}
+
+type LatestScoredEvent struct {
+ EventId string `json:"event_id"`
+ EventType string `json:"event_type"`
+ FraudAttributes string `json:"fraud_attributes"`
+ Timestamp string `json:"timestamp"`
+ TrustIndex string `json:"trust_index"`
+}
+
+type LayerAuthenticationPassedWebhook struct {
+ Environment string `json:"environment"`
+ LinkSessionId string `json:"link_session_id"`
+ LinkToken string `json:"link_token"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type LendScore struct {
+ ErrorReason string `json:"error_reason"`
+ ReasonCodes string `json:"reason_codes"`
+ Score int `json:"score"`
+}
+
+type LiabilitiesAccountIdsWithUpdatedLiabilities struct {
+}
+
+type LiabilitiesDefaultUpdateWebhook struct {
+ AccountIdsWithNewLiabilities string `json:"account_ids_with_new_liabilities"`
+ AccountIdsWithUpdatedLiabilities string `json:"account_ids_with_updated_liabilities"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type LiabilitiesGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type LiabilitiesGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+}
+
+type LiabilitiesGetResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ Liabilities string `json:"liabilities"`
+ RequestId string `json:"request_id"`
+}
+
+type LiabilitiesObject struct {
+ Credit string `json:"credit"`
+ Mortgage string `json:"mortgage"`
+ Student string `json:"student"`
+}
+
+type LiabilityOverride struct {
+ BalanceTransferApr float64 `json:"balance_transfer_apr"`
+ CashApr float64 `json:"cash_apr"`
+ ExpectedPayoffDate string `json:"expected_payoff_date"`
+ Guarantor string `json:"guarantor"`
+ InterestCapitalizationGracePeriodMonths float64 `json:"interest_capitalization_grace_period_months"`
+ IsFederal bool `json:"is_federal"`
+ IsOverdue bool `json:"is_overdue"`
+ LastPaymentAmount float64 `json:"last_payment_amount"`
+ LoanName string `json:"loan_name"`
+ LoanStatus string `json:"loan_status"`
+ MinimumPaymentAmount float64 `json:"minimum_payment_amount"`
+ NominalApr float64 `json:"nominal_apr"`
+ OriginationDate string `json:"origination_date"`
+ PaymentReferenceNumber string `json:"payment_reference_number"`
+ Principal float64 `json:"principal"`
+ PslfStatus string `json:"pslf_status"`
+ PurchaseApr float64 `json:"purchase_apr"`
+ RepaymentModel string `json:"repayment_model"`
+ RepaymentPlanDescription string `json:"repayment_plan_description"`
+ RepaymentPlanType string `json:"repayment_plan_type"`
+ SequenceNumber string `json:"sequence_number"`
+ ServicerAddress string `json:"servicer_address"`
+ SpecialApr float64 `json:"special_apr"`
+ Type string `json:"type"`
+}
+
+type LinkCallbackMetadata struct {
+ Accounts string `json:"accounts"`
+ CallbackType string `json:"callback_type"`
+ EventName string `json:"event_name"`
+ Institution string `json:"institution"`
+ LinkSessionId string `json:"link_session_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type LinkDeliveryAccount struct {
+ ClassType string `json:"class_type"`
+ Id string `json:"id"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type LinkDeliveryCallbackWebhook struct {
+ Error string `json:"error"`
+ LinkCallbackMetadata string `json:"link_callback_metadata"`
+ LinkDeliverySessionId string `json:"link_delivery_session_id"`
+ Timestamp string `json:"timestamp"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type LinkDeliveryCommunicationMethod struct {
+ Address string `json:"address"`
+ Method string `json:"method"`
+}
+
+type LinkDeliveryCreateRequest struct {
+ ClientId string `json:"client_id"`
+ LinkToken string `json:"link_token"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type LinkDeliveryCreateResponse struct {
+ LinkDeliverySessionId string `json:"link_delivery_session_id"`
+ LinkDeliveryUrl string `json:"link_delivery_url"`
+ RequestId string `json:"request_id"`
+}
+
+type LinkDeliveryGetRequest struct {
+ ClientId string `json:"client_id"`
+ LinkDeliverySessionId string `json:"link_delivery_session_id"`
+ Secret string `json:"secret"`
+}
+
+type LinkDeliveryGetResponse struct {
+ AccessTokens string `json:"access_tokens"`
+ CompletedAt string `json:"completed_at"`
+ CreatedAt string `json:"created_at"`
+ ItemIds string `json:"item_ids"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type LinkDeliveryInstitution struct {
+ InstitutionId string `json:"institution_id"`
+ Name string `json:"name"`
+}
+
+type LinkDeliveryMetadata struct {
+ CommunicationMethod string `json:"communication_method"`
+ DeliveryStatus string `json:"delivery_status"`
+}
+
+type LinkDeliveryOptions struct {
+ Recipient string `json:"recipient"`
+}
+
+type LinkDeliveryRecipient struct {
+ CommunicationMethods string `json:"communication_methods"`
+ FirstName string `json:"first_name"`
+}
+
+type LinkEvent struct {
+ EventId string `json:"event_id"`
+ EventMetadata string `json:"event_metadata"`
+ EventName string `json:"event_name"`
+ Timestamp string `json:"timestamp"`
+}
+
+type LinkEventMetadata struct {
+ AccountNumberMask string `json:"account_number_mask"`
+ BrandName string `json:"brand_name"`
+ ErrorCode string `json:"error_code"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+ ExitStatus string `json:"exit_status"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ InstitutionSearchQuery string `json:"institution_search_query"`
+ MatchReason string `json:"match_reason"`
+ MfaType string `json:"mfa_type"`
+ RequestId string `json:"request_id"`
+ RoutingNumber string `json:"routing_number"`
+ Selection string `json:"selection"`
+ ViewName string `json:"view_name"`
+}
+
+type LinkEventsWebhook struct {
+ Events string `json:"events"`
+ LinkSessionId string `json:"link_session_id"`
+ LinkToken string `json:"link_token"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type LinkOAuthCorrelationIdExchangeRequest struct {
+ ClientId string `json:"client_id"`
+ LinkCorrelationId string `json:"link_correlation_id"`
+ Secret string `json:"secret"`
+}
+
+type LinkOAuthCorrelationIdExchangeResponse struct {
+ LinkToken string `json:"link_token"`
+ RequestId string `json:"request_id"`
+}
+
+type LinkSessionBankEmploymentResult struct {
+ Institution string `json:"institution"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+}
+
+type LinkSessionBankIncomeResult struct {
+ Institution string `json:"institution"`
+ ItemId string `json:"item_id"`
+ Status string `json:"status"`
+}
+
+type LinkSessionCraDocumentUploadResult struct {
+ NumBankStatementsUploaded int `json:"num_bank_statements_uploaded"`
+}
+
+type LinkSessionCraItemAddResult struct {
+ Accounts string `json:"accounts"`
+ Institution string `json:"institution"`
+ ItemId string `json:"item_id"`
+}
+
+type LinkSessionCraUpdateResult struct {
+ Accounts string `json:"accounts"`
+ Institution string `json:"institution"`
+ ItemId string `json:"item_id"`
+}
+
+type LinkSessionExit struct {
+ Error string `json:"error"`
+ Metadata string `json:"metadata"`
+}
+
+type LinkSessionExitDeprecated struct {
+ Error string `json:"error"`
+ Metadata string `json:"metadata"`
+}
+
+type LinkSessionExitMetadata struct {
+ Institution string `json:"institution"`
+ LinkSessionId string `json:"link_session_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type LinkSessionExitMetadataInstitution struct {
+ InstitutionId string `json:"institution_id"`
+ Name string `json:"name"`
+}
+
+type LinkSessionFinishedWebhook struct {
+ Environment string `json:"environment"`
+ LinkSessionId string `json:"link_session_id"`
+ LinkToken string `json:"link_token"`
+ PublicToken string `json:"public_token"`
+ PublicTokens string `json:"public_tokens"`
+ Status string `json:"status"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type LinkSessionItemAddResult struct {
+ Accounts string `json:"accounts"`
+ Institution string `json:"institution"`
+ PublicToken string `json:"public_token"`
+}
+
+type LinkSessionPayrollIncomeResult struct {
+ Institution string `json:"institution"`
+ NumPaystubsRetrieved int `json:"num_paystubs_retrieved"`
+ NumW2sRetrieved int `json:"num_w2s_retrieved"`
+}
+
+type LinkSessionProtectResult struct {
+ EventId string `json:"event_id"`
+ FraudAttributes string `json:"fraud_attributes"`
+ TrustIndex string `json:"trust_index"`
+}
+
+type LinkSessionProtectResultFraudAttributes struct {
+}
+
+type LinkSessionResults struct {
+ BankIncomeResults string `json:"bank_income_results"`
+ CraDocumentUploadResults string `json:"cra_document_upload_results"`
+ CraItemAddResults string `json:"cra_item_add_results"`
+ CraUpdateResults string `json:"cra_update_results"`
+ DocumentIncomeResults string `json:"document_income_results"`
+ ItemAddResults string `json:"item_add_results"`
+ PayrollIncomeResults string `json:"payroll_income_results"`
+ ProtectResults string `json:"protect_results"`
+}
+
+type LinkSessionSuccess struct {
+ Metadata string `json:"metadata"`
+ PublicToken string `json:"public_token"`
+}
+
+type LinkSessionSuccessMetadata struct {
+ Accounts string `json:"accounts"`
+ Institution string `json:"institution"`
+ LinkSessionId string `json:"link_session_id"`
+ TransferStatus string `json:"transfer_status"`
+}
+
+type LinkSessionSuccessMetadataAccount struct {
+ ClassType string `json:"class_type"`
+ Id string `json:"id"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ Subtype string `json:"subtype"`
+ Type string `json:"type"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type LinkSessionSuccessMetadataInstitution struct {
+ InstitutionId string `json:"institution_id"`
+ Name string `json:"name"`
+}
+
+type LinkTokenAccountFilters struct {
+ Credit string `json:"credit"`
+ Depository string `json:"depository"`
+ Investment string `json:"investment"`
+ Loan string `json:"loan"`
+ Other string `json:"other"`
+}
+
+type LinkTokenCashflowReport struct {
+ DaysRequested int `json:"days_requested"`
+}
+
+type LinkTokenCreateCardSwitch struct {
+ CardBin string `json:"card_bin"`
+}
+
+type LinkTokenCreateCreditFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type LinkTokenCreateDepositoryFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type LinkTokenCreateHostedLink struct {
+ CompletionRedirectUri string `json:"completion_redirect_uri"`
+ DeliveryMethod string `json:"delivery_method"`
+ IsMobileApp bool `json:"is_mobile_app"`
+ UrlLifetimeSeconds int `json:"url_lifetime_seconds"`
+}
+
+type LinkTokenCreateIdentity struct {
+ AccountIds string `json:"account_ids"`
+ IsDocumentUpload bool `json:"is_document_upload"`
+ ParsingConfigs string `json:"parsing_configs"`
+}
+
+type LinkTokenCreateInstitutionData struct {
+ RoutingNumber string `json:"routing_number"`
+}
+
+type LinkTokenCreateInvestmentFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type LinkTokenCreateLoanFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type LinkTokenCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccessTokens string `json:"access_tokens"`
+ AccountFilters string `json:"account_filters"`
+ AdditionalConsentedProducts string `json:"additional_consented_products"`
+ AndroidPackageName string `json:"android_package_name"`
+ AppearanceMode string `json:"appearance_mode"`
+ Auth string `json:"auth"`
+ BaseReport string `json:"base_report"`
+ CardSwitch string `json:"card_switch"`
+ CashflowReport string `json:"cashflow_report"`
+ ClientId string `json:"client_id"`
+ ClientName string `json:"client_name"`
+ ConsumerReportPermissiblePurpose string `json:"consumer_report_permissible_purpose"`
+ CountryCodes string `json:"country_codes"`
+ CraEnabled bool `json:"cra_enabled"`
+ CraOptions string `json:"cra_options"`
+ CreditPartnerInsights string `json:"credit_partner_insights"`
+ Employment string `json:"employment"`
+ EnableMultiItemLink bool `json:"enable_multi_item_link"`
+ EuConfig string `json:"eu_config"`
+ FinancekitSupported bool `json:"financekit_supported"`
+ HostedLink string `json:"hosted_link"`
+ Identity string `json:"identity"`
+ IdentityVerification string `json:"identity_verification"`
+ IncomeVerification string `json:"income_verification"`
+ InstitutionData string `json:"institution_data"`
+ InstitutionId string `json:"institution_id"`
+ Investments string `json:"investments"`
+ InvestmentsAuth string `json:"investments_auth"`
+ Language string `json:"language"`
+ LinkCustomizationName string `json:"link_customization_name"`
+ OptionalProducts string `json:"optional_products"`
+ PaymentConfiguration string `json:"payment_configuration"`
+ PaymentInitiation string `json:"payment_initiation"`
+ Products string `json:"products"`
+ RedirectUri string `json:"redirect_uri"`
+ RequiredIfSupportedProducts string `json:"required_if_supported_products"`
+ Secret string `json:"secret"`
+ Statements string `json:"statements"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+ Transactions string `json:"transactions"`
+ Transfer string `json:"transfer"`
+ Update string `json:"update"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+ Webhook string `json:"webhook"`
+}
+
+type LinkTokenCreateRequestAccountSubtypes struct {
+ Credit string `json:"credit"`
+ Depository string `json:"depository"`
+ Investment string `json:"investment"`
+ Loan string `json:"loan"`
+}
+
+type LinkTokenCreateRequestAuth struct {
+ AuthTypeSelectEnabled bool `json:"auth_type_select_enabled"`
+ AutomatedMicrodepositsEnabled bool `json:"automated_microdeposits_enabled"`
+ DatabaseInsightsEnabled bool `json:"database_insights_enabled"`
+ DatabaseMatchEnabled bool `json:"database_match_enabled"`
+ FlowType string `json:"flow_type"`
+ InstantMatchEnabled bool `json:"instant_match_enabled"`
+ InstantMicrodepositsEnabled bool `json:"instant_microdeposits_enabled"`
+ RerouteToCredentials string `json:"reroute_to_credentials"`
+ SameDayMicrodepositsEnabled bool `json:"same_day_microdeposits_enabled"`
+ SmsMicrodepositsVerificationEnabled bool `json:"sms_microdeposits_verification_enabled"`
+}
+
+type LinkTokenCreateRequestBaseReport struct {
+ ClientReportId string `json:"client_report_id"`
+ DaysRequested int `json:"days_requested"`
+}
+
+type LinkTokenCreateRequestCraOptions struct {
+ BaseReport string `json:"base_report"`
+ CashflowInsights string `json:"cashflow_insights"`
+ ClientReportId string `json:"client_report_id"`
+ DaysRequested int `json:"days_requested"`
+ DaysRequired int `json:"days_required"`
+ IncludeInvestments bool `json:"include_investments"`
+ LendScore string `json:"lend_score"`
+ NetworkInsights string `json:"network_insights"`
+ PartnerInsights string `json:"partner_insights"`
+}
+
+type LinkTokenCreateRequestCraOptionsBaseReport struct {
+ ClientReportId string `json:"client_report_id"`
+ GseOptions string `json:"gse_options"`
+ RequireIdentity bool `json:"require_identity"`
+}
+
+type LinkTokenCreateRequestCraOptionsBaseReportGSEOptions struct {
+ ReportTypes string `json:"report_types"`
+}
+
+type LinkTokenCreateRequestCraOptionsCashflowInsights struct {
+ AttributesVersion string `json:"attributes_version"`
+ PlaidCheckScoreVersion string `json:"plaid_check_score_version"`
+}
+
+type LinkTokenCreateRequestCraOptionsLendScore struct {
+ LendScoreVersion string `json:"lend_score_version"`
+}
+
+type LinkTokenCreateRequestCraOptionsNetworkInsights struct {
+ NetworkInsightsVersion string `json:"network_insights_version"`
+}
+
+type LinkTokenCreateRequestCraOptionsPartnerInsights struct {
+ Fico string `json:"fico"`
+ PrismProducts string `json:"prism_products"`
+ PrismVersions string `json:"prism_versions"`
+}
+
+type LinkTokenCreateRequestCreditPartnerInsights struct {
+ DaysRequested int `json:"days_requested"`
+ PrismProducts string `json:"prism_products"`
+}
+
+type LinkTokenCreateRequestDepositSwitch struct {
+ DepositSwitchId string `json:"deposit_switch_id"`
+}
+
+type LinkTokenCreateRequestEmployment struct {
+ BankEmployment string `json:"bank_employment"`
+ EmploymentSourceTypes string `json:"employment_source_types"`
+}
+
+type LinkTokenCreateRequestEmploymentBankIncome struct {
+ DaysRequested int `json:"days_requested"`
+}
+
+type LinkTokenCreateRequestIdentityVerification struct {
+ Consent string `json:"consent"`
+ GaveConsent bool `json:"gave_consent"`
+ TemplateId string `json:"template_id"`
+}
+
+type LinkTokenCreateRequestIncomeVerification struct {
+ AccessTokens string `json:"access_tokens"`
+ AssetReportId string `json:"asset_report_id"`
+ BankIncome string `json:"bank_income"`
+ IncomeSourceTypes string `json:"income_source_types"`
+ IncomeVerificationId string `json:"income_verification_id"`
+ PayrollIncome string `json:"payroll_income"`
+ StatedIncomeSources string `json:"stated_income_sources"`
+}
+
+type LinkTokenCreateRequestIncomeVerificationBankIncome struct {
+ DaysRequested int `json:"days_requested"`
+ EnableMultipleItems bool `json:"enable_multiple_items"`
+}
+
+type LinkTokenCreateRequestIncomeVerificationPayrollIncome struct {
+ FlowTypes string `json:"flow_types"`
+ IsUpdateMode bool `json:"is_update_mode"`
+ ItemIdToUpdate string `json:"item_id_to_update"`
+ ParsingConfig string `json:"parsing_config"`
+}
+
+type LinkTokenCreateRequestPaymentConfiguration struct {
+ Amount string `json:"amount"`
+ Description string `json:"description"`
+}
+
+type LinkTokenCreateRequestPaymentInitiation struct {
+ ConsentId string `json:"consent_id"`
+ PaymentId string `json:"payment_id"`
+}
+
+type LinkTokenCreateRequestStatements struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type LinkTokenCreateRequestTransfer struct {
+ AuthorizationId string `json:"authorization_id"`
+ IntentId string `json:"intent_id"`
+ PaymentProfileToken string `json:"payment_profile_token"`
+}
+
+type LinkTokenCreateRequestUpdate struct {
+ AccountSelectionEnabled bool `json:"account_selection_enabled"`
+ ItemIds string `json:"item_ids"`
+ ReauthorizationEnabled bool `json:"reauthorization_enabled"`
+ User bool `json:"user"`
+}
+
+type LinkTokenCreateRequestUser struct {
+ Address string `json:"address"`
+ ClientUserId string `json:"client_user_id"`
+ DateOfBirth string `json:"date_of_birth"`
+ EmailAddress string `json:"email_address"`
+ EmailAddressVerifiedTime string `json:"email_address_verified_time"`
+ IdNumber string `json:"id_number"`
+ LegalName string `json:"legal_name"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+ PhoneNumberVerifiedTime string `json:"phone_number_verified_time"`
+ Ssn string `json:"ssn"`
+}
+
+type LinkTokenCreateRequestUserStatedIncomeSource struct {
+ Category string `json:"category"`
+ Employer string `json:"employer"`
+ PayAnnual float64 `json:"pay_annual"`
+ PayFrequency string `json:"pay_frequency"`
+ PayPerCycle float64 `json:"pay_per_cycle"`
+ PayType string `json:"pay_type"`
+}
+
+type LinkTokenCreateResponse struct {
+ Expiration string `json:"expiration"`
+ HostedLinkUrl string `json:"hosted_link_url"`
+ LinkToken string `json:"link_token"`
+ RequestId string `json:"request_id"`
+ UserId string `json:"user_id"`
+}
+
+type LinkTokenEUConfig struct {
+ Headless bool `json:"headless"`
+}
+
+type LinkTokenGetMetadataResponse struct {
+ AccountFilters string `json:"account_filters"`
+ ClientName string `json:"client_name"`
+ CountryCodes string `json:"country_codes"`
+ InitialProducts string `json:"initial_products"`
+ InstitutionData string `json:"institution_data"`
+ Language string `json:"language"`
+ RedirectUri string `json:"redirect_uri"`
+ Webhook string `json:"webhook"`
+}
+
+type LinkTokenGetRequest struct {
+ ClientId string `json:"client_id"`
+ LinkToken string `json:"link_token"`
+ Secret string `json:"secret"`
+}
+
+type LinkTokenGetResponse struct {
+ CreatedAt string `json:"created_at"`
+ Expiration string `json:"expiration"`
+ LinkSessions string `json:"link_sessions"`
+ LinkToken string `json:"link_token"`
+ Metadata string `json:"metadata"`
+ RequestId string `json:"request_id"`
+ UserId string `json:"user_id"`
+}
+
+type LinkTokenGetSessionsResponse struct {
+ Events string `json:"events"`
+ Exit string `json:"exit"`
+ FinishedAt string `json:"finished_at"`
+ LinkSessionId string `json:"link_session_id"`
+ OnExit string `json:"on_exit"`
+ OnSuccess string `json:"on_success"`
+ Results string `json:"results"`
+ StartedAt string `json:"started_at"`
+}
+
+type LinkTokenInvestments struct {
+ AllowManualEntry bool `json:"allow_manual_entry"`
+ AllowUnverifiedCryptoWallets bool `json:"allow_unverified_crypto_wallets"`
+}
+
+type LinkTokenInvestmentsAuth struct {
+ ManualEntryEnabled bool `json:"manual_entry_enabled"`
+ MaskedNumberMatchEnabled bool `json:"masked_number_match_enabled"`
+ Rollover401kEnabled bool `json:"rollover_401k_enabled"`
+ StatedAccountNumberEnabled bool `json:"stated_account_number_enabled"`
+}
+
+type LinkTokenTransactions struct {
+ DaysRequested int `json:"days_requested"`
+}
+
+type LinkUserDeliveryStatusWebhook struct {
+ LinkDeliveryMetadata string `json:"link_delivery_metadata"`
+ LinkDeliverySessionId string `json:"link_delivery_session_id"`
+ Timestamp string `json:"timestamp"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type Loan struct {
+ LOANIDENTIFIERS string `json:"LOAN_IDENTIFIERS"`
+}
+
+type LoanAccount struct {
+ Auto string `json:"auto"`
+ Business string `json:"business"`
+ Commercial string `json:"commercial"`
+ Construction string `json:"construction"`
+ Consumer string `json:"consumer"`
+ HomeEquity string `json:"home_equity"`
+ LineOfCredit string `json:"line_of_credit"`
+ Loan string `json:"loan"`
+ Mortgage string `json:"mortgage"`
+ Other string `json:"other"`
+ Overdraft string `json:"overdraft"`
+ Student string `json:"student"`
+}
+
+type LoanDisbursementsIndicators struct {
+ Amount float64 `json:"amount"`
+ CategoryDetails string `json:"category_details"`
+ DaysSinceLastOccurrence int `json:"days_since_last_occurrence"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyAverage string `json:"monthly_average"`
+ MonthlySummaries string `json:"monthly_summaries"`
+ PercentageOfIncome float64 `json:"percentage_of_income"`
+ TopProviders string `json:"top_providers"`
+ TransactionsCount int `json:"transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type LoanFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type LoanIdentifier struct {
+ LoanIdentifier string `json:"LoanIdentifier"`
+ LoanIdentifierType string `json:"LoanIdentifierType"`
+}
+
+type LoanIdentifiers struct {
+ LOANIDENTIFIER string `json:"LOAN_IDENTIFIER"`
+}
+
+type LoanPaymentsCounts struct {
+ BaselineCount float64 `json:"baseline_count"`
+ CurrentCount float64 `json:"current_count"`
+}
+
+type LoanPaymentsIndicators struct {
+ Amount float64 `json:"amount"`
+ CategoryDetails string `json:"category_details"`
+ DaysSinceLastOccurrence int `json:"days_since_last_occurrence"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyAverage string `json:"monthly_average"`
+ MonthlySummaries string `json:"monthly_summaries"`
+ PercentageOfIncome float64 `json:"percentage_of_income"`
+ TopProviders string `json:"top_providers"`
+ TransactionsCount int `json:"transactions_count"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type LoanPaymentsMerchantCounts struct {
+ BaselineCount float64 `json:"baseline_count"`
+ CurrentCount float64 `json:"current_count"`
+}
+
+type Loans struct {
+ LOAN string `json:"LOAN"`
+}
+
+type Location struct {
+ Address string `json:"address"`
+ City string `json:"city"`
+ Country string `json:"country"`
+ Lat float64 `json:"lat"`
+ Lon float64 `json:"lon"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ StoreNumber string `json:"store_number"`
+}
+
+type MFA struct {
+ QuestionRounds float64 `json:"question_rounds"`
+ QuestionsPerRound float64 `json:"questions_per_round"`
+ SelectionRounds float64 `json:"selection_rounds"`
+ SelectionsPerQuestion float64 `json:"selections_per_question"`
+ Type string `json:"type"`
+}
+
+type MatchSummary struct {
+ Summary string `json:"summary"`
+}
+
+type MerchantInsights struct {
+ EntityId string `json:"entity_id"`
+ Name string `json:"name"`
+ PersonalFinanceCategoryDetailed string `json:"personal_finance_category_detailed"`
+ PersonalFinanceCategoryPrimary string `json:"personal_finance_category_primary"`
+ TotalInflows float64 `json:"total_inflows"`
+ TotalOutflows float64 `json:"total_outflows"`
+ TransactionCount int `json:"transaction_count"`
+ Website string `json:"website"`
+}
+
+type Meta struct {
+ Limit float64 `json:"limit"`
+ Mask string `json:"mask"`
+ Name string `json:"name"`
+ OfficialName string `json:"official_name"`
+}
+
+type MonitoringIncomeInsights struct {
+ ForecastedMonthlyIncome string `json:"forecasted_monthly_income"`
+ HistoricalAnnualIncome string `json:"historical_annual_income"`
+ IncomeSources string `json:"income_sources"`
+ IncomeSourcesCounts string `json:"income_sources_counts"`
+ TotalMonthlyIncome string `json:"total_monthly_income"`
+}
+
+type MonitoringIncomeSource struct {
+ IncomeCategory string `json:"income_category"`
+ IncomeDescription string `json:"income_description"`
+ IncomeSourceId string `json:"income_source_id"`
+ LastTransactionDate string `json:"last_transaction_date"`
+}
+
+type MonitoringInsights struct {
+ Income string `json:"income"`
+ Loans string `json:"loans"`
+}
+
+type MonitoringInsightsItemStatus struct {
+ Reason string `json:"reason"`
+ StatusCode string `json:"status_code"`
+}
+
+type MonitoringLoanInsights struct {
+ LoanDisbursementsCount float64 `json:"loan_disbursements_count"`
+ LoanPaymentMerchantsCounts string `json:"loan_payment_merchants_counts"`
+ LoanPaymentsCounts string `json:"loan_payments_counts"`
+}
+
+type MonthlyAverage struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type MonthlySummary struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+ TotalAmount string `json:"total_amount"`
+}
+
+type MortgageInterestRate struct {
+ Percentage float64 `json:"percentage"`
+ Type string `json:"type"`
+}
+
+type MortgageLiability struct {
+ AccountId string `json:"account_id"`
+ AccountNumber string `json:"account_number"`
+ CurrentLateFee float64 `json:"current_late_fee"`
+ EscrowBalance float64 `json:"escrow_balance"`
+ HasPmi bool `json:"has_pmi"`
+ HasPrepaymentPenalty bool `json:"has_prepayment_penalty"`
+ InterestRate string `json:"interest_rate"`
+ LastPaymentAmount float64 `json:"last_payment_amount"`
+ LastPaymentDate string `json:"last_payment_date"`
+ LoanTerm string `json:"loan_term"`
+ LoanTypeDescription string `json:"loan_type_description"`
+ MaturityDate string `json:"maturity_date"`
+ NextMonthlyPayment float64 `json:"next_monthly_payment"`
+ NextPaymentDueDate string `json:"next_payment_due_date"`
+ OriginationDate string `json:"origination_date"`
+ OriginationPrincipalAmount float64 `json:"origination_principal_amount"`
+ PastDueAmount float64 `json:"past_due_amount"`
+ PropertyAddress string `json:"property_address"`
+ YtdInterestPaid float64 `json:"ytd_interest_paid"`
+ YtdPrincipalPaid float64 `json:"ytd_principal_paid"`
+}
+
+type MortgagePropertyAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type MultiDocumentRiskSignal struct {
+ DocumentReferences string `json:"document_references"`
+ RiskSignals string `json:"risk_signals"`
+}
+
+type NameMatchScore struct {
+ IsBusinessNameDetected bool `json:"is_business_name_detected"`
+ IsFirstNameOrLastNameMatch bool `json:"is_first_name_or_last_name_match"`
+ IsNicknameMatch bool `json:"is_nickname_match"`
+ Score int `json:"score"`
+}
+
+type NegativeBalanceInsights struct {
+ DaysSinceLastOccurrence int `json:"days_since_last_occurrence"`
+ DaysWithNegativeBalance int `json:"days_with_negative_balance"`
+ MinimumBalance string `json:"minimum_balance"`
+ Occurrences string `json:"occurrences"`
+}
+
+type NegativeBalanceOccurrence struct {
+ EndDate string `json:"end_date"`
+ MinimumBalance string `json:"minimum_balance"`
+ StartDate string `json:"start_date"`
+}
+
+type NetPay struct {
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Total string `json:"total"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type NetworkInsightsItem struct {
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+}
+
+type NetworkInsightsReport struct {
+ GeneratedTime string `json:"generated_time"`
+ Items string `json:"items"`
+ NetworkAttributes string `json:"network_attributes"`
+ ReportId string `json:"report_id"`
+}
+
+type NetworkInsightsReportGetRequest struct {
+ AccessTokens string `json:"access_tokens"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type NetworkInsightsReportGetResponse struct {
+ Report string `json:"report"`
+ RequestId string `json:"request_id"`
+}
+
+type NetworkInsightsSchema struct {
+}
+
+type NetworkStatusGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ TemplateId string `json:"template_id"`
+ User string `json:"user"`
+}
+
+type NetworkStatusGetResponse struct {
+ Layer string `json:"layer"`
+ NetworkStatus string `json:"network_status"`
+ RequestId string `json:"request_id"`
+}
+
+type NetworkStatusGetResponseLayer struct {
+ Eligible bool `json:"eligible"`
+}
+
+type NetworkStatusGetUser struct {
+ PhoneNumber string `json:"phone_number"`
+}
+
+type NewAccountsAvailableWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type Numbers struct {
+ Account string `json:"account"`
+ AchRouting string `json:"ach_routing"`
+ AchWireRouting string `json:"ach_wire_routing"`
+ BacsSortCode string `json:"bacs_sort_code"`
+ EftBranch string `json:"eft_branch"`
+ EftInstitution string `json:"eft_institution"`
+ InternationalBic string `json:"international_bic"`
+ InternationalIban string `json:"international_iban"`
+}
+
+type NumbersACATS struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ DtcNumbers string `json:"dtc_numbers"`
+}
+
+type NumbersACH struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ CanTransferIn bool `json:"can_transfer_in"`
+ CanTransferOut bool `json:"can_transfer_out"`
+ IsTokenizedAccountNumber bool `json:"is_tokenized_account_number"`
+ Routing string `json:"routing"`
+ WireRouting string `json:"wire_routing"`
+}
+
+type NumbersACHNullable struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ CanTransferIn bool `json:"can_transfer_in"`
+ CanTransferOut bool `json:"can_transfer_out"`
+ IsTokenizedAccountNumber bool `json:"is_tokenized_account_number"`
+ Routing string `json:"routing"`
+ WireRouting string `json:"wire_routing"`
+}
+
+type NumbersATON struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+}
+
+type NumbersBACS struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ SortCode string `json:"sort_code"`
+}
+
+type NumbersBACSNullable struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ SortCode string `json:"sort_code"`
+}
+
+type NumbersEFT struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ Branch string `json:"branch"`
+ Institution string `json:"institution"`
+}
+
+type NumbersEFTNullable struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ Branch string `json:"branch"`
+ Institution string `json:"institution"`
+}
+
+type NumbersIBANNullable struct {
+}
+
+type NumbersInternational struct {
+ AccountId string `json:"account_id"`
+ Bic string `json:"bic"`
+ Iban string `json:"iban"`
+}
+
+type NumbersInternationalIBAN struct {
+ Bic string `json:"bic"`
+ Iban string `json:"iban"`
+}
+
+type NumbersInternationalNullable struct {
+ AccountId string `json:"account_id"`
+ Bic string `json:"bic"`
+ Iban string `json:"iban"`
+}
+
+type NumbersRetirement401k struct {
+ Account string `json:"account"`
+ AccountId string `json:"account_id"`
+ Plan string `json:"plan"`
+}
+
+type OAuthErrorResponse struct {
+ Error string `json:"error"`
+ ErrorDescription string `json:"error_description"`
+ ErrorUri string `json:"error_uri"`
+ RequestId string `json:"request_id"`
+}
+
+type OAuthIntrospectRequest struct {
+ ClientId string `json:"client_id"`
+ ClientSecret string `json:"client_secret"`
+ Secret string `json:"secret"`
+ Token string `json:"token"`
+}
+
+type OAuthIntrospectResponse struct {
+ Active bool `json:"active"`
+ Aud string `json:"aud"`
+ ClientId string `json:"client_id"`
+ Exp int `json:"exp"`
+ Iat int `json:"iat"`
+ Iss string `json:"iss"`
+ RequestId string `json:"request_id"`
+ Scope string `json:"scope"`
+ Sub string `json:"sub"`
+ TokenType string `json:"token_type"`
+ UserId string `json:"user_id"`
+}
+
+type OAuthRevokeRequest struct {
+ ClientId string `json:"client_id"`
+ ClientSecret string `json:"client_secret"`
+ Secret string `json:"secret"`
+ Token string `json:"token"`
+}
+
+type OAuthRevokeResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type OAuthTokenRequest struct {
+ Audience string `json:"audience"`
+ ClientId string `json:"client_id"`
+ ClientSecret string `json:"client_secret"`
+ GrantType string `json:"grant_type"`
+ RefreshToken string `json:"refresh_token"`
+ Resource string `json:"resource"`
+ Scope string `json:"scope"`
+ Secret string `json:"secret"`
+ SubjectToken string `json:"subject_token"`
+ SubjectTokenType string `json:"subject_token_type"`
+}
+
+type OAuthTokenResponse struct {
+ AccessToken string `json:"access_token"`
+ ExpiresIn int `json:"expires_in"`
+ RefreshToken string `json:"refresh_token"`
+ RequestId string `json:"request_id"`
+ TokenType string `json:"token_type"`
+}
+
+type OptionContract struct {
+ ContractType string `json:"contract_type"`
+ ExpirationDate string `json:"expiration_date"`
+ StrikePrice float64 `json:"strike_price"`
+ UnderlyingSecurityTicker string `json:"underlying_security_ticker"`
+}
+
+type OriginatingFundSource struct {
+ AccountNumber string `json:"account_number"`
+ Address string `json:"address"`
+ Bic string `json:"bic"`
+ FullName string `json:"full_name"`
+}
+
+type Originator struct {
+ ClientId string `json:"client_id"`
+ TransferDiligenceStatus string `json:"transfer_diligence_status"`
+}
+
+type OtherFilter struct {
+ AccountSubtypes string `json:"account_subtypes"`
+}
+
+type OutlierTransactionsInsights struct {
+ TopCategories string `json:"top_categories"`
+ TotalAmount string `json:"total_amount"`
+ TransactionsCount int `json:"transactions_count"`
+}
+
+type OverrideAccounts struct {
+ Currency string `json:"currency"`
+ ForceAvailableBalance float64 `json:"force_available_balance"`
+ HasNullAvailableBalance bool `json:"has_null_available_balance"`
+ Holdings string `json:"holdings"`
+ Identity string `json:"identity"`
+ Income string `json:"income"`
+ InflowModel string `json:"inflow_model"`
+ InvestmentTransactions string `json:"investment_transactions"`
+ Liability string `json:"liability"`
+ Meta string `json:"meta"`
+ Numbers string `json:"numbers"`
+ StartingBalance float64 `json:"starting_balance"`
+ Subtype string `json:"subtype"`
+ Transactions string `json:"transactions"`
+ Type string `json:"type"`
+}
+
+type Owner struct {
+ Addresses string `json:"addresses"`
+ Emails string `json:"emails"`
+ Names string `json:"names"`
+ PhoneNumbers string `json:"phone_numbers"`
+}
+
+type OwnerOverride struct {
+ Addresses string `json:"addresses"`
+ Emails string `json:"emails"`
+ Names string `json:"names"`
+ PhoneNumbers string `json:"phone_numbers"`
+}
+
+type PSLFStatus struct {
+ EstimatedEligibilityDate string `json:"estimated_eligibility_date"`
+ PaymentsMade int `json:"payments_made"`
+ PaymentsRemaining int `json:"payments_remaining"`
+}
+
+type Parties struct {
+ PARTY string `json:"PARTY"`
+}
+
+type PartnerCustomerCreateRequest struct {
+ Address string `json:"address"`
+ ApplicationName string `json:"application_name"`
+ AssetsUnderManagement string `json:"assets_under_management"`
+ BillingContact string `json:"billing_contact"`
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ CreateLinkCustomization bool `json:"create_link_customization"`
+ CustomerSupportInfo string `json:"customer_support_info"`
+ IsBankAddendumCompleted bool `json:"is_bank_addendum_completed"`
+ IsDiligenceAttested bool `json:"is_diligence_attested"`
+ LegalEntityName string `json:"legal_entity_name"`
+ Logo string `json:"logo"`
+ Products string `json:"products"`
+ RedirectUris string `json:"redirect_uris"`
+ RegistrationNumber string `json:"registration_number"`
+ Secret string `json:"secret"`
+ TechnicalContact string `json:"technical_contact"`
+ Website string `json:"website"`
+}
+
+type PartnerCustomerCreateResponse struct {
+ EndCustomer string `json:"end_customer"`
+ RequestId string `json:"request_id"`
+}
+
+type PartnerCustomerEnableRequest struct {
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Secret string `json:"secret"`
+}
+
+type PartnerCustomerEnableResponse struct {
+ ProductionSecret string `json:"production_secret"`
+ RequestId string `json:"request_id"`
+}
+
+type PartnerCustomerGetRequest struct {
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Secret string `json:"secret"`
+}
+
+type PartnerCustomerGetResponse struct {
+ EndCustomer string `json:"end_customer"`
+ RequestId string `json:"request_id"`
+}
+
+type PartnerCustomerOAuthInstitutionsGetRequest struct {
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Secret string `json:"secret"`
+}
+
+type PartnerCustomerOAuthInstitutionsGetResponse struct {
+ FlowdownStatus string `json:"flowdown_status"`
+ Institutions string `json:"institutions"`
+ QuestionnaireStatus string `json:"questionnaire_status"`
+ RequestId string `json:"request_id"`
+}
+
+type PartnerCustomerRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Secret string `json:"secret"`
+}
+
+type PartnerCustomerRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type PartnerEndCustomer struct {
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ Status string `json:"status"`
+}
+
+type PartnerEndCustomerAddress struct {
+ City string `json:"city"`
+ CountryCode string `json:"country_code"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type PartnerEndCustomerAssetsUnderManagement struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type PartnerEndCustomerBankAddendumAcceptance struct {
+ CustomerAccepted bool `json:"customer_accepted"`
+ CustomerAgreementTimestamp string `json:"customer_agreement_timestamp"`
+ CustomerIpAddress string `json:"customer_ip_address"`
+}
+
+type PartnerEndCustomerBillingContact struct {
+ Email string `json:"email"`
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type PartnerEndCustomerCRAPurposes struct {
+ BUSINESSNEEDACCOUNTREVIEW string `json:"BUSINESS_NEED_ACCOUNT_REVIEW"`
+ BUSINESSNEEDTRANSACTION string `json:"BUSINESS_NEED_TRANSACTION"`
+ EMPLOYMENT string `json:"EMPLOYMENT"`
+ EXTENSIONOFCREDITORACCOUNTREVIEW string `json:"EXTENSION_OF_CREDIT_OR_ACCOUNT_REVIEW"`
+ INSURANCEUNDERWRITING string `json:"INSURANCE_UNDERWRITING"`
+ LICENSEELIGIBILITY string `json:"LICENSE_ELIGIBILITY"`
+ RISKASSESSMENT string `json:"RISK_ASSESSMENT"`
+ WRITTENINSTRUCTION string `json:"WRITTEN_INSTRUCTION"`
+}
+
+type PartnerEndCustomerCRAQuestionnaire struct {
+ IsTechnicalServiceProviderInvolved bool `json:"is_technical_service_provider_involved"`
+ IsThirdPartyInvolved bool `json:"is_third_party_involved"`
+ Purposes string `json:"purposes"`
+}
+
+type PartnerEndCustomerCRAUseCases struct {
+ UseCases string `json:"use_cases"`
+}
+
+type PartnerEndCustomerCustomerSupportInfo struct {
+ ContactUrl string `json:"contact_url"`
+ Email string `json:"email"`
+ LinkUpdateUrl string `json:"link_update_url"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type PartnerEndCustomerOAuthInstitution struct {
+ ClassicDisablementDate string `json:"classic_disablement_date"`
+ Environments string `json:"environments"`
+ Errors string `json:"errors"`
+ InstitutionId string `json:"institution_id"`
+ Name string `json:"name"`
+ ProductionEnablementDate string `json:"production_enablement_date"`
+}
+
+type PartnerEndCustomerOAuthInstitutionEnvironments struct {
+ Development string `json:"development"`
+ Production string `json:"production"`
+}
+
+type PartnerEndCustomerOAuthStatusUpdatedWebhook struct {
+ EndCustomerClientId string `json:"end_customer_client_id"`
+ Environment string `json:"environment"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ Status string `json:"status"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type PartnerEndCustomerProductStatuses struct {
+}
+
+type PartnerEndCustomerQuestionnaires struct {
+ Cra string `json:"cra"`
+}
+
+type PartnerEndCustomerSecrets struct {
+ Development string `json:"development"`
+ Production string `json:"production"`
+ Sandbox string `json:"sandbox"`
+}
+
+type PartnerEndCustomerTechnicalContact struct {
+ Email string `json:"email"`
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type PartnerEndCustomerWithSecrets struct {
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ Secrets string `json:"secrets"`
+ Status string `json:"status"`
+}
+
+type Party struct {
+ INDIVIDUAL string `json:"INDIVIDUAL"`
+ ROLES string `json:"ROLES"`
+ TAXPAYERIDENTIFIERS string `json:"TAXPAYER_IDENTIFIERS"`
+}
+
+type PartyIndividual struct {
+ NAME string `json:"NAME"`
+}
+
+type Pay struct {
+ Amount float64 `json:"amount"`
+ Currency string `json:"currency"`
+}
+
+type PayFrequency struct {
+ Value string `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type PayPeriodDetails struct {
+ CheckAmount float64 `json:"check_amount"`
+ DistributionBreakdown string `json:"distribution_breakdown"`
+ EndDate string `json:"end_date"`
+ GrossEarnings float64 `json:"gross_earnings"`
+ PayDate string `json:"pay_date"`
+ PayDay string `json:"pay_day"`
+ PayFrequency string `json:"pay_frequency"`
+ StartDate string `json:"start_date"`
+}
+
+type PayStubDeductionsBreakdown struct {
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PayStubDeductionsTotal struct {
+ CurrentAmount float64 `json:"current_amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PayStubDistributionBreakdown struct {
+ AccountName string `json:"account_name"`
+ BankName string `json:"bank_name"`
+ CurrentAmount float64 `json:"current_amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Mask string `json:"mask"`
+ Type string `json:"type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type PayStubEarningsBreakdown struct {
+ CanonicalDescription string `json:"canonical_description"`
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ Hours float64 `json:"hours"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Rate float64 `json:"rate"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PayStubEarningsTotal struct {
+ CurrentAmount float64 `json:"current_amount"`
+ Hours float64 `json:"hours"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PayStubPayPeriodDetails struct {
+ DistributionBreakdown string `json:"distribution_breakdown"`
+ EndDate string `json:"end_date"`
+ GrossEarnings float64 `json:"gross_earnings"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ PayAmount float64 `json:"pay_amount"`
+ PayBasis string `json:"pay_basis"`
+ PayDate string `json:"pay_date"`
+ PayFrequency string `json:"pay_frequency"`
+ StartDate string `json:"start_date"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type PayStubTaxpayerID struct {
+ IdMask string `json:"id_mask"`
+ IdType string `json:"id_type"`
+}
+
+type PaymentAmount struct {
+ Currency string `json:"currency"`
+ Value float64 `json:"value"`
+}
+
+type PaymentAmountNullable struct {
+ Currency string `json:"currency"`
+ Value float64 `json:"value"`
+}
+
+type PaymentAmountRefunded struct {
+ Currency string `json:"currency"`
+ Value float64 `json:"value"`
+}
+
+type PaymentAmountToRefund struct {
+ Currency string `json:"currency"`
+ Value float64 `json:"value"`
+}
+
+type PaymentConsentMaxPaymentAmount struct {
+ Currency string `json:"currency"`
+ Value float64 `json:"value"`
+}
+
+type PaymentConsentPeriodicAmount struct {
+ Alignment string `json:"alignment"`
+ Amount string `json:"amount"`
+ Interval string `json:"interval"`
+}
+
+type PaymentConsentPeriodicAmountAmount struct {
+ Currency string `json:"currency"`
+ Value float64 `json:"value"`
+}
+
+type PaymentConsentValidDateTime struct {
+ From string `json:"from"`
+ To string `json:"to"`
+}
+
+type PaymentInitiationAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Street string `json:"street"`
+}
+
+type PaymentInitiationConsent struct {
+ ConsentId string `json:"consent_id"`
+ Constraints string `json:"constraints"`
+ CreatedAt string `json:"created_at"`
+ PayerDetails string `json:"payer_details"`
+ RecipientId string `json:"recipient_id"`
+ Reference string `json:"reference"`
+ Scopes string `json:"scopes"`
+ Status string `json:"status"`
+ Type string `json:"type"`
+}
+
+type PaymentInitiationConsentConstraints struct {
+ MaxPaymentAmount string `json:"max_payment_amount"`
+ PeriodicAmounts string `json:"periodic_amounts"`
+ ValidDateTime string `json:"valid_date_time"`
+}
+
+type PaymentInitiationConsentCreateRequest struct {
+ ClientId string `json:"client_id"`
+ Constraints string `json:"constraints"`
+ Options string `json:"options"`
+ PayerDetails string `json:"payer_details"`
+ RecipientId string `json:"recipient_id"`
+ Reference string `json:"reference"`
+ Scopes string `json:"scopes"`
+ Secret string `json:"secret"`
+ Type string `json:"type"`
+}
+
+type PaymentInitiationConsentCreateResponse struct {
+ ConsentId string `json:"consent_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type PaymentInitiationConsentGetRequest struct {
+ ClientId string `json:"client_id"`
+ ConsentId string `json:"consent_id"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationConsentGetResponse struct {
+ ConsentId string `json:"consent_id"`
+ Constraints string `json:"constraints"`
+ CreatedAt string `json:"created_at"`
+ PayerDetails string `json:"payer_details"`
+ RecipientId string `json:"recipient_id"`
+ Reference string `json:"reference"`
+ RequestId string `json:"request_id"`
+ Scopes string `json:"scopes"`
+ Status string `json:"status"`
+ Type string `json:"type"`
+}
+
+type PaymentInitiationConsentPayerDetails struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ Emails string `json:"emails"`
+ Name string `json:"name"`
+ Numbers string `json:"numbers"`
+ PhoneNumbers string `json:"phone_numbers"`
+}
+
+type PaymentInitiationConsentPayerNumbers struct {
+ Bacs string `json:"bacs"`
+ Iban string `json:"iban"`
+}
+
+type PaymentInitiationConsentPaymentExecuteRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ ConsentId string `json:"consent_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ ProcessingMode string `json:"processing_mode"`
+ Reference string `json:"reference"`
+ Scope string `json:"scope"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationConsentPaymentExecuteResponse struct {
+ Error string `json:"error"`
+ PaymentId string `json:"payment_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type PaymentInitiationConsentRevokeRequest struct {
+ ClientId string `json:"client_id"`
+ ConsentId string `json:"consent_id"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationConsentRevokeResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type PaymentInitiationConsentStatusUpdateWebhook struct {
+ ConsentId string `json:"consent_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewStatus string `json:"new_status"`
+ OldStatus string `json:"old_status"`
+ Timestamp string `json:"timestamp"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type PaymentInitiationMaximumPaymentAmount struct {
+}
+
+type PaymentInitiationMetadata struct {
+ MaximumPaymentAmount string `json:"maximum_payment_amount"`
+ StandingOrderMetadata string `json:"standing_order_metadata"`
+ SupportsInternationalPayments bool `json:"supports_international_payments"`
+ SupportsPaymentConsents bool `json:"supports_payment_consents"`
+ SupportsRefundDetails bool `json:"supports_refund_details"`
+ SupportsSepaInstant bool `json:"supports_sepa_instant"`
+}
+
+type PaymentInitiationOptionalRestrictionBacs struct {
+ Account string `json:"account"`
+ SortCode string `json:"sort_code"`
+}
+
+type PaymentInitiationPayment struct {
+ AdjustedReference string `json:"adjusted_reference"`
+ AdjustedScheme string `json:"adjusted_scheme"`
+ Amount string `json:"amount"`
+ AmountRefunded string `json:"amount_refunded"`
+ Bacs string `json:"bacs"`
+ ConsentId string `json:"consent_id"`
+ EndToEndId string `json:"end_to_end_id"`
+ Error string `json:"error"`
+ Iban string `json:"iban"`
+ LastStatusUpdate string `json:"last_status_update"`
+ PaymentId string `json:"payment_id"`
+ RecipientId string `json:"recipient_id"`
+ Reference string `json:"reference"`
+ RefundDetails string `json:"refund_details"`
+ RefundIds string `json:"refund_ids"`
+ Schedule string `json:"schedule"`
+ Scheme string `json:"scheme"`
+ Status string `json:"status"`
+ TransactionId string `json:"transaction_id"`
+ WalletId string `json:"wallet_id"`
+}
+
+type PaymentInitiationPaymentCreateRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ RecipientId string `json:"recipient_id"`
+ Reference string `json:"reference"`
+ Schedule string `json:"schedule"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationPaymentCreateResponse struct {
+ PaymentId string `json:"payment_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type PaymentInitiationPaymentGetRequest struct {
+ ClientId string `json:"client_id"`
+ PaymentId string `json:"payment_id"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationPaymentGetResponse struct {
+ AdjustedReference string `json:"adjusted_reference"`
+ AdjustedScheme string `json:"adjusted_scheme"`
+ Amount string `json:"amount"`
+ AmountRefunded string `json:"amount_refunded"`
+ Bacs string `json:"bacs"`
+ ConsentId string `json:"consent_id"`
+ EndToEndId string `json:"end_to_end_id"`
+ Error string `json:"error"`
+ Iban string `json:"iban"`
+ LastStatusUpdate string `json:"last_status_update"`
+ PaymentId string `json:"payment_id"`
+ RecipientId string `json:"recipient_id"`
+ Reference string `json:"reference"`
+ RefundDetails string `json:"refund_details"`
+ RefundIds string `json:"refund_ids"`
+ RequestId string `json:"request_id"`
+ Schedule string `json:"schedule"`
+ Scheme string `json:"scheme"`
+ Status string `json:"status"`
+ TransactionId string `json:"transaction_id"`
+ WalletId string `json:"wallet_id"`
+}
+
+type PaymentInitiationPaymentListRequest struct {
+ ClientId string `json:"client_id"`
+ ConsentId string `json:"consent_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationPaymentListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ Payments string `json:"payments"`
+ RequestId string `json:"request_id"`
+}
+
+type PaymentInitiationPaymentReverseRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ CounterpartyAddress string `json:"counterparty_address"`
+ CounterpartyDateOfBirth string `json:"counterparty_date_of_birth"`
+ IdempotencyKey string `json:"idempotency_key"`
+ PaymentId string `json:"payment_id"`
+ Reference string `json:"reference"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationPaymentReverseResponse struct {
+ RefundId string `json:"refund_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+}
+
+type PaymentInitiationPaymentTokenCreateRequest struct {
+ ClientId string `json:"client_id"`
+ PaymentId string `json:"payment_id"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationPaymentTokenCreateResponse struct {
+ PaymentToken string `json:"payment_token"`
+ PaymentTokenExpirationTime string `json:"payment_token_expiration_time"`
+ RequestId string `json:"request_id"`
+}
+
+type PaymentInitiationRecipient struct {
+ Address string `json:"address"`
+ Bacs string `json:"bacs"`
+ Iban string `json:"iban"`
+ Name string `json:"name"`
+ RecipientId string `json:"recipient_id"`
+}
+
+type PaymentInitiationRecipientCreateRequest struct {
+ Address string `json:"address"`
+ Bacs string `json:"bacs"`
+ ClientId string `json:"client_id"`
+ Iban string `json:"iban"`
+ Name string `json:"name"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationRecipientCreateResponse struct {
+ RecipientId string `json:"recipient_id"`
+ RequestId string `json:"request_id"`
+}
+
+type PaymentInitiationRecipientGetRequest struct {
+ ClientId string `json:"client_id"`
+ RecipientId string `json:"recipient_id"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationRecipientGetResponse struct {
+ Address string `json:"address"`
+ Bacs string `json:"bacs"`
+ Iban string `json:"iban"`
+ Name string `json:"name"`
+ RecipientId string `json:"recipient_id"`
+ RequestId string `json:"request_id"`
+}
+
+type PaymentInitiationRecipientListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type PaymentInitiationRecipientListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ Recipients string `json:"recipients"`
+ RequestId string `json:"request_id"`
+}
+
+type PaymentInitiationStandingOrderMetadata struct {
+ SupportsStandingOrderEndDate bool `json:"supports_standing_order_end_date"`
+ SupportsStandingOrderNegativeExecutionDays bool `json:"supports_standing_order_negative_execution_days"`
+ ValidStandingOrderIntervals string `json:"valid_standing_order_intervals"`
+}
+
+type PaymentMeta struct {
+ ByOrderOf string `json:"by_order_of"`
+ Payee string `json:"payee"`
+ Payer string `json:"payer"`
+ PaymentMethod string `json:"payment_method"`
+ PaymentProcessor string `json:"payment_processor"`
+ PpdId string `json:"ppd_id"`
+ Reason string `json:"reason"`
+ ReferenceNumber string `json:"reference_number"`
+}
+
+type PaymentProfileCreateRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type PaymentProfileCreateResponse struct {
+ PaymentProfileToken string `json:"payment_profile_token"`
+ RequestId string `json:"request_id"`
+}
+
+type PaymentProfileGetRequest struct {
+ ClientId string `json:"client_id"`
+ PaymentProfileToken string `json:"payment_profile_token"`
+ Secret string `json:"secret"`
+}
+
+type PaymentProfileGetResponse struct {
+ CreatedAt string `json:"created_at"`
+ DeletedAt string `json:"deleted_at"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+}
+
+type PaymentProfileRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ PaymentProfileToken string `json:"payment_profile_token"`
+ Secret string `json:"secret"`
+}
+
+type PaymentProfileRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type PaymentStatusUpdateWebhook struct {
+ AdjustedReference string `json:"adjusted_reference"`
+ AdjustedStartDate string `json:"adjusted_start_date"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewPaymentStatus string `json:"new_payment_status"`
+ OldPaymentStatus string `json:"old_payment_status"`
+ OriginalReference string `json:"original_reference"`
+ OriginalStartDate string `json:"original_start_date"`
+ PaymentId string `json:"payment_id"`
+ Timestamp string `json:"timestamp"`
+ TransactionId string `json:"transaction_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type PayrollAccount struct {
+ Payroll string `json:"payroll"`
+}
+
+type PayrollIncomeAccountData struct {
+ AccountId string `json:"account_id"`
+ PayFrequency string `json:"pay_frequency"`
+ RateOfPay string `json:"rate_of_pay"`
+}
+
+type PayrollIncomeObject struct {
+ AccountId string `json:"account_id"`
+ Form1099s string `json:"form1099s"`
+ PayStubs string `json:"pay_stubs"`
+ W2s string `json:"w2s"`
+}
+
+type PayrollIncomeRateOfPay struct {
+ PayAmount float64 `json:"pay_amount"`
+ PayRate string `json:"pay_rate"`
+}
+
+type PayrollItem struct {
+ Accounts string `json:"accounts"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ PayrollIncome string `json:"payroll_income"`
+ Status string `json:"status"`
+ UpdatedAt string `json:"updated_at"`
+}
+
+type PayrollItemStatus struct {
+ ProcessingStatus string `json:"processing_status"`
+}
+
+type PayrollRiskSignalsItem struct {
+ ItemId string `json:"item_id"`
+ VerificationRiskSignals string `json:"verification_risk_signals"`
+}
+
+type Paystub struct {
+ Deductions string `json:"deductions"`
+ DocId string `json:"doc_id"`
+ Earnings string `json:"earnings"`
+ Employee string `json:"employee"`
+ Employer string `json:"employer"`
+ EmploymentDetails string `json:"employment_details"`
+ IncomeBreakdown string `json:"income_breakdown"`
+ NetPay string `json:"net_pay"`
+ PayPeriodDetails string `json:"pay_period_details"`
+ PaystubDetails string `json:"paystub_details"`
+ YtdEarnings string `json:"ytd_earnings"`
+}
+
+type PaystubAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ Line1 string `json:"line1"`
+ Line2 string `json:"line2"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ StateCode string `json:"state_code"`
+ Street string `json:"street"`
+}
+
+type PaystubDeduction struct {
+ IsPretax bool `json:"is_pretax"`
+ Total float64 `json:"total"`
+ Type string `json:"type"`
+}
+
+type PaystubDetails struct {
+ PayDate string `json:"pay_date"`
+ PayFrequency string `json:"pay_frequency"`
+ PayPeriodEndDate string `json:"pay_period_end_date"`
+ PayPeriodStartDate string `json:"pay_period_start_date"`
+ PaystubProvider string `json:"paystub_provider"`
+}
+
+type PaystubEmployer struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+}
+
+type PaystubOverride struct {
+ Deductions string `json:"deductions"`
+ Earnings string `json:"earnings"`
+ Employee string `json:"employee"`
+ Employer string `json:"employer"`
+ IncomeBreakdown string `json:"income_breakdown"`
+ NetPay string `json:"net_pay"`
+ PayPeriodDetails string `json:"pay_period_details"`
+}
+
+type PaystubOverrideDeductions struct {
+ Breakdown string `json:"breakdown"`
+ Total string `json:"total"`
+}
+
+type PaystubOverrideDeductionsBreakdown struct {
+ Currency string `json:"currency"`
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PaystubOverrideDeductionsTotal struct {
+ Currency string `json:"currency"`
+ CurrentAmount float64 `json:"current_amount"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PaystubOverrideDistributionBreakdown struct {
+ AccountName string `json:"account_name"`
+ BankName string `json:"bank_name"`
+ Currency string `json:"currency"`
+ CurrentAmount float64 `json:"current_amount"`
+ Mask string `json:"mask"`
+ Type string `json:"type"`
+}
+
+type PaystubOverrideEarnings struct {
+ Breakdown string `json:"breakdown"`
+ Total string `json:"total"`
+}
+
+type PaystubOverrideEarningsBreakdown struct {
+ CanonicalDescription string `json:"canonical_description"`
+ Currency string `json:"currency"`
+ CurrentAmount float64 `json:"current_amount"`
+ Description string `json:"description"`
+ Hours float64 `json:"hours"`
+ Rate float64 `json:"rate"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PaystubOverrideEarningsTotal struct {
+ Currency string `json:"currency"`
+ Hours float64 `json:"hours"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PaystubOverrideEmployee struct {
+ Address string `json:"address"`
+ MaritalStatus string `json:"marital_status"`
+ Name string `json:"name"`
+ TaxpayerId string `json:"taxpayer_id"`
+}
+
+type PaystubOverrideEmployeeAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type PaystubOverrideEmployer struct {
+ Address string `json:"address"`
+ Name string `json:"name"`
+}
+
+type PaystubOverrideEmployerAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type PaystubOverrideNetPay struct {
+ Currency string `json:"currency"`
+ Description string `json:"description"`
+ YtdAmount float64 `json:"ytd_amount"`
+}
+
+type PaystubOverridePayPeriodDetails struct {
+ CheckAmount float64 `json:"check_amount"`
+ DistributionBreakdown string `json:"distribution_breakdown"`
+ EndDate string `json:"end_date"`
+ GrossEarnings float64 `json:"gross_earnings"`
+ PayDate string `json:"pay_date"`
+ PayDay string `json:"pay_day"`
+ PayFrequency string `json:"pay_frequency"`
+ StartDate string `json:"start_date"`
+}
+
+type PaystubOverrideTaxpayerID struct {
+ IdMask string `json:"id_mask"`
+ IdType string `json:"id_type"`
+}
+
+type PaystubYTDDetails struct {
+ GrossEarnings float64 `json:"gross_earnings"`
+ NetEarnings float64 `json:"net_earnings"`
+}
+
+type PendingDisconnectWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ Reason string `json:"reason"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type PendingExpirationWebhook struct {
+ ConsentExpirationTime string `json:"consent_expiration_time"`
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type PersonalFinanceCategory struct {
+ ConfidenceLevel string `json:"confidence_level"`
+ Detailed string `json:"detailed"`
+ Primary string `json:"primary"`
+ Version string `json:"version"`
+}
+
+type PhoneNumber struct {
+ Data string `json:"data"`
+ Primary bool `json:"primary"`
+ Type string `json:"type"`
+}
+
+type PhoneNumberMatchScore struct {
+ Score int `json:"score"`
+}
+
+type PhysicalDocumentExtractedData struct {
+ Address string `json:"address"`
+ Category string `json:"category"`
+ DateOfBirth string `json:"date_of_birth"`
+ ExpirationDate string `json:"expiration_date"`
+ IdNumber string `json:"id_number"`
+ IssueDate string `json:"issue_date"`
+ IssuingCountry string `json:"issuing_country"`
+ IssuingRegion string `json:"issuing_region"`
+ Name string `json:"name"`
+}
+
+type PhysicalDocumentExtractedDataAnalysis struct {
+ DateOfBirth string `json:"date_of_birth"`
+ ExpirationDate string `json:"expiration_date"`
+ IssuingCountry string `json:"issuing_country"`
+ Name string `json:"name"`
+}
+
+type PhysicalDocumentImages struct {
+ CroppedBack string `json:"cropped_back"`
+ CroppedFront string `json:"cropped_front"`
+ Face string `json:"face"`
+ OriginalBack string `json:"original_back"`
+ OriginalFront string `json:"original_front"`
+}
+
+type PlaidCheckScore struct {
+ ErrorReason string `json:"error_reason"`
+ ReasonCodes string `json:"reason_codes"`
+ Score int `json:"score"`
+}
+
+type PlaidError struct {
+ Causes string `json:"causes"`
+ DisplayMessage string `json:"display_message"`
+ DocumentationUrl string `json:"documentation_url"`
+ ErrorCode string `json:"error_code"`
+ ErrorCodeReason string `json:"error_code_reason"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+ ProvidedAccountSubtypes string `json:"provided_account_subtypes"`
+ RequestId string `json:"request_id"`
+ RequiredAccountSubtypes string `json:"required_account_subtypes"`
+ Status int `json:"status"`
+ SuggestedAction string `json:"suggested_action"`
+}
+
+type PlatformIds struct {
+ EmployeeId string `json:"employee_id"`
+ PayrollId string `json:"payroll_id"`
+ PositionId string `json:"position_id"`
+}
+
+type PrismCashScore struct {
+ ErrorReason string `json:"error_reason"`
+ Metadata string `json:"metadata"`
+ ModelVersion string `json:"model_version"`
+ ReasonCodes string `json:"reason_codes"`
+ Score int `json:"score"`
+ Version int `json:"version"`
+}
+
+type PrismCashScoreMetadata struct {
+ L1mCreditValueCnt int `json:"l1m_credit_value_cnt"`
+ L1mDebitValueCnt int `json:"l1m_debit_value_cnt"`
+ MaxAge int `json:"max_age"`
+ MaxAgeCredit int `json:"max_age_credit"`
+ MaxAgeDebit int `json:"max_age_debit"`
+ MinAge int `json:"min_age"`
+ MinAgeCredit int `json:"min_age_credit"`
+ MinAgeDebit int `json:"min_age_debit"`
+ NumTrxnCredit int `json:"num_trxn_credit"`
+ NumTrxnDebit int `json:"num_trxn_debit"`
+}
+
+type PrismDetect struct {
+ ErrorReason string `json:"error_reason"`
+ Metadata string `json:"metadata"`
+ ModelVersion string `json:"model_version"`
+ ReasonCodes string `json:"reason_codes"`
+ Score int `json:"score"`
+}
+
+type PrismExtend struct {
+ ErrorReason string `json:"error_reason"`
+ Metadata string `json:"metadata"`
+ ModelVersion string `json:"model_version"`
+ ReasonCodes string `json:"reason_codes"`
+ Score int `json:"score"`
+}
+
+type PrismFirstDetect struct {
+ ErrorReason string `json:"error_reason"`
+ Metadata string `json:"metadata"`
+ ModelVersion string `json:"model_version"`
+ ReasonCodes string `json:"reason_codes"`
+ Score int `json:"score"`
+ Version int `json:"version"`
+}
+
+type PrismInsights struct {
+ ErrorReason string `json:"error_reason"`
+ Result string `json:"result"`
+ Version int `json:"version"`
+}
+
+type PrismInsightsResult struct {
+}
+
+type PrismVersions struct {
+ Cashscore string `json:"cashscore"`
+ Detect string `json:"detect"`
+ Extend string `json:"extend"`
+ Firstdetect string `json:"firstdetect"`
+ Insights string `json:"insights"`
+}
+
+type PrismVersionsDeprecated struct {
+ Cashscore string `json:"cashscore"`
+ Detect string `json:"detect"`
+ Extend string `json:"extend"`
+ Firstdetect string `json:"firstdetect"`
+ Insights string `json:"insights"`
+}
+
+type ProcessorAccountGetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorAccountGetResponse struct {
+ Account string `json:"account"`
+ InstitutionId string `json:"institution_id"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorApexProcessorTokenCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorAuthGetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorAuthGetResponse struct {
+ Account string `json:"account"`
+ Numbers string `json:"numbers"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorBalanceGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorBalanceGetRequestOptions struct {
+ MinLastUpdatedDatetime string `json:"min_last_updated_datetime"`
+}
+
+type ProcessorBalanceGetResponse struct {
+ Account string `json:"account"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorBankTransferCreateRequest struct {
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ CustomTag string `json:"custom_tag"`
+ Description string `json:"description"`
+ IdempotencyKey string `json:"idempotency_key"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+ Type string `json:"type"`
+ User string `json:"user"`
+}
+
+type ProcessorBankTransferCreateResponse struct {
+ BankTransfer string `json:"bank_transfer"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorDefaultUpdateWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewTransactions float64 `json:"new_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorHistoricalUpdateWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewTransactions float64 `json:"new_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorIdentityGetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorIdentityGetResponse struct {
+ Account string `json:"account"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorIdentityMatchRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type ProcessorIdentityMatchResponse struct {
+ Account string `json:"account"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorInitialUpdateWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewTransactions float64 `json:"new_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorInvestmentsHoldingsGetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorInvestmentsHoldingsGetResponse struct {
+ Account string `json:"account"`
+ Holdings string `json:"holdings"`
+ IsInvestmentsFallbackItem bool `json:"is_investments_fallback_item"`
+ RequestId string `json:"request_id"`
+ Securities string `json:"securities"`
+}
+
+type ProcessorInvestmentsTransactionsGetRequest struct {
+ ClientId string `json:"client_id"`
+ EndDate string `json:"end_date"`
+ Options string `json:"options"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type ProcessorInvestmentsTransactionsGetResponse struct {
+ Account string `json:"account"`
+ InvestmentTransactions string `json:"investment_transactions"`
+ IsInvestmentsFallbackItem bool `json:"is_investments_fallback_item"`
+ RequestId string `json:"request_id"`
+ Securities string `json:"securities"`
+ TotalInvestmentTransactions int `json:"total_investment_transactions"`
+}
+
+type ProcessorLiabilitiesGetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorLiabilitiesGetResponse struct {
+ Account string `json:"account"`
+ Liabilities string `json:"liabilities"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorNumber struct {
+ Ach string `json:"ach"`
+ Bacs string `json:"bacs"`
+ Eft string `json:"eft"`
+ International string `json:"international"`
+}
+
+type ProcessorRecurringTransactionsUpdateWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorSignalDecisionReportRequest struct {
+ AmountInstantlyAvailable float64 `json:"amount_instantly_available"`
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ DaysFundsOnHold int `json:"days_funds_on_hold"`
+ DecisionOutcome string `json:"decision_outcome"`
+ Initiated bool `json:"initiated"`
+ PaymentMethod string `json:"payment_method"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorSignalDecisionReportResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorSignalEvaluateRequest struct {
+ Amount float64 `json:"amount"`
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ ClientUserId string `json:"client_user_id"`
+ DefaultPaymentMethod string `json:"default_payment_method"`
+ Device string `json:"device"`
+ IsRecurring bool `json:"is_recurring"`
+ ProcessorToken string `json:"processor_token"`
+ RulesetKey string `json:"ruleset_key"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+ UserPresent bool `json:"user_present"`
+}
+
+type ProcessorSignalEvaluateResponse struct {
+ CoreAttributes string `json:"core_attributes"`
+ RequestId string `json:"request_id"`
+ Ruleset string `json:"ruleset"`
+ Scores string `json:"scores"`
+ Warnings string `json:"warnings"`
+}
+
+type ProcessorSignalPrepareRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorSignalPrepareResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorSignalReturnReportRequest struct {
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ ProcessorToken string `json:"processor_token"`
+ ReturnCode string `json:"return_code"`
+ ReturnedAt string `json:"returned_at"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorSignalReturnReportResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorStripeBankAccountTokenCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorStripeBankAccountTokenCreateResponse struct {
+ RequestId string `json:"request_id"`
+ StripeBankAccountToken string `json:"stripe_bank_account_token"`
+}
+
+type ProcessorSyncUpdatesAvailableWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ HistoricalUpdateComplete bool `json:"historical_update_complete"`
+ InitialUpdateComplete bool `json:"initial_update_complete"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorTokenCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ ClientId string `json:"client_id"`
+ Processor string `json:"processor"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorTokenCreateResponse struct {
+ ProcessorToken string `json:"processor_token"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorTokenPermissionsGetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorTokenPermissionsGetResponse struct {
+ Products string `json:"products"`
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorTokenPermissionsSetRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Products string `json:"products"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorTokenPermissionsSetResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorTokenWebhookUpdate struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewWebhookUrl string `json:"new_webhook_url"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorTokenWebhookUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type ProcessorTokenWebhookUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorTransactionsGetRequest struct {
+ ClientId string `json:"client_id"`
+ EndDate string `json:"end_date"`
+ Options string `json:"options"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type ProcessorTransactionsGetRequestOptions struct {
+ Count int `json:"count"`
+ IncludeLogoAndCounterpartyBeta bool `json:"include_logo_and_counterparty_beta"`
+ IncludeOriginalDescription bool `json:"include_original_description"`
+ IncludePersonalFinanceCategory bool `json:"include_personal_finance_category"`
+ IncludePersonalFinanceCategoryBeta bool `json:"include_personal_finance_category_beta"`
+ Offset int `json:"offset"`
+}
+
+type ProcessorTransactionsGetResponse struct {
+ Account string `json:"account"`
+ RequestId string `json:"request_id"`
+ TotalTransactions int `json:"total_transactions"`
+ Transactions string `json:"transactions"`
+}
+
+type ProcessorTransactionsRecurringGetRequest struct {
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorTransactionsRecurringGetResponse struct {
+ InflowStreams string `json:"inflow_streams"`
+ OutflowStreams string `json:"outflow_streams"`
+ PersonalFinanceCategoryVersion string `json:"personal_finance_category_version"`
+ RequestId string `json:"request_id"`
+ UpdatedDatetime string `json:"updated_datetime"`
+}
+
+type ProcessorTransactionsRefreshRequest struct {
+ ClientId string `json:"client_id"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorTransactionsRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ProcessorTransactionsRemovedWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ RemovedTransactions string `json:"removed_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProcessorTransactionsSyncRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Options string `json:"options"`
+ ProcessorToken string `json:"processor_token"`
+ Secret string `json:"secret"`
+}
+
+type ProcessorTransactionsSyncResponse struct {
+ Account string `json:"account"`
+ Added string `json:"added"`
+ HasMore bool `json:"has_more"`
+ Modified string `json:"modified"`
+ NextCursor string `json:"next_cursor"`
+ Removed string `json:"removed"`
+ RequestId string `json:"request_id"`
+ TransactionsUpdateStatus string `json:"transactions_update_status"`
+}
+
+type ProductAccess struct {
+ AccountsDetailsTransactions bool `json:"accounts_details_transactions"`
+ AccountsRoutingNumber bool `json:"accounts_routing_number"`
+ AccountsStatements bool `json:"accounts_statements"`
+ AccountsTaxStatements bool `json:"accounts_tax_statements"`
+ Auth bool `json:"auth"`
+ CustomersProfiles bool `json:"customers_profiles"`
+ Identity bool `json:"identity"`
+ Statements bool `json:"statements"`
+ Transactions bool `json:"transactions"`
+}
+
+type ProductPermissionsRequiredAuthWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProductPermissionsRequiredIdentityWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProductStatus struct {
+ Breakdown string `json:"breakdown"`
+ LastStatusChange string `json:"last_status_change"`
+ Status string `json:"status"`
+}
+
+type ProductStatusBreakdown struct {
+ ErrorInstitution float64 `json:"error_institution"`
+ ErrorPlaid float64 `json:"error_plaid"`
+ RefreshInterval string `json:"refresh_interval"`
+ Success float64 `json:"success"`
+}
+
+type ProfileNetworkStatusGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type ProfileNetworkStatusGetResponse struct {
+ NetworkStatus string `json:"network_status"`
+ RequestId string `json:"request_id"`
+}
+
+type ProjectedIncomeSummaryFieldNumber struct {
+ Value float64 `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type ProtectAppVisitEvent struct {
+}
+
+type ProtectBankAccount struct {
+ AccountId string `json:"account_id"`
+ AccountNumber string `json:"account_number"`
+ RoutingNumber string `json:"routing_number"`
+}
+
+type ProtectComputeRequest struct {
+ ClientId string `json:"client_id"`
+ Model string `json:"model"`
+ ModelInputs string `json:"model_inputs"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type ProtectComputeResponse struct {
+ Attributes string `json:"attributes"`
+ Model string `json:"model"`
+ RequestId string `json:"request_id"`
+ Score int `json:"score"`
+}
+
+type ProtectEvent struct {
+ AppVisit string `json:"app_visit"`
+ ProtectSessionId string `json:"protect_session_id"`
+ Timestamp string `json:"timestamp"`
+ UserSignIn string `json:"user_sign_in"`
+ UserSignUp string `json:"user_sign_up"`
+}
+
+type ProtectEventGetRequest struct {
+ ClientId string `json:"client_id"`
+ EventId string `json:"event_id"`
+ Secret string `json:"secret"`
+}
+
+type ProtectEventGetResponse struct {
+ EventId string `json:"event_id"`
+ FraudAttributes string `json:"fraud_attributes"`
+ RequestId string `json:"request_id"`
+ Timestamp string `json:"timestamp"`
+ TrustIndex string `json:"trust_index"`
+}
+
+type ProtectEventSendRequest struct {
+ ClientId string `json:"client_id"`
+ Event string `json:"event"`
+ ProtectSessionId string `json:"protect_session_id"`
+ RequestTrustIndex bool `json:"request_trust_index"`
+ Secret string `json:"secret"`
+ Timestamp string `json:"timestamp"`
+}
+
+type ProtectEventSendResponse struct {
+ EventId string `json:"event_id"`
+ FraudAttributes string `json:"fraud_attributes"`
+ RequestId string `json:"request_id"`
+ TrustIndex string `json:"trust_index"`
+}
+
+type ProtectIncidentAmount struct {
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Value float64 `json:"value"`
+}
+
+type ProtectIncidentEvent struct {
+ AccessToken string `json:"access_token"`
+ Amount string `json:"amount"`
+ IdvSessionId string `json:"idv_session_id"`
+ InternalReference string `json:"internal_reference"`
+ LinkSessionId string `json:"link_session_id"`
+ ProtectEventId string `json:"protect_event_id"`
+ SignalClientTransactionId string `json:"signal_client_transaction_id"`
+ Time string `json:"time"`
+}
+
+type ProtectIncidentEventResponse struct {
+ Amount string `json:"amount"`
+ IdvSessionId string `json:"idv_session_id"`
+ InternalReference string `json:"internal_reference"`
+ ItemId string `json:"item_id"`
+ LinkSessionId string `json:"link_session_id"`
+ ProtectEventId string `json:"protect_event_id"`
+ SignalClientTransactionId string `json:"signal_client_transaction_id"`
+ Time string `json:"time"`
+}
+
+type ProtectLinkModelInputs struct {
+ LinkSessionId string `json:"link_session_id"`
+ RequireExtractedData bool `json:"require_extracted_data"`
+}
+
+type ProtectModelInputs struct {
+ Link string `json:"link"`
+ Sdk string `json:"sdk"`
+}
+
+type ProtectReport struct {
+ AchReturnCode string `json:"ach_return_code"`
+ BankAccount string `json:"bank_account"`
+ CreatedAt string `json:"created_at"`
+ IncidentEvent string `json:"incident_event"`
+ Notes string `json:"notes"`
+ ReportConfidence string `json:"report_confidence"`
+ ReportId string `json:"report_id"`
+ ReportSource string `json:"report_source"`
+ ReportType string `json:"report_type"`
+}
+
+type ProtectReportCreateRequest struct {
+ AchReturnCode string `json:"ach_return_code"`
+ BankAccount string `json:"bank_account"`
+ ClientId string `json:"client_id"`
+ IncidentEvent string `json:"incident_event"`
+ Notes string `json:"notes"`
+ ReportConfidence string `json:"report_confidence"`
+ ReportSource string `json:"report_source"`
+ ReportType string `json:"report_type"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type ProtectReportCreateResponse struct {
+ ReportId string `json:"report_id"`
+ RequestId string `json:"request_id"`
+}
+
+type ProtectSDKModelInputs struct {
+ SdkSessionId string `json:"sdk_session_id"`
+}
+
+type ProtectUser struct {
+ ClientUserId string `json:"client_user_id"`
+ UserId string `json:"user_id"`
+}
+
+type ProtectUserEventWebhook struct {
+ ClientUserId string `json:"client_user_id"`
+ Environment string `json:"environment"`
+ EventId string `json:"event_id"`
+ EventType string `json:"event_type"`
+ Timestamp string `json:"timestamp"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type ProtectUserInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type ProtectUserInsightsGetResponse struct {
+ LatestScoredEvent string `json:"latest_scored_event"`
+ Reports string `json:"reports"`
+ RequestId string `json:"request_id"`
+ UserId string `json:"user_id"`
+}
+
+type ProtectUserSignInEvent struct {
+}
+
+type ProtectUserSignUpEvent struct {
+}
+
+type ProviderBusinessAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ IsPrimary bool `json:"is_primary"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type Recaptcha_RequiredError struct {
+ CommonCauses string `json:"common_causes"`
+ DisplayMessage string `json:"display_message"`
+ ErrorCode string `json:"error_code"`
+ ErrorType string `json:"error_type"`
+ HttpCode string `json:"http_code"`
+ LinkUserExperience string `json:"link_user_experience"`
+ TroubleshootingSteps string `json:"troubleshooting_steps"`
+}
+
+type RecipientBACS struct {
+ Account string `json:"account"`
+ SortCode string `json:"sort_code"`
+}
+
+type RecipientBACSNullable struct {
+ Account string `json:"account"`
+ SortCode string `json:"sort_code"`
+}
+
+type Recurrence struct {
+ Frequency string `json:"frequency"`
+ IsRecurring bool `json:"is_recurring"`
+}
+
+type RecurringCancelledWebhook struct {
+ Environment string `json:"environment"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type RecurringInsightsStream struct {
+ AverageAmount string `json:"average_amount"`
+ AverageDaysApart float64 `json:"average_days_apart"`
+ Description string `json:"description"`
+ Frequency string `json:"frequency"`
+ IsActive bool `json:"is_active"`
+ MerchantName string `json:"merchant_name"`
+ NewestTransactionAmount string `json:"newest_transaction_amount"`
+ NewestTransactionDate string `json:"newest_transaction_date"`
+ OldestTransactionDate string `json:"oldest_transaction_date"`
+ PersonalFinanceCategoryDetailed string `json:"personal_finance_category_detailed"`
+ PersonalFinanceCategoryPrimary string `json:"personal_finance_category_primary"`
+ Status string `json:"status"`
+ StreamId string `json:"stream_id"`
+ TransactionCount int `json:"transaction_count"`
+ TransactionIds string `json:"transaction_ids"`
+}
+
+type RecurringNewTransferWebhook struct {
+ Environment string `json:"environment"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ TransferId string `json:"transfer_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type RecurringTransactions struct {
+ InflowStreams string `json:"inflow_streams"`
+ OutflowStreams string `json:"outflow_streams"`
+}
+
+type RecurringTransactionsUpdateWebhook struct {
+ AccountIds string `json:"account_ids"`
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type RecurringTransfer struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ Description string `json:"description"`
+ FundingAccountId string `json:"funding_account_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Network string `json:"network"`
+ NextOriginationDate string `json:"next_origination_date"`
+ OriginationAccountId string `json:"origination_account_id"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ Schedule string `json:"schedule"`
+ Status string `json:"status"`
+ TestClockId string `json:"test_clock_id"`
+ TransferIds string `json:"transfer_ids"`
+ Type string `json:"type"`
+ User string `json:"user"`
+}
+
+type RecurringTransferNullable struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ Description string `json:"description"`
+ FundingAccountId string `json:"funding_account_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Network string `json:"network"`
+ NextOriginationDate string `json:"next_origination_date"`
+ OriginationAccountId string `json:"origination_account_id"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ Schedule string `json:"schedule"`
+ Status string `json:"status"`
+ TestClockId string `json:"test_clock_id"`
+ TransferIds string `json:"transfer_ids"`
+ Type string `json:"type"`
+ User string `json:"user"`
+}
+
+type RecurringTransferSkippedWebhook struct {
+ AuthorizationDecision string `json:"authorization_decision"`
+ AuthorizationDecisionRationaleCode string `json:"authorization_decision_rationale_code"`
+ Environment string `json:"environment"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ SkippedOriginationDate string `json:"skipped_origination_date"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type RefreshResult struct {
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ Product string `json:"product"`
+}
+
+type RemovedTransaction struct {
+ AccountId string `json:"account_id"`
+ TransactionId string `json:"transaction_id"`
+}
+
+type ReportingInformation struct {
+ ReportingInformationIdentifier string `json:"ReportingInformationIdentifier"`
+}
+
+type RequestBusinessAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type ResponseBusinessAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type RiskCheckBehavior struct {
+ BotDetected string `json:"bot_detected"`
+ FraudRingDetected string `json:"fraud_ring_detected"`
+ RiskLevel string `json:"risk_level"`
+ UserInteractions string `json:"user_interactions"`
+}
+
+type RiskCheckDetails struct {
+ Behavior string `json:"behavior"`
+ Devices string `json:"devices"`
+ Email string `json:"email"`
+ FacialDuplicates string `json:"facial_duplicates"`
+ IdentityAbuseSignals string `json:"identity_abuse_signals"`
+ Network string `json:"network"`
+ Phone string `json:"phone"`
+ Status string `json:"status"`
+ TrustIndexScore int `json:"trust_index_score"`
+}
+
+type RiskCheckDevice struct {
+ Factors string `json:"factors"`
+ IpProxyType string `json:"ip_proxy_type"`
+ IpSpamListCount int `json:"ip_spam_list_count"`
+ IpTimezoneOffset string `json:"ip_timezone_offset"`
+ RiskLevel string `json:"risk_level"`
+}
+
+type RiskCheckEmail struct {
+ BreachCount int `json:"breach_count"`
+ DomainIsCustom string `json:"domain_is_custom"`
+ DomainIsDisposable string `json:"domain_is_disposable"`
+ DomainIsFreeProvider string `json:"domain_is_free_provider"`
+ DomainRegisteredAt string `json:"domain_registered_at"`
+ Factors string `json:"factors"`
+ FirstBreachedAt string `json:"first_breached_at"`
+ IsDeliverable string `json:"is_deliverable"`
+ LastBreachedAt string `json:"last_breached_at"`
+ LinkedServices string `json:"linked_services"`
+ RiskLevel string `json:"risk_level"`
+ TopLevelDomainIsSuspicious string `json:"top_level_domain_is_suspicious"`
+}
+
+type RiskCheckFacialDuplicate struct {
+ Id string `json:"id"`
+ MatchedAfterCompleted bool `json:"matched_after_completed"`
+ Similarity int `json:"similarity"`
+}
+
+type RiskCheckIdentityAbuseSignals struct {
+ StolenIdentity string `json:"stolen_identity"`
+ SyntheticIdentity string `json:"synthetic_identity"`
+}
+
+type RiskCheckNetwork struct {
+ Factors string `json:"factors"`
+ RiskLevel string `json:"risk_level"`
+}
+
+type RiskCheckPhone struct {
+ Factors string `json:"factors"`
+ LinkedServices string `json:"linked_services"`
+ RiskLevel string `json:"risk_level"`
+}
+
+type RiskCheckStolenIdentity struct {
+ RiskLevel string `json:"risk_level"`
+ Score int `json:"score"`
+}
+
+type RiskCheckSyntheticIdentity struct {
+ FirstPartySyntheticFraud string `json:"first_party_synthetic_fraud"`
+ RiskLevel string `json:"risk_level"`
+ Score int `json:"score"`
+ ThirdPartySyntheticFraud string `json:"third_party_synthetic_fraud"`
+}
+
+type RiskIndicators struct {
+ BankPenalties string `json:"bank_penalties"`
+ Gambling string `json:"gambling"`
+ LoanDisbursements string `json:"loan_disbursements"`
+ LoanPayments string `json:"loan_payments"`
+ NegativeBalance string `json:"negative_balance"`
+}
+
+type RiskProfile struct {
+ Key string `json:"key"`
+ Outcome string `json:"outcome"`
+}
+
+type RiskReason struct {
+ Code string `json:"code"`
+ Description string `json:"description"`
+}
+
+type RiskSignalDocumentReference struct {
+ DocumentId string `json:"document_id"`
+ DocumentName string `json:"document_name"`
+ DocumentType string `json:"document_type"`
+ FileType string `json:"file_type"`
+ Status string `json:"status"`
+}
+
+type Role struct {
+ ROLEDETAIL string `json:"ROLE_DETAIL"`
+}
+
+type RoleDetail struct {
+ PartyRoleType string `json:"PartyRoleType"`
+}
+
+type Roles struct {
+ ROLE string `json:"ROLE"`
+}
+
+type RuleDetails struct {
+ CustomActionKey string `json:"custom_action_key"`
+ InternalNote string `json:"internal_note"`
+}
+
+type Ruleset struct {
+ Outcome string `json:"outcome"`
+ Result string `json:"result"`
+ RulesetKey string `json:"ruleset_key"`
+ TriggeredRuleDetails string `json:"triggered_rule_details"`
+}
+
+type SMSVerification struct {
+ Attempt int `json:"attempt"`
+ DeliveryAttemptCount int `json:"delivery_attempt_count"`
+ InitiallySentAt string `json:"initially_sent_at"`
+ LastSentAt string `json:"last_sent_at"`
+ PhoneNumber string `json:"phone_number"`
+ RedactedAt string `json:"redacted_at"`
+ SolveAttemptCount int `json:"solve_attempt_count"`
+ Status string `json:"status"`
+}
+
+type SandboxBankIncomeFireWebhookRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookFields string `json:"webhook_fields"`
+ WebhookOverride string `json:"webhook_override"`
+}
+
+type SandboxBankIncomeFireWebhookResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxBankIncomeWebhookFireRequestWebhookFields struct {
+ BankIncomeRefreshCompleteResult string `json:"bank_income_refresh_complete_result"`
+ UserId string `json:"user_id"`
+}
+
+type SandboxBankTransferFireWebhookRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxBankTransferFireWebhookResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxBankTransferSimulateRequest struct {
+ BankTransferId string `json:"bank_transfer_id"`
+ ClientId string `json:"client_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ Secret string `json:"secret"`
+}
+
+type SandboxBankTransferSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxCraCashflowUpdatesUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+ WebhookCodes string `json:"webhook_codes"`
+}
+
+type SandboxCraCashflowUpdatesUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxIncomeFireWebhookRequest struct {
+ ClientId string `json:"client_id"`
+ ItemId string `json:"item_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ VerificationStatus string `json:"verification_status"`
+ Webhook string `json:"webhook"`
+ WebhookCode string `json:"webhook_code"`
+}
+
+type SandboxIncomeFireWebhookResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxItemFireWebhookRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type SandboxItemFireWebhookResponse struct {
+ RequestId string `json:"request_id"`
+ WebhookFired bool `json:"webhook_fired"`
+}
+
+type SandboxItemResetLoginRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type SandboxItemResetLoginResponse struct {
+ RequestId string `json:"request_id"`
+ ResetLogin bool `json:"reset_login"`
+}
+
+type SandboxItemSetVerificationStatusRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type SandboxItemSetVerificationStatusResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxOauthSelectAccountsRequest struct {
+ Accounts string `json:"accounts"`
+ OauthStateId string `json:"oauth_state_id"`
+}
+
+type SandboxOauthSelectAccountsResponse struct {
+}
+
+type SandboxPaymentProfileResetLoginRequest struct {
+ ClientId string `json:"client_id"`
+ PaymentProfileToken string `json:"payment_profile_token"`
+ Secret string `json:"secret"`
+}
+
+type SandboxPaymentProfileResetLoginResponse struct {
+ RequestId string `json:"request_id"`
+ ResetLogin bool `json:"reset_login"`
+}
+
+type SandboxPaymentSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ PaymentId string `json:"payment_id"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxPaymentSimulateResponse struct {
+ NewStatus string `json:"new_status"`
+ OldStatus string `json:"old_status"`
+ RequestId string `json:"request_id"`
+}
+
+type SandboxProcessorTokenCreateRequest struct {
+ ClientId string `json:"client_id"`
+ InstitutionId string `json:"institution_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type SandboxProcessorTokenCreateRequestOptions struct {
+ OverridePassword string `json:"override_password"`
+ OverrideUsername string `json:"override_username"`
+}
+
+type SandboxProcessorTokenCreateResponse struct {
+ ProcessorToken string `json:"processor_token"`
+ RequestId string `json:"request_id"`
+}
+
+type SandboxPublicTokenCreateRequest struct {
+ ClientId string `json:"client_id"`
+ InitialProducts string `json:"initial_products"`
+ InstitutionId string `json:"institution_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type SandboxPublicTokenCreateRequestIncomeVerificationBankIncome struct {
+ DaysRequested int `json:"days_requested"`
+}
+
+type SandboxPublicTokenCreateRequestOptions struct {
+ IncomeVerification string `json:"income_verification"`
+ OverridePassword string `json:"override_password"`
+ OverrideUsername string `json:"override_username"`
+ Statements string `json:"statements"`
+ Transactions string `json:"transactions"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxPublicTokenCreateRequestOptionsIncomeVerification struct {
+ BankIncome string `json:"bank_income"`
+ IncomeSourceTypes string `json:"income_source_types"`
+}
+
+type SandboxPublicTokenCreateRequestOptionsStatements struct {
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type SandboxPublicTokenCreateRequestOptionsTransactions struct {
+ DaysRequested int `json:"days_requested"`
+ EndDate string `json:"end_date"`
+ StartDate string `json:"start_date"`
+}
+
+type SandboxPublicTokenCreateResponse struct {
+ PublicToken string `json:"public_token"`
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransactionsCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ Transactions string `json:"transactions"`
+}
+
+type SandboxTransactionsCreateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferFireWebhookRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxTransferFireWebhookResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferLedgerDepositSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ Secret string `json:"secret"`
+ SweepId string `json:"sweep_id"`
+}
+
+type SandboxTransferLedgerDepositSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferLedgerSimulateAvailableRequest struct {
+ ClientId string `json:"client_id"`
+ LedgerId string `json:"ledger_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxTransferLedgerSimulateAvailableResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferLedgerWithdrawSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ Secret string `json:"secret"`
+ SweepId string `json:"sweep_id"`
+}
+
+type SandboxTransferLedgerWithdrawSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferRefundSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ RefundId string `json:"refund_id"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxTransferRefundSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferRepaymentSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type SandboxTransferRepaymentSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferRfpSimulateRequest struct {
+ Action string `json:"action"`
+ Amount string `json:"amount"`
+ ClientName string `json:"client_name"`
+ TransferId string `json:"transfer_id"`
+}
+
+type SandboxTransferRfpSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ TransferId string `json:"transfer_id"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxTransferSimulateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferSweepSimulateRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ Webhook string `json:"webhook"`
+}
+
+type SandboxTransferSweepSimulateResponse struct {
+ RequestId string `json:"request_id"`
+ Sweep string `json:"sweep"`
+}
+
+type SandboxTransferTestClockAdvanceRequest struct {
+ ClientId string `json:"client_id"`
+ NewVirtualTime string `json:"new_virtual_time"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+}
+
+type SandboxTransferTestClockAdvanceResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SandboxTransferTestClockCreateRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ VirtualTime string `json:"virtual_time"`
+}
+
+type SandboxTransferTestClockCreateResponse struct {
+ RequestId string `json:"request_id"`
+ TestClock string `json:"test_clock"`
+}
+
+type SandboxTransferTestClockGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+}
+
+type SandboxTransferTestClockGetResponse struct {
+ RequestId string `json:"request_id"`
+ TestClock string `json:"test_clock"`
+}
+
+type SandboxTransferTestClockListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndVirtualTime string `json:"end_virtual_time"`
+ Offset int `json:"offset"`
+ Secret string `json:"secret"`
+ StartVirtualTime string `json:"start_virtual_time"`
+}
+
+type SandboxTransferTestClockListResponse struct {
+ RequestId string `json:"request_id"`
+ TestClocks string `json:"test_clocks"`
+}
+
+type SandboxUserResetLoginRequest struct {
+ ClientId string `json:"client_id"`
+ ItemIds string `json:"item_ids"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type SandboxUserResetLoginResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type Scopes struct {
+ Accounts string `json:"accounts"`
+ NewAccounts bool `json:"new_accounts"`
+ ProductAccess string `json:"product_access"`
+}
+
+type ScopesNullable struct {
+ Accounts string `json:"accounts"`
+ NewAccounts bool `json:"new_accounts"`
+ ProductAccess string `json:"product_access"`
+}
+
+type ScreeningHitAnalysis struct {
+ DatesOfBirth string `json:"dates_of_birth"`
+ Documents string `json:"documents"`
+ Locations string `json:"locations"`
+ Names string `json:"names"`
+ SearchTermsVersion int `json:"search_terms_version"`
+}
+
+type ScreeningHitData struct {
+ DatesOfBirth string `json:"dates_of_birth"`
+ Documents string `json:"documents"`
+ Locations string `json:"locations"`
+ Names string `json:"names"`
+}
+
+type ScreeningHitDateOfBirthItem struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type ScreeningHitDocumentsItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type ScreeningHitNamesItems struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+}
+
+type ScreeningStatusUpdatedWebhook struct {
+ Environment string `json:"environment"`
+ ScreeningId string `json:"screening_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type Security struct {
+ ClosePrice float64 `json:"close_price"`
+ ClosePriceAsOf string `json:"close_price_as_of"`
+ Cusip string `json:"cusip"`
+ FixedIncome string `json:"fixed_income"`
+ Industry string `json:"industry"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionSecurityId string `json:"institution_security_id"`
+ IsCashEquivalent bool `json:"is_cash_equivalent"`
+ Isin string `json:"isin"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MarketIdentifierCode string `json:"market_identifier_code"`
+ Name string `json:"name"`
+ OptionContract string `json:"option_contract"`
+ ProxySecurityId string `json:"proxy_security_id"`
+ Sector string `json:"sector"`
+ SecurityId string `json:"security_id"`
+ Sedol string `json:"sedol"`
+ Subtype string `json:"subtype"`
+ TickerSymbol string `json:"ticker_symbol"`
+ Type string `json:"type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ UpdateDatetime string `json:"update_datetime"`
+}
+
+type SecurityOverride struct {
+ Currency string `json:"currency"`
+ Cusip string `json:"cusip"`
+ Isin string `json:"isin"`
+ Name string `json:"name"`
+ Sedol string `json:"sedol"`
+ TickerSymbol string `json:"ticker_symbol"`
+}
+
+type SelfieAnalysis struct {
+ DocumentComparison string `json:"document_comparison"`
+ FacialAnalysis string `json:"facial_analysis"`
+ LivenessCheck string `json:"liveness_check"`
+}
+
+type SelfieAnalysisFacialAnalysis struct {
+ Forehead string `json:"forehead"`
+ Jaw string `json:"jaw"`
+ LeftBrow string `json:"left_brow"`
+ LeftCheek string `json:"left_cheek"`
+ LeftEye string `json:"left_eye"`
+ MiddleForehead string `json:"middle_forehead"`
+ Mouth string `json:"mouth"`
+ Nose string `json:"nose"`
+ Philtrum string `json:"philtrum"`
+ RightBrow string `json:"right_brow"`
+ RightCheek string `json:"right_cheek"`
+ RightEye string `json:"right_eye"`
+}
+
+type SelfieCapture struct {
+ ImageUrl string `json:"image_url"`
+ VideoUrl string `json:"video_url"`
+}
+
+type SelfieCheck struct {
+ Selfies string `json:"selfies"`
+ Status string `json:"status"`
+}
+
+type SelfieCheckSelfie struct {
+ Analysis string `json:"analysis"`
+ Attempt int `json:"attempt"`
+ Capture string `json:"capture"`
+ Status string `json:"status"`
+}
+
+type SenderBACSNullable struct {
+ Account string `json:"account"`
+ SortCode string `json:"sort_code"`
+}
+
+type Service struct {
+ STATUSES string `json:"STATUSES"`
+ VERIFICATIONOFASSET string `json:"VERIFICATION_OF_ASSET"`
+}
+
+type ServiceProductFulfillment struct {
+ SERVICEPRODUCTFULFILLMENTDETAIL string `json:"SERVICE_PRODUCT_FULFILLMENT_DETAIL"`
+}
+
+type ServiceProductFulfillmentDetail struct {
+ ServiceProductFulfillmentIdentifier string `json:"ServiceProductFulfillmentIdentifier"`
+ VendorOrderIdentifier string `json:"VendorOrderIdentifier"`
+}
+
+type ServicerAddressData struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type Services struct {
+ SERVICE string `json:"SERVICE"`
+}
+
+type SessionTokenCreateRequest struct {
+ AndroidPackageName string `json:"android_package_name"`
+ ClientId string `json:"client_id"`
+ RedirectUri string `json:"redirect_uri"`
+ Secret string `json:"secret"`
+ TemplateId string `json:"template_id"`
+ User string `json:"user"`
+ UserId string `json:"user_id"`
+ Webhook string `json:"webhook"`
+}
+
+type SessionTokenCreateRequestUser struct {
+ ClientUserId string `json:"client_user_id"`
+ UserId string `json:"user_id"`
+}
+
+type SessionTokenCreateResponse struct {
+ Link string `json:"link"`
+ RequestId string `json:"request_id"`
+}
+
+type SessionTokenCreateResponseLink struct {
+ Expiration string `json:"expiration"`
+ LinkToken string `json:"link_token"`
+ UserId string `json:"user_id"`
+}
+
+type SignalAddressData struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type SignalDecisionReportRequest struct {
+ AmountInstantlyAvailable float64 `json:"amount_instantly_available"`
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ DaysFundsOnHold int `json:"days_funds_on_hold"`
+ DecisionOutcome string `json:"decision_outcome"`
+ Initiated bool `json:"initiated"`
+ PaymentMethod string `json:"payment_method"`
+ Secret string `json:"secret"`
+ SubmittedAt string `json:"submitted_at"`
+}
+
+type SignalDecisionReportResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SignalDevice struct {
+ IpAddress string `json:"ip_address"`
+ UserAgent string `json:"user_agent"`
+}
+
+type SignalEvaluateCoreAttributes struct {
+ AddressChangeCount28d int `json:"address_change_count_28d"`
+ AddressChangeCount90d int `json:"address_change_count_90d"`
+ AvailableBalance float64 `json:"available_balance"`
+ BalanceLastUpdated string `json:"balance_last_updated"`
+ BalanceToTransactionAmountRatio float64 `json:"balance_to_transaction_amount_ratio"`
+ CreditTransactionsCount10d int `json:"credit_transactions_count_10d"`
+ CreditTransactionsCount30d int `json:"credit_transactions_count_30d"`
+ CreditTransactionsCount60d int `json:"credit_transactions_count_60d"`
+ CreditTransactionsCount90d int `json:"credit_transactions_count_90d"`
+ CurrentBalance float64 `json:"current_balance"`
+ DaysSinceAccountOpening int `json:"days_since_account_opening"`
+ DaysSinceFirstPlaidConnection int `json:"days_since_first_plaid_connection"`
+ DaysWithNegativeBalanceCount90d int `json:"days_with_negative_balance_count_90d"`
+ DebitTransactionsCount10d int `json:"debit_transactions_count_10d"`
+ DebitTransactionsCount30d int `json:"debit_transactions_count_30d"`
+ DebitTransactionsCount60d int `json:"debit_transactions_count_60d"`
+ DebitTransactionsCount90d int `json:"debit_transactions_count_90d"`
+ DistinctIpAddressesCount30d int `json:"distinct_ip_addresses_count_30d"`
+ DistinctIpAddressesCount3d int `json:"distinct_ip_addresses_count_3d"`
+ DistinctIpAddressesCount7d int `json:"distinct_ip_addresses_count_7d"`
+ DistinctIpAddressesCount90d int `json:"distinct_ip_addresses_count_90d"`
+ DistinctSslTlsConnectionSessionsCount30d int `json:"distinct_ssl_tls_connection_sessions_count_30d"`
+ DistinctSslTlsConnectionSessionsCount3d int `json:"distinct_ssl_tls_connection_sessions_count_3d"`
+ DistinctSslTlsConnectionSessionsCount7d int `json:"distinct_ssl_tls_connection_sessions_count_7d"`
+ DistinctSslTlsConnectionSessionsCount90d int `json:"distinct_ssl_tls_connection_sessions_count_90d"`
+ DistinctUserAgentsCount30d int `json:"distinct_user_agents_count_30d"`
+ DistinctUserAgentsCount3d int `json:"distinct_user_agents_count_3d"`
+ DistinctUserAgentsCount7d int `json:"distinct_user_agents_count_7d"`
+ DistinctUserAgentsCount90d int `json:"distinct_user_agents_count_90d"`
+ EmailChangeCount28d int `json:"email_change_count_28d"`
+ EmailChangeCount90d int `json:"email_change_count_90d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount30d int `json:"failed_plaid_non_oauth_authentication_attempts_count_30d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount3d int `json:"failed_plaid_non_oauth_authentication_attempts_count_3d"`
+ FailedPlaidNonOauthAuthenticationAttemptsCount7d int `json:"failed_plaid_non_oauth_authentication_attempts_count_7d"`
+ IsAccountClosed bool `json:"is_account_closed"`
+ IsAccountFrozenOrRestricted bool `json:"is_account_frozen_or_restricted"`
+ IsSavingsOrMoneyMarketAccount bool `json:"is_savings_or_money_market_account"`
+ NsfOverdraftTransactionsCount30d int `json:"nsf_overdraft_transactions_count_30d"`
+ NsfOverdraftTransactionsCount60d int `json:"nsf_overdraft_transactions_count_60d"`
+ NsfOverdraftTransactionsCount7d int `json:"nsf_overdraft_transactions_count_7d"`
+ NsfOverdraftTransactionsCount90d int `json:"nsf_overdraft_transactions_count_90d"`
+ P10EodBalance30d float64 `json:"p10_eod_balance_30d"`
+ P10EodBalance31dTo60d float64 `json:"p10_eod_balance_31d_to_60d"`
+ P10EodBalance60d float64 `json:"p10_eod_balance_60d"`
+ P10EodBalance61dTo90d float64 `json:"p10_eod_balance_61d_to_90d"`
+ P10EodBalance90d float64 `json:"p10_eod_balance_90d"`
+ P50CreditTransactionsAmount28d float64 `json:"p50_credit_transactions_amount_28d"`
+ P50DebitTransactionsAmount28d float64 `json:"p50_debit_transactions_amount_28d"`
+ P50EodBalance30d float64 `json:"p50_eod_balance_30d"`
+ P50EodBalance31dTo60d float64 `json:"p50_eod_balance_31d_to_60d"`
+ P50EodBalance60d float64 `json:"p50_eod_balance_60d"`
+ P50EodBalance61dTo90d float64 `json:"p50_eod_balance_61d_to_90d"`
+ P50EodBalance90d float64 `json:"p50_eod_balance_90d"`
+ P90EodBalance30d float64 `json:"p90_eod_balance_30d"`
+ P90EodBalance31dTo60d float64 `json:"p90_eod_balance_31d_to_60d"`
+ P90EodBalance60d float64 `json:"p90_eod_balance_60d"`
+ P90EodBalance61dTo90d float64 `json:"p90_eod_balance_61d_to_90d"`
+ P90EodBalance90d float64 `json:"p90_eod_balance_90d"`
+ P95CreditTransactionsAmount28d float64 `json:"p95_credit_transactions_amount_28d"`
+ P95DebitTransactionsAmount28d float64 `json:"p95_debit_transactions_amount_28d"`
+ PhoneChangeCount28d int `json:"phone_change_count_28d"`
+ PhoneChangeCount90d int `json:"phone_change_count_90d"`
+ PlaidConnectionsCount30d int `json:"plaid_connections_count_30d"`
+ PlaidConnectionsCount7d int `json:"plaid_connections_count_7d"`
+ PlaidNonOauthAuthenticationAttemptsCount30d int `json:"plaid_non_oauth_authentication_attempts_count_30d"`
+ PlaidNonOauthAuthenticationAttemptsCount3d int `json:"plaid_non_oauth_authentication_attempts_count_3d"`
+ PlaidNonOauthAuthenticationAttemptsCount7d int `json:"plaid_non_oauth_authentication_attempts_count_7d"`
+ TotalCreditTransactionsAmount10d float64 `json:"total_credit_transactions_amount_10d"`
+ TotalCreditTransactionsAmount30d float64 `json:"total_credit_transactions_amount_30d"`
+ TotalCreditTransactionsAmount60d float64 `json:"total_credit_transactions_amount_60d"`
+ TotalCreditTransactionsAmount90d float64 `json:"total_credit_transactions_amount_90d"`
+ TotalDebitTransactionsAmount10d float64 `json:"total_debit_transactions_amount_10d"`
+ TotalDebitTransactionsAmount30d float64 `json:"total_debit_transactions_amount_30d"`
+ TotalDebitTransactionsAmount60d float64 `json:"total_debit_transactions_amount_60d"`
+ TotalDebitTransactionsAmount90d float64 `json:"total_debit_transactions_amount_90d"`
+ TotalPlaidConnectionsCount int `json:"total_plaid_connections_count"`
+ TransactionsLastUpdated string `json:"transactions_last_updated"`
+ UnauthorizedTransactionsCount30d int `json:"unauthorized_transactions_count_30d"`
+ UnauthorizedTransactionsCount60d int `json:"unauthorized_transactions_count_60d"`
+ UnauthorizedTransactionsCount7d int `json:"unauthorized_transactions_count_7d"`
+ UnauthorizedTransactionsCount90d int `json:"unauthorized_transactions_count_90d"`
+}
+
+type SignalEvaluateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ ClientUserId string `json:"client_user_id"`
+ DefaultPaymentMethod string `json:"default_payment_method"`
+ Device string `json:"device"`
+ IsRecurring bool `json:"is_recurring"`
+ RiskProfileKey string `json:"risk_profile_key"`
+ RulesetKey string `json:"ruleset_key"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+ UserPresent bool `json:"user_present"`
+}
+
+type SignalEvaluateResponse struct {
+ CoreAttributes string `json:"core_attributes"`
+ RequestId string `json:"request_id"`
+ RiskProfile string `json:"risk_profile"`
+ Ruleset string `json:"ruleset"`
+ Scores string `json:"scores"`
+ Warnings string `json:"warnings"`
+}
+
+type SignalPersonName struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+ MiddleName string `json:"middle_name"`
+ Prefix string `json:"prefix"`
+ Suffix string `json:"suffix"`
+}
+
+type SignalPrepareRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type SignalPrepareResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SignalReturnReportRequest struct {
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ ReturnCode string `json:"return_code"`
+ ReturnedAt string `json:"returned_at"`
+ Secret string `json:"secret"`
+}
+
+type SignalReturnReportResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type SignalScheduleRecommendation struct {
+ Date string `json:"date"`
+ Rank int `json:"rank"`
+ Recommendation string `json:"recommendation"`
+}
+
+type SignalScheduleRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ ClientId string `json:"client_id"`
+ ClientTransactionId string `json:"client_transaction_id"`
+ DefaultPaymentMethod string `json:"default_payment_method"`
+ Secret string `json:"secret"`
+}
+
+type SignalScheduleResponse struct {
+ OptimalDate string `json:"optimal_date"`
+ Recommendations string `json:"recommendations"`
+ RequestId string `json:"request_id"`
+ Warnings string `json:"warnings"`
+}
+
+type SignalScores struct {
+ BankInitiatedReturnRisk string `json:"bank_initiated_return_risk"`
+ CustomerInitiatedReturnRisk string `json:"customer_initiated_return_risk"`
+}
+
+type SignalUser struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type SignalWarning struct {
+ WarningCode string `json:"warning_code"`
+ WarningMessage string `json:"warning_message"`
+ WarningType string `json:"warning_type"`
+}
+
+type SimulatedTransferSweep struct {
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ Description string `json:"description"`
+ ExpectedFundsAvailableDate string `json:"expected_funds_available_date"`
+ FailureReason string `json:"failure_reason"`
+ FundingAccountId string `json:"funding_account_id"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LedgerId string `json:"ledger_id"`
+ NetworkTraceId string `json:"network_trace_id"`
+ Settled string `json:"settled"`
+ Status string `json:"status"`
+ Trigger string `json:"trigger"`
+}
+
+type SingleDocumentRiskSignal struct {
+ DocumentReference string `json:"document_reference"`
+ RiskSignals string `json:"risk_signals"`
+ RiskSummary string `json:"risk_summary"`
+}
+
+type StandaloneAccountType struct {
+ Credit string `json:"credit"`
+ Depository string `json:"depository"`
+ Investment string `json:"investment"`
+ Loan string `json:"loan"`
+ Other string `json:"other"`
+ Payroll string `json:"payroll"`
+}
+
+type StandaloneCurrencyCodeList struct {
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type StandaloneInvestmentTransactionBuyType struct {
+ Assignment string `json:"assignment"`
+ Buy string `json:"buy"`
+ BuyToCover string `json:"buy_to_cover"`
+ Contribution string `json:"contribution"`
+ DividendReinvestment string `json:"dividend_reinvestment"`
+ InterestReinvestment string `json:"interest_reinvestment"`
+ LongTermCapitalGainReinvestment string `json:"long_term_capital_gain_reinvestment"`
+ ShortTermCapitalGainReinvestment string `json:"short_term_capital_gain_reinvestment"`
+}
+
+type StandaloneInvestmentTransactionCashType struct {
+ AccountFee string `json:"account_fee"`
+ Contribution string `json:"contribution"`
+ Deposit string `json:"deposit"`
+ Dividend string `json:"dividend"`
+ Interest string `json:"interest"`
+ LegalFee string `json:"legal_fee"`
+ LongTermCapitalGain string `json:"long_term_capital_gain"`
+ ManagementFee string `json:"management_fee"`
+ MarginExpense string `json:"margin_expense"`
+ NonQualifiedDividend string `json:"non_qualified_dividend"`
+ NonResidentTax string `json:"non_resident_tax"`
+ PendingCredit string `json:"pending_credit"`
+ PendingDebit string `json:"pending_debit"`
+ QualifiedDividend string `json:"qualified_dividend"`
+ ShortTermCapitalGain string `json:"short_term_capital_gain"`
+ StockDistribution string `json:"stock_distribution"`
+ Tax string `json:"tax"`
+ TaxWithheld string `json:"tax_withheld"`
+ TransferFee string `json:"transfer_fee"`
+ TrustFee string `json:"trust_fee"`
+ UnqualifiedGain string `json:"unqualified_gain"`
+ Withdrawal string `json:"withdrawal"`
+}
+
+type StandaloneInvestmentTransactionFeeType struct {
+ AccountFee string `json:"account_fee"`
+ Adjustment string `json:"adjustment"`
+ Dividend string `json:"dividend"`
+ Interest string `json:"interest"`
+ InterestReceivable string `json:"interest_receivable"`
+ LegalFee string `json:"legal_fee"`
+ LongTermCapitalGain string `json:"long_term_capital_gain"`
+ ManagementFee string `json:"management_fee"`
+ MarginExpense string `json:"margin_expense"`
+ NonQualifiedDividend string `json:"non_qualified_dividend"`
+ NonResidentTax string `json:"non_resident_tax"`
+ QualifiedDividend string `json:"qualified_dividend"`
+ ReturnOfPrincipal string `json:"return_of_principal"`
+ ShortTermCapitalGain string `json:"short_term_capital_gain"`
+ StockDistribution string `json:"stock_distribution"`
+ Tax string `json:"tax"`
+ TaxWithheld string `json:"tax_withheld"`
+ TransferFee string `json:"transfer_fee"`
+ TrustFee string `json:"trust_fee"`
+ UnqualifiedGain string `json:"unqualified_gain"`
+}
+
+type StandaloneInvestmentTransactionSellType struct {
+ Distribution string `json:"distribution"`
+ Exercise string `json:"exercise"`
+ Sell string `json:"sell"`
+ SellShort string `json:"sell_short"`
+}
+
+type StandaloneInvestmentTransactionTransferType struct {
+ Adjustment string `json:"adjustment"`
+ Assignment string `json:"assignment"`
+ Exercise string `json:"exercise"`
+ Expire string `json:"expire"`
+ Merger string `json:"merger"`
+ Request string `json:"request"`
+ Send string `json:"send"`
+ SpinOff string `json:"spin_off"`
+ Split string `json:"split"`
+ Trade string `json:"trade"`
+ Transfer string `json:"transfer"`
+}
+
+type StandaloneInvestmentTransactionType struct {
+ Buy string `json:"buy"`
+ Cancel string `json:"cancel"`
+ Cash string `json:"cash"`
+ Fee string `json:"fee"`
+ Sell string `json:"sell"`
+ Transfer string `json:"transfer"`
+}
+
+type StatementsAccount struct {
+ AccountId string `json:"account_id"`
+ AccountMask string `json:"account_mask"`
+ AccountName string `json:"account_name"`
+ AccountOfficialName string `json:"account_official_name"`
+ AccountSubtype string `json:"account_subtype"`
+ AccountType string `json:"account_type"`
+ Statements string `json:"statements"`
+}
+
+type StatementsDownloadRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ StatementId string `json:"statement_id"`
+}
+
+type StatementsListRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type StatementsListResponse struct {
+ Accounts string `json:"accounts"`
+ InstitutionId string `json:"institution_id"`
+ InstitutionName string `json:"institution_name"`
+ ItemId string `json:"item_id"`
+ RequestId string `json:"request_id"`
+}
+
+type StatementsRefreshCompleteWebhook struct {
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ Result string `json:"result"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type StatementsRefreshRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ EndDate string `json:"end_date"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type StatementsRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type StatementsStatement struct {
+ DatePosted string `json:"date_posted"`
+ Month int `json:"month"`
+ StatementId string `json:"statement_id"`
+ Year int `json:"year"`
+}
+
+type Status struct {
+ StatusCode string `json:"StatusCode"`
+ StatusDescription string `json:"StatusDescription"`
+}
+
+type Statuses struct {
+ STATUS string `json:"STATUS"`
+}
+
+type StudentLoan struct {
+ AccountId string `json:"account_id"`
+ AccountNumber string `json:"account_number"`
+ DisbursementDates string `json:"disbursement_dates"`
+ ExpectedPayoffDate string `json:"expected_payoff_date"`
+ Guarantor string `json:"guarantor"`
+ InterestRatePercentage float64 `json:"interest_rate_percentage"`
+ IsOverdue bool `json:"is_overdue"`
+ LastPaymentAmount float64 `json:"last_payment_amount"`
+ LastPaymentDate string `json:"last_payment_date"`
+ LastStatementBalance float64 `json:"last_statement_balance"`
+ LastStatementIssueDate string `json:"last_statement_issue_date"`
+ LoanName string `json:"loan_name"`
+ LoanStatus string `json:"loan_status"`
+ MinimumPaymentAmount float64 `json:"minimum_payment_amount"`
+ NextPaymentDueDate string `json:"next_payment_due_date"`
+ OriginationDate string `json:"origination_date"`
+ OriginationPrincipalAmount float64 `json:"origination_principal_amount"`
+ OutstandingInterestAmount float64 `json:"outstanding_interest_amount"`
+ PaymentReferenceNumber string `json:"payment_reference_number"`
+ PslfStatus string `json:"pslf_status"`
+ RepaymentPlan string `json:"repayment_plan"`
+ SequenceNumber string `json:"sequence_number"`
+ ServicerAddress string `json:"servicer_address"`
+ YtdInterestPaid float64 `json:"ytd_interest_paid"`
+ YtdPrincipalPaid float64 `json:"ytd_principal_paid"`
+}
+
+type StudentLoanRepaymentModel struct {
+ NonRepaymentMonths float64 `json:"non_repayment_months"`
+ RepaymentMonths float64 `json:"repayment_months"`
+ Type string `json:"type"`
+}
+
+type StudentLoanStatus struct {
+ EndDate string `json:"end_date"`
+ Type string `json:"type"`
+}
+
+type StudentRepaymentPlan struct {
+ Description string `json:"description"`
+ Type string `json:"type"`
+}
+
+type SweepFailure struct {
+ Description string `json:"description"`
+ FailureCode string `json:"failure_code"`
+}
+
+type SyncUpdatesAvailableWebhook struct {
+ Environment string `json:"environment"`
+ HistoricalUpdateComplete bool `json:"historical_update_complete"`
+ InitialUpdateComplete bool `json:"initial_update_complete"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type SyntheticFraud struct {
+ RiskLevel string `json:"risk_level"`
+}
+
+type Taxform struct {
+ DocId string `json:"doc_id"`
+ DocumentType string `json:"document_type"`
+ W2 string `json:"w2"`
+}
+
+type TaxpayerID struct {
+ IdMask string `json:"id_mask"`
+ IdType string `json:"id_type"`
+ Last4Digits string `json:"last_4_digits"`
+}
+
+type TaxpayerIdentifier struct {
+ TaxpayerIdentifierType string `json:"TaxpayerIdentifierType"`
+ TaxpayerIdentifierValue string `json:"TaxpayerIdentifierValue"`
+}
+
+type TaxpayerIdentifiers struct {
+ TAXPAYERIDENTIFIER string `json:"TAXPAYER_IDENTIFIER"`
+}
+
+type Total struct {
+ CanonicalDescription string `json:"canonical_description"`
+ CurrentPay string `json:"current_pay"`
+ Description string `json:"description"`
+ YtdPay string `json:"ytd_pay"`
+}
+
+type TotalInflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalInflowAmount30d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalInflowAmount60d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalInflowAmount90d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalMonthlyIncomeInsights struct {
+ BaselineAmount float64 `json:"baseline_amount"`
+ CurrentAmount float64 `json:"current_amount"`
+}
+
+type TotalOutflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalOutflowAmount30d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalOutflowAmount60d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalOutflowAmount90d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportInflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportInflowAmount30d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportInflowAmount60d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportInflowAmount90d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportOutflowAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportOutflowAmount30d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportOutflowAmount60d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TotalReportOutflowAmount90d struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type Transaction struct {
+ AccountId string `json:"account_id"`
+ AccountOwner string `json:"account_owner"`
+ Amount float64 `json:"amount"`
+ AuthorizedDate string `json:"authorized_date"`
+ AuthorizedDatetime string `json:"authorized_datetime"`
+ BusinessFinanceCategory string `json:"business_finance_category"`
+ Category string `json:"category"`
+ CategoryId string `json:"category_id"`
+ CheckNumber string `json:"check_number"`
+ ClientCustomization string `json:"client_customization"`
+ Counterparties string `json:"counterparties"`
+ Date string `json:"date"`
+ Datetime string `json:"datetime"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Location string `json:"location"`
+ LogoUrl string `json:"logo_url"`
+ MerchantEntityId string `json:"merchant_entity_id"`
+ MerchantName string `json:"merchant_name"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ PaymentChannel string `json:"payment_channel"`
+ PaymentMeta string `json:"payment_meta"`
+ Pending bool `json:"pending"`
+ PendingTransactionId string `json:"pending_transaction_id"`
+ PersonalFinanceCategory string `json:"personal_finance_category"`
+ PersonalFinanceCategoryIconUrl string `json:"personal_finance_category_icon_url"`
+ TransactionCode string `json:"transaction_code"`
+ TransactionId string `json:"transaction_id"`
+ TransactionType string `json:"transaction_type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ Website string `json:"website"`
+}
+
+type TransactionBase struct {
+ AccountId string `json:"account_id"`
+ AccountOwner string `json:"account_owner"`
+ Amount float64 `json:"amount"`
+ Category string `json:"category"`
+ CategoryId string `json:"category_id"`
+ CheckNumber string `json:"check_number"`
+ Date string `json:"date"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Location string `json:"location"`
+ LogoUrl string `json:"logo_url"`
+ MerchantName string `json:"merchant_name"`
+ Name string `json:"name"`
+ OriginalDescription string `json:"original_description"`
+ PaymentMeta string `json:"payment_meta"`
+ Pending bool `json:"pending"`
+ PendingTransactionId string `json:"pending_transaction_id"`
+ TransactionId string `json:"transaction_id"`
+ TransactionType string `json:"transaction_type"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+ Website string `json:"website"`
+}
+
+type TransactionCounterparty struct {
+ AccountNumbers string `json:"account_numbers"`
+ ConfidenceLevel string `json:"confidence_level"`
+ EntityId string `json:"entity_id"`
+ LogoUrl string `json:"logo_url"`
+ Name string `json:"name"`
+ Type string `json:"type"`
+ Website string `json:"website"`
+}
+
+type TransactionData struct {
+ AccountId string `json:"account_id"`
+ Amount float64 `json:"amount"`
+ Date string `json:"date"`
+ Description string `json:"description"`
+ TransactionId string `json:"transaction_id"`
+}
+
+type TransactionOverride struct {
+ Amount float64 `json:"amount"`
+ Currency string `json:"currency"`
+ DatePosted string `json:"date_posted"`
+ DateTransacted string `json:"date_transacted"`
+ Description string `json:"description"`
+}
+
+type TransactionStream struct {
+ AccountId string `json:"account_id"`
+ AverageAmount string `json:"average_amount"`
+ Category string `json:"category"`
+ CategoryId string `json:"category_id"`
+ Description string `json:"description"`
+ FirstDate string `json:"first_date"`
+ Frequency string `json:"frequency"`
+ IsActive bool `json:"is_active"`
+ IsUserModified bool `json:"is_user_modified"`
+ LastAmount string `json:"last_amount"`
+ LastDate string `json:"last_date"`
+ LastUserModifiedDatetime string `json:"last_user_modified_datetime"`
+ MerchantName string `json:"merchant_name"`
+ PersonalFinanceCategory string `json:"personal_finance_category"`
+ PredictedNextDate string `json:"predicted_next_date"`
+ Status string `json:"status"`
+ StreamId string `json:"stream_id"`
+ TransactionIds string `json:"transaction_ids"`
+}
+
+type TransactionStreamAmount struct {
+ Amount float64 `json:"amount"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ UnofficialCurrencyCode string `json:"unofficial_currency_code"`
+}
+
+type TransactionsCategoryRule struct {
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ PfcDetailedCategory string `json:"pfc_detailed_category"`
+ PfcPrimaryCategory string `json:"pfc_primary_category"`
+ RuleDetails string `json:"rule_details"`
+ UpdatedAt string `json:"updated_at"`
+ UserId string `json:"user_id"`
+}
+
+type TransactionsEnhanceGetRequest struct {
+ AccountType string `json:"account_type"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ Transactions string `json:"transactions"`
+}
+
+type TransactionsEnhanceGetResponse struct {
+ EnhancedTransactions string `json:"enhanced_transactions"`
+}
+
+type TransactionsEnrichRequest struct {
+ AccountType string `json:"account_type"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ Transactions string `json:"transactions"`
+}
+
+type TransactionsEnrichRequestOptions struct {
+ IncludeLegacyCategory bool `json:"include_legacy_category"`
+ PersonalFinanceCategoryVersion string `json:"personal_finance_category_version"`
+}
+
+type TransactionsEnrichResponse struct {
+ EnrichedTransactions string `json:"enriched_transactions"`
+ RequestId string `json:"request_id"`
+}
+
+type TransactionsGetRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ EndDate string `json:"end_date"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type TransactionsGetRequestOptions struct {
+ AccountIds string `json:"account_ids"`
+ Count int `json:"count"`
+ DaysRequested int `json:"days_requested"`
+ IncludeLogoAndCounterpartyBeta bool `json:"include_logo_and_counterparty_beta"`
+ IncludeOriginalDescription bool `json:"include_original_description"`
+ IncludePersonalFinanceCategory bool `json:"include_personal_finance_category"`
+ IncludePersonalFinanceCategoryBeta bool `json:"include_personal_finance_category_beta"`
+ Offset int `json:"offset"`
+ PersonalFinanceCategoryVersion string `json:"personal_finance_category_version"`
+}
+
+type TransactionsGetResponse struct {
+ Accounts string `json:"accounts"`
+ Item string `json:"item"`
+ RequestId string `json:"request_id"`
+ TotalTransactions int `json:"total_transactions"`
+ Transactions string `json:"transactions"`
+}
+
+type TransactionsRecurringCreateInput struct {
+ TransactionIds string `json:"transaction_ids"`
+}
+
+type TransactionsRecurringCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Inputs string `json:"inputs"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRecurringCreateResponse struct {
+ AddedStreams string `json:"added_streams"`
+ ModifiedStreams string `json:"modified_streams"`
+ RemovedStreamIds string `json:"removed_stream_ids"`
+}
+
+type TransactionsRecurringGetRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountIds string `json:"account_ids"`
+ ClientId string `json:"client_id"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRecurringGetRequestOptions struct {
+ IncludePersonalFinanceCategory bool `json:"include_personal_finance_category"`
+ PersonalFinanceCategoryVersion string `json:"personal_finance_category_version"`
+}
+
+type TransactionsRecurringGetResponse struct {
+ InflowStreams string `json:"inflow_streams"`
+ OutflowStreams string `json:"outflow_streams"`
+ PersonalFinanceCategoryVersion string `json:"personal_finance_category_version"`
+ RequestId string `json:"request_id"`
+ UpdatedDatetime string `json:"updated_datetime"`
+}
+
+type TransactionsRecurringMergeInput struct {
+ StreamIds string `json:"stream_ids"`
+}
+
+type TransactionsRecurringMergeRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Inputs string `json:"inputs"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRecurringMergeResponse struct {
+ ModifiedStreams string `json:"modified_streams"`
+ RemovedStreamIds string `json:"removed_stream_ids"`
+}
+
+type TransactionsRecurringUpdateInput struct {
+ StreamId string `json:"stream_id"`
+ TransactionIds string `json:"transaction_ids"`
+}
+
+type TransactionsRecurringUpdateRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Inputs string `json:"inputs"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRecurringUpdateResponse struct {
+ ModifiedStreams string `json:"modified_streams"`
+ RemovedStreamIds string `json:"removed_stream_ids"`
+}
+
+type TransactionsRefreshRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRefreshResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransactionsRemovedWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ RemovedTransactions string `json:"removed_transactions"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type TransactionsRuleDetails struct {
+ Field string `json:"field"`
+ Query string `json:"query"`
+ Type string `json:"type"`
+}
+
+type TransactionsRulesCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ PfcDetailedCategory string `json:"pfc_detailed_category"`
+ PfcPrimaryCategory string `json:"pfc_primary_category"`
+ RuleDetails string `json:"rule_details"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRulesCreateResponse struct {
+ RequestId string `json:"request_id"`
+ Rule string `json:"rule"`
+}
+
+type TransactionsRulesListRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRulesListResponse struct {
+ RequestId string `json:"request_id"`
+ Rules string `json:"rules"`
+}
+
+type TransactionsRulesRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ RuleId string `json:"rule_id"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsRulesRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransactionsSyncRequest struct {
+ AccessToken string `json:"access_token"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsSyncRequestOptions struct {
+ AccountId string `json:"account_id"`
+ DaysRequested int `json:"days_requested"`
+ IncludeLogoAndCounterpartyBeta bool `json:"include_logo_and_counterparty_beta"`
+ IncludeOriginalDescription bool `json:"include_original_description"`
+ IncludePersonalFinanceCategory bool `json:"include_personal_finance_category"`
+ PersonalFinanceCategoryVersion string `json:"personal_finance_category_version"`
+}
+
+type TransactionsSyncResponse struct {
+ Accounts string `json:"accounts"`
+ Added string `json:"added"`
+ HasMore bool `json:"has_more"`
+ Modified string `json:"modified"`
+ NextCursor string `json:"next_cursor"`
+ Removed string `json:"removed"`
+ RequestId string `json:"request_id"`
+ TransactionsUpdateStatus string `json:"transactions_update_status"`
+}
+
+type TransactionsUserInsightsGetRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Secret string `json:"secret"`
+}
+
+type TransactionsUserInsightsGetResponse struct {
+ CategoryInsights string `json:"category_insights"`
+ CounterpartyInsights string `json:"counterparty_insights"`
+ RecurringTransactions string `json:"recurring_transactions"`
+ UserDataOverview string `json:"user_data_overview"`
+}
+
+type Transfer struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ AuthorizationId string `json:"authorization_id"`
+ Cancellable bool `json:"cancellable"`
+ Created string `json:"created"`
+ CreditFundsSource string `json:"credit_funds_source"`
+ Description string `json:"description"`
+ ExpectedFundsAvailableDate string `json:"expected_funds_available_date"`
+ ExpectedSettlementDate string `json:"expected_settlement_date"`
+ ExpectedSweepSettlementSchedule string `json:"expected_sweep_settlement_schedule"`
+ FacilitatorFee string `json:"facilitator_fee"`
+ FailureReason string `json:"failure_reason"`
+ FundingAccountId string `json:"funding_account_id"`
+ GuaranteeDecision string `json:"guarantee_decision"`
+ GuaranteeDecisionRationale string `json:"guarantee_decision_rationale"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LedgerId string `json:"ledger_id"`
+ Metadata string `json:"metadata"`
+ Network string `json:"network"`
+ NetworkTraceId string `json:"network_trace_id"`
+ OriginationAccountId string `json:"origination_account_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ Refunds string `json:"refunds"`
+ StandardReturnWindow string `json:"standard_return_window"`
+ Status string `json:"status"`
+ SweepStatus string `json:"sweep_status"`
+ Type string `json:"type"`
+ UnauthorizedReturnWindow string `json:"unauthorized_return_window"`
+ User string `json:"user"`
+ WireDetails string `json:"wire_details"`
+}
+
+type TransferAuthorization struct {
+ Created string `json:"created"`
+ Decision string `json:"decision"`
+ DecisionRationale string `json:"decision_rationale"`
+ GuaranteeDecision string `json:"guarantee_decision"`
+ GuaranteeDecisionRationale string `json:"guarantee_decision_rationale"`
+ Id string `json:"id"`
+ PaymentRisk string `json:"payment_risk"`
+ ProposedTransfer string `json:"proposed_transfer"`
+}
+
+type TransferAuthorizationCancelRequest struct {
+ AuthorizationId string `json:"authorization_id"`
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferAuthorizationCancelResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferAuthorizationCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ BeaconSessionId string `json:"beacon_session_id"`
+ ClientId string `json:"client_id"`
+ CreditFundsSource string `json:"credit_funds_source"`
+ Device string `json:"device"`
+ FundingAccountId string `json:"funding_account_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LedgerId string `json:"ledger_id"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ PaymentProfileToken string `json:"payment_profile_token"`
+ RequestGuarantee bool `json:"request_guarantee"`
+ RulesetKey string `json:"ruleset_key"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ Type string `json:"type"`
+ User string `json:"user"`
+ UserPresent bool `json:"user_present"`
+ WireDetails string `json:"wire_details"`
+ WithGuarantee bool `json:"with_guarantee"`
+}
+
+type TransferAuthorizationCreateResponse struct {
+ Authorization string `json:"authorization"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferAuthorizationDecisionRationale struct {
+ Code string `json:"code"`
+ Description string `json:"description"`
+}
+
+type TransferAuthorizationDevice struct {
+ IpAddress string `json:"ip_address"`
+ UserAgent string `json:"user_agent"`
+}
+
+type TransferAuthorizationGuaranteeDecisionRationale struct {
+ Code string `json:"code"`
+ Description string `json:"description"`
+}
+
+type TransferAuthorizationPaymentRisk struct {
+ BankInitiatedReturnScore int `json:"bank_initiated_return_score"`
+ CustomerInitiatedReturnScore int `json:"customer_initiated_return_score"`
+ RiskLevel string `json:"risk_level"`
+ Warnings string `json:"warnings"`
+}
+
+type TransferAuthorizationProposedTransfer struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ CreditFundsSource string `json:"credit_funds_source"`
+ FundingAccountId string `json:"funding_account_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LedgerId string `json:"ledger_id"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Type string `json:"type"`
+ User string `json:"user"`
+ WireDetails string `json:"wire_details"`
+}
+
+type TransferAuthorizationUserInRequest struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type TransferBalance struct {
+ Available string `json:"available"`
+ Current string `json:"current"`
+ Type string `json:"type"`
+}
+
+type TransferBalanceGetRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ Type string `json:"type"`
+}
+
+type TransferBalanceGetResponse struct {
+ Balance string `json:"balance"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferCancelRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ ReasonCode string `json:"reason_code"`
+ Secret string `json:"secret"`
+ TransferId string `json:"transfer_id"`
+}
+
+type TransferCancelResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferCapabilitiesGetRTP struct {
+ Credit bool `json:"credit"`
+}
+
+type TransferCapabilitiesGetRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ ClientId string `json:"client_id"`
+ PaymentProfileToken string `json:"payment_profile_token"`
+ Secret string `json:"secret"`
+}
+
+type TransferCapabilitiesGetResponse struct {
+ InstitutionSupportedNetworks string `json:"institution_supported_networks"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferCapabilitiesGetRfP struct {
+ Debit bool `json:"debit"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MaxAmount string `json:"max_amount"`
+}
+
+type TransferConfigurationGetRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferConfigurationGetResponse struct {
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MaxDailyCreditAmount string `json:"max_daily_credit_amount"`
+ MaxDailyDebitAmount string `json:"max_daily_debit_amount"`
+ MaxMonthlyAmount string `json:"max_monthly_amount"`
+ MaxMonthlyCreditAmount string `json:"max_monthly_credit_amount"`
+ MaxMonthlyDebitAmount string `json:"max_monthly_debit_amount"`
+ MaxSingleTransferAmount string `json:"max_single_transfer_amount"`
+ MaxSingleTransferCreditAmount string `json:"max_single_transfer_credit_amount"`
+ MaxSingleTransferDebitAmount string `json:"max_single_transfer_debit_amount"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ AuthorizationId string `json:"authorization_id"`
+ ClientId string `json:"client_id"`
+ Description string `json:"description"`
+ FacilitatorFee string `json:"facilitator_fee"`
+ IdempotencyKey string `json:"idempotency_key"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ Type string `json:"type"`
+ User string `json:"user"`
+}
+
+type TransferCreateResponse struct {
+ RequestId string `json:"request_id"`
+ Transfer string `json:"transfer"`
+}
+
+type TransferCreditUsageConfiguration struct {
+ ExpectedAverageAmount string `json:"expected_average_amount"`
+ ExpectedFrequency string `json:"expected_frequency"`
+ ExpectedHighestAmount string `json:"expected_highest_amount"`
+ ExpectedMonthlyAmount string `json:"expected_monthly_amount"`
+ SecCodes string `json:"sec_codes"`
+}
+
+type TransferDebitUsageConfiguration struct {
+ ExpectedAverageAmount string `json:"expected_average_amount"`
+ ExpectedFrequency string `json:"expected_frequency"`
+ ExpectedHighestAmount string `json:"expected_highest_amount"`
+ ExpectedMonthlyAmount string `json:"expected_monthly_amount"`
+ SecCodes string `json:"sec_codes"`
+}
+
+type TransferDevice struct {
+ IpAddress string `json:"ip_address"`
+ UserAgent string `json:"user_agent"`
+}
+
+type TransferDiligenceDocumentUploadRequest struct {
+ File string `json:"file"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Purpose string `json:"purpose"`
+}
+
+type TransferDiligenceDocumentUploadResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferDiligenceSubmitRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ OriginatorDiligence string `json:"originator_diligence"`
+ Secret string `json:"secret"`
+}
+
+type TransferDiligenceSubmitResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferEvent struct {
+ AccountId string `json:"account_id"`
+ EventId int `json:"event_id"`
+ EventType string `json:"event_type"`
+ FailureReason string `json:"failure_reason"`
+ FundingAccountId string `json:"funding_account_id"`
+ IntentId string `json:"intent_id"`
+ LedgerId string `json:"ledger_id"`
+ OriginationAccountId string `json:"origination_account_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ RefundId string `json:"refund_id"`
+ SweepAmount string `json:"sweep_amount"`
+ SweepId string `json:"sweep_id"`
+ Timestamp string `json:"timestamp"`
+ TransferAmount string `json:"transfer_amount"`
+ TransferId string `json:"transfer_id"`
+ TransferType string `json:"transfer_type"`
+ WireReturnFee string `json:"wire_return_fee"`
+}
+
+type TransferEventListRequest struct {
+ AccountId string `json:"account_id"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndDate string `json:"end_date"`
+ EventTypes string `json:"event_types"`
+ FundingAccountId string `json:"funding_account_id"`
+ Offset int `json:"offset"`
+ OriginationAccountId string `json:"origination_account_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+ SweepId string `json:"sweep_id"`
+ TransferId string `json:"transfer_id"`
+ TransferType string `json:"transfer_type"`
+}
+
+type TransferEventListResponse struct {
+ HasMore bool `json:"has_more"`
+ RequestId string `json:"request_id"`
+ TransferEvents string `json:"transfer_events"`
+}
+
+type TransferEventSyncRequest struct {
+ AfterId int `json:"after_id"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Secret string `json:"secret"`
+}
+
+type TransferEventSyncResponse struct {
+ HasMore bool `json:"has_more"`
+ RequestId string `json:"request_id"`
+ TransferEvents string `json:"transfer_events"`
+}
+
+type TransferEventsUpdateWebhook struct {
+ Environment string `json:"environment"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type TransferExpectedSweepSettlementScheduleItem struct {
+ SweepSettlementDate string `json:"sweep_settlement_date"`
+ SweptSettledAmount string `json:"swept_settled_amount"`
+}
+
+type TransferFailure struct {
+ AchReturnCode string `json:"ach_return_code"`
+ Description string `json:"description"`
+ FailureCode string `json:"failure_code"`
+}
+
+type TransferFundingAccount struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+}
+
+type TransferFundingAccountWithDisplayName struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ DisplayName string `json:"display_name"`
+}
+
+type TransferGetRequest struct {
+ AuthorizationId string `json:"authorization_id"`
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ TransferId string `json:"transfer_id"`
+}
+
+type TransferGetResponse struct {
+ RequestId string `json:"request_id"`
+ Transfer string `json:"transfer"`
+}
+
+type TransferIntentCreate struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ Description string `json:"description"`
+ FundingAccountId string `json:"funding_account_id"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Mode string `json:"mode"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ RequireGuarantee bool `json:"require_guarantee"`
+ Status string `json:"status"`
+ User string `json:"user"`
+}
+
+type TransferIntentCreateRequest struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Description string `json:"description"`
+ FundingAccountId string `json:"funding_account_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Mode string `json:"mode"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ RequireGuarantee bool `json:"require_guarantee"`
+ Secret string `json:"secret"`
+ User string `json:"user"`
+}
+
+type TransferIntentCreateResponse struct {
+ RequestId string `json:"request_id"`
+ TransferIntent string `json:"transfer_intent"`
+}
+
+type TransferIntentGet struct {
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ AuthorizationDecision string `json:"authorization_decision"`
+ AuthorizationDecisionRationale string `json:"authorization_decision_rationale"`
+ Created string `json:"created"`
+ Description string `json:"description"`
+ FailureReason string `json:"failure_reason"`
+ FundingAccountId string `json:"funding_account_id"`
+ GuaranteeDecision string `json:"guarantee_decision"`
+ GuaranteeDecisionRationale string `json:"guarantee_decision_rationale"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Metadata string `json:"metadata"`
+ Mode string `json:"mode"`
+ Network string `json:"network"`
+ OriginationAccountId string `json:"origination_account_id"`
+ RequireGuarantee bool `json:"require_guarantee"`
+ Status string `json:"status"`
+ TransferId string `json:"transfer_id"`
+ User string `json:"user"`
+}
+
+type TransferIntentGetFailureReason struct {
+ ErrorCode string `json:"error_code"`
+ ErrorMessage string `json:"error_message"`
+ ErrorType string `json:"error_type"`
+}
+
+type TransferIntentGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ TransferIntentId string `json:"transfer_intent_id"`
+}
+
+type TransferIntentGetResponse struct {
+ RequestId string `json:"request_id"`
+ TransferIntent string `json:"transfer_intent"`
+}
+
+type TransferLedgerBalance struct {
+ Available string `json:"available"`
+ Pending string `json:"pending"`
+}
+
+type TransferLedgerDepositRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Description string `json:"description"`
+ FundingAccountId string `json:"funding_account_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ LedgerId string `json:"ledger_id"`
+ Network string `json:"network"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferLedgerDepositResponse struct {
+ RequestId string `json:"request_id"`
+ Sweep string `json:"sweep"`
+}
+
+type TransferLedgerDistributeRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Description string `json:"description"`
+ FromLedgerId string `json:"from_ledger_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ Secret string `json:"secret"`
+ ToLedgerId string `json:"to_ledger_id"`
+}
+
+type TransferLedgerDistributeResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferLedgerEvent struct {
+ Amount string `json:"amount"`
+ AvailableBalance string `json:"available_balance"`
+ Description string `json:"description"`
+ LedgerEventId string `json:"ledger_event_id"`
+ LedgerId string `json:"ledger_id"`
+ PendingBalance string `json:"pending_balance"`
+ RefundId string `json:"refund_id"`
+ SweepId string `json:"sweep_id"`
+ Timestamp string `json:"timestamp"`
+ TransferId string `json:"transfer_id"`
+ Type string `json:"type"`
+}
+
+type TransferLedgerEventListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndDate string `json:"end_date"`
+ LedgerEventId string `json:"ledger_event_id"`
+ LedgerId string `json:"ledger_id"`
+ Offset int `json:"offset"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ SourceId string `json:"source_id"`
+ SourceType string `json:"source_type"`
+ StartDate string `json:"start_date"`
+}
+
+type TransferLedgerEventListResponse struct {
+ HasMore bool `json:"has_more"`
+ LedgerEvents string `json:"ledger_events"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferLedgerGetRequest struct {
+ ClientId string `json:"client_id"`
+ LedgerId string `json:"ledger_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferLedgerGetResponse struct {
+ Balance string `json:"balance"`
+ IsDefault bool `json:"is_default"`
+ LedgerId string `json:"ledger_id"`
+ Name string `json:"name"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferLedgerWithdrawRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Description string `json:"description"`
+ FundingAccountId string `json:"funding_account_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ LedgerId string `json:"ledger_id"`
+ Network string `json:"network"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferLedgerWithdrawResponse struct {
+ RequestId string `json:"request_id"`
+ Sweep string `json:"sweep"`
+}
+
+type TransferListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndDate string `json:"end_date"`
+ FundingAccountId string `json:"funding_account_id"`
+ Offset int `json:"offset"`
+ OriginationAccountId string `json:"origination_account_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type TransferListResponse struct {
+ RequestId string `json:"request_id"`
+ Transfers string `json:"transfers"`
+}
+
+type TransferMetadata struct {
+}
+
+type TransferMetricsGetAuthorizationUsage struct {
+ DailyCreditUtilization string `json:"daily_credit_utilization"`
+ DailyDebitUtilization string `json:"daily_debit_utilization"`
+ MonthlyCreditUtilization string `json:"monthly_credit_utilization"`
+ MonthlyDebitUtilization string `json:"monthly_debit_utilization"`
+}
+
+type TransferMetricsGetRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferMetricsGetResponse struct {
+ AuthorizationUsage string `json:"authorization_usage"`
+ DailyCreditTransferVolume string `json:"daily_credit_transfer_volume"`
+ DailyDebitTransferVolume string `json:"daily_debit_transfer_volume"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ MonthlyCreditTransferVolume string `json:"monthly_credit_transfer_volume"`
+ MonthlyDebitTransferVolume string `json:"monthly_debit_transfer_volume"`
+ MonthlyTransferVolume string `json:"monthly_transfer_volume"`
+ RequestId string `json:"request_id"`
+ ReturnRates string `json:"return_rates"`
+}
+
+type TransferMetricsGetReturnRates struct {
+ Last60d string `json:"last_60d"`
+}
+
+type TransferMetricsGetReturnRatesOverInterval struct {
+ AdministrativeReturnRate string `json:"administrative_return_rate"`
+ OverallReturnRate string `json:"overall_return_rate"`
+ UnauthorizedReturnRate string `json:"unauthorized_return_rate"`
+}
+
+type TransferMigrateAccountRequest struct {
+ AccountNumber string `json:"account_number"`
+ AccountType string `json:"account_type"`
+ ClientId string `json:"client_id"`
+ RoutingNumber string `json:"routing_number"`
+ Secret string `json:"secret"`
+ WireRoutingNumber string `json:"wire_routing_number"`
+}
+
+type TransferMigrateAccountResponse struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferOriginatorAddress struct {
+ City string `json:"city"`
+ CountryCode string `json:"country_code"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type TransferOriginatorCreateRequest struct {
+ ClientId string `json:"client_id"`
+ CompanyName string `json:"company_name"`
+ Secret string `json:"secret"`
+}
+
+type TransferOriginatorCreateResponse struct {
+ CompanyName string `json:"company_name"`
+ OriginatorClientId string `json:"originator_client_id"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferOriginatorDiligence struct {
+ Address string `json:"address"`
+ CreditUsageConfiguration string `json:"credit_usage_configuration"`
+ Dba string `json:"dba"`
+ DebitUsageConfiguration string `json:"debit_usage_configuration"`
+ FundingAccount string `json:"funding_account"`
+ NaicsCode string `json:"naics_code"`
+ TaxId string `json:"tax_id"`
+ Website string `json:"website"`
+}
+
+type TransferOriginatorFundingAccountCreateRequest struct {
+ ClientId string `json:"client_id"`
+ FundingAccount string `json:"funding_account"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferOriginatorFundingAccountCreateResponse struct {
+ FundingAccountId string `json:"funding_account_id"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferOriginatorFundingAccountUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ FundingAccount string `json:"funding_account"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferOriginatorFundingAccountUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferOriginatorGetRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferOriginatorGetResponse struct {
+ Originator string `json:"originator"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferOriginatorListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Offset int `json:"offset"`
+ Secret string `json:"secret"`
+}
+
+type TransferOriginatorListResponse struct {
+ Originators string `json:"originators"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferPlatformOnboardingUpdateWebhook struct {
+ Environment string `json:"environment"`
+ OriginatorClientId string `json:"originator_client_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type TransferPlatformOriginatorCreateRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ OriginatorReviewedAt string `json:"originator_reviewed_at"`
+ Secret string `json:"secret"`
+ TosAcceptanceMetadata string `json:"tos_acceptance_metadata"`
+ Webhook string `json:"webhook"`
+}
+
+type TransferPlatformOriginatorCreateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferPlatformPersonAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type TransferPlatformPersonCreateRequest struct {
+ Address string `json:"address"`
+ ClientId string `json:"client_id"`
+ DateOfBirth string `json:"date_of_birth"`
+ EmailAddress string `json:"email_address"`
+ IdNumber string `json:"id_number"`
+ Name string `json:"name"`
+ OriginatorClientId string `json:"originator_client_id"`
+ OwnershipPercentage int `json:"ownership_percentage"`
+ PhoneNumber string `json:"phone_number"`
+ RelationshipToOriginator string `json:"relationship_to_originator"`
+ Secret string `json:"secret"`
+ Title string `json:"title"`
+}
+
+type TransferPlatformPersonCreateResponse struct {
+ PersonId string `json:"person_id"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferPlatformPersonIDNumber struct {
+ Type string `json:"type"`
+ Value string `json:"value"`
+}
+
+type TransferPlatformPersonName struct {
+ FamilyName string `json:"family_name"`
+ GivenName string `json:"given_name"`
+}
+
+type TransferPlatformRequirement struct {
+ PersonId string `json:"person_id"`
+ RequirementType string `json:"requirement_type"`
+}
+
+type TransferPlatformRequirementSubmission struct {
+ PersonId string `json:"person_id"`
+ RequirementType string `json:"requirement_type"`
+ Value string `json:"value"`
+}
+
+type TransferPlatformRequirementSubmitRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ RequirementSubmissions string `json:"requirement_submissions"`
+ Secret string `json:"secret"`
+}
+
+type TransferPlatformRequirementSubmitResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferPlatformTOSAcceptanceMetadata struct {
+ AgreementAccepted bool `json:"agreement_accepted"`
+ AgreementAcceptedAt string `json:"agreement_accepted_at"`
+ OriginatorIpAddress string `json:"originator_ip_address"`
+}
+
+type TransferQuestionnaireCreateRequest struct {
+ ClientId string `json:"client_id"`
+ OriginatorClientId string `json:"originator_client_id"`
+ RedirectUri string `json:"redirect_uri"`
+ Secret string `json:"secret"`
+}
+
+type TransferQuestionnaireCreateResponse struct {
+ OnboardingUrl string `json:"onboarding_url"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRecurringCancelRequest struct {
+ ClientId string `json:"client_id"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferRecurringCancelResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferRecurringCreateRequest struct {
+ AccessToken string `json:"access_token"`
+ AccountId string `json:"account_id"`
+ AchClass string `json:"ach_class"`
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Description string `json:"description"`
+ Device string `json:"device"`
+ FundingAccountId string `json:"funding_account_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Network string `json:"network"`
+ Schedule string `json:"schedule"`
+ Secret string `json:"secret"`
+ TestClockId string `json:"test_clock_id"`
+ Type string `json:"type"`
+ User string `json:"user"`
+ UserPresent bool `json:"user_present"`
+}
+
+type TransferRecurringCreateResponse struct {
+ Decision string `json:"decision"`
+ DecisionRationale string `json:"decision_rationale"`
+ RecurringTransfer string `json:"recurring_transfer"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRecurringGetRequest struct {
+ ClientId string `json:"client_id"`
+ RecurringTransferId string `json:"recurring_transfer_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferRecurringGetResponse struct {
+ RecurringTransfer string `json:"recurring_transfer"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRecurringListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndTime string `json:"end_time"`
+ FundingAccountId string `json:"funding_account_id"`
+ Offset int `json:"offset"`
+ Secret string `json:"secret"`
+ StartTime string `json:"start_time"`
+}
+
+type TransferRecurringListResponse struct {
+ RecurringTransfers string `json:"recurring_transfers"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRecurringSchedule struct {
+ EndDate string `json:"end_date"`
+ IntervalCount int `json:"interval_count"`
+ IntervalExecutionDay int `json:"interval_execution_day"`
+ IntervalUnit string `json:"interval_unit"`
+ StartDate string `json:"start_date"`
+}
+
+type TransferRefund struct {
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ FailureReason string `json:"failure_reason"`
+ Id string `json:"id"`
+ LedgerId string `json:"ledger_id"`
+ NetworkTraceId string `json:"network_trace_id"`
+ Status string `json:"status"`
+ TransferId string `json:"transfer_id"`
+}
+
+type TransferRefundCancelRequest struct {
+ ClientId string `json:"client_id"`
+ RefundId string `json:"refund_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferRefundCancelResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type TransferRefundCreateRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ IdempotencyKey string `json:"idempotency_key"`
+ Secret string `json:"secret"`
+ TransferId string `json:"transfer_id"`
+}
+
+type TransferRefundCreateResponse struct {
+ Refund string `json:"refund"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRefundFailure struct {
+ AchReturnCode string `json:"ach_return_code"`
+ Description string `json:"description"`
+ FailureCode string `json:"failure_code"`
+}
+
+type TransferRefundGetRequest struct {
+ ClientId string `json:"client_id"`
+ RefundId string `json:"refund_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferRefundGetResponse struct {
+ Refund string `json:"refund"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRepayment struct {
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ RepaymentId string `json:"repayment_id"`
+}
+
+type TransferRepaymentListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndDate string `json:"end_date"`
+ Offset int `json:"offset"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+}
+
+type TransferRepaymentListResponse struct {
+ Repayments string `json:"repayments"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferRepaymentReturn struct {
+ Amount string `json:"amount"`
+ EventId int `json:"event_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ TransferId string `json:"transfer_id"`
+}
+
+type TransferRepaymentReturnListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Offset int `json:"offset"`
+ RepaymentId string `json:"repayment_id"`
+ Secret string `json:"secret"`
+}
+
+type TransferRepaymentReturnListResponse struct {
+ RepaymentReturns string `json:"repayment_returns"`
+ RequestId string `json:"request_id"`
+}
+
+type TransferSweep struct {
+ Amount string `json:"amount"`
+ Created string `json:"created"`
+ Description string `json:"description"`
+ ExpectedFundsAvailableDate string `json:"expected_funds_available_date"`
+ FailureReason string `json:"failure_reason"`
+ FundingAccountId string `json:"funding_account_id"`
+ Id string `json:"id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ LedgerId string `json:"ledger_id"`
+ NetworkTraceId string `json:"network_trace_id"`
+ Settled string `json:"settled"`
+ Status string `json:"status"`
+ Trigger string `json:"trigger"`
+}
+
+type TransferSweepGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ SweepId string `json:"sweep_id"`
+}
+
+type TransferSweepGetResponse struct {
+ RequestId string `json:"request_id"`
+ Sweep string `json:"sweep"`
+}
+
+type TransferSweepListRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ EndDate string `json:"end_date"`
+ FundingAccountId string `json:"funding_account_id"`
+ Offset int `json:"offset"`
+ OriginatorClientId string `json:"originator_client_id"`
+ Secret string `json:"secret"`
+ StartDate string `json:"start_date"`
+ Status string `json:"status"`
+ TransferId string `json:"transfer_id"`
+ Trigger string `json:"trigger"`
+}
+
+type TransferSweepListResponse struct {
+ RequestId string `json:"request_id"`
+ Sweeps string `json:"sweeps"`
+}
+
+type TransferTestClock struct {
+ TestClockId string `json:"test_clock_id"`
+ VirtualTime string `json:"virtual_time"`
+}
+
+type TransferUserAddressInRequest struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type TransferUserAddressInResponse struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+}
+
+type TransferUserInRequest struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type TransferUserInRequestDeprecated struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type TransferUserInResponse struct {
+ Address string `json:"address"`
+ EmailAddress string `json:"email_address"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+}
+
+type TransferWireDetails struct {
+ MessageToBeneficiary string `json:"message_to_beneficiary"`
+ WireReturnFee string `json:"wire_return_fee"`
+}
+
+type TrustIndex struct {
+ Model string `json:"model"`
+ Score int `json:"score"`
+ Subscores string `json:"subscores"`
+}
+
+type TrustIndexSubscore struct {
+ Score int `json:"score"`
+}
+
+type TrustIndexSubscores struct {
+ BankAccountInsights string `json:"bank_account_insights"`
+ DeviceAndConnection string `json:"device_and_connection"`
+}
+
+type TrustedDeviceData struct {
+ DeviceId string `json:"device_id"`
+ TrustLevel int `json:"trust_level"`
+}
+
+type UnofficialCurrencyCodeList struct {
+ ADA string `json:"ADA"`
+ BAT string `json:"BAT"`
+ BCH string `json:"BCH"`
+ BNB string `json:"BNB"`
+ BSV string `json:"BSV"`
+ BTC string `json:"BTC"`
+ BTG string `json:"BTG"`
+ CNH string `json:"CNH"`
+ DASH string `json:"DASH"`
+ DOGE string `json:"DOGE"`
+ ETC string `json:"ETC"`
+ ETH string `json:"ETH"`
+ GBX string `json:"GBX"`
+ LSK string `json:"LSK"`
+ NEO string `json:"NEO"`
+ OMG string `json:"OMG"`
+ QTUM string `json:"QTUM"`
+ USDT string `json:"USDT"`
+ XLM string `json:"XLM"`
+ XMR string `json:"XMR"`
+ XRP string `json:"XRP"`
+ ZEC string `json:"ZEC"`
+ ZRX string `json:"ZRX"`
+}
+
+type UpdateEntityScreeningRequestSearchTerms struct {
+ Country string `json:"country"`
+ DocumentNumber string `json:"document_number"`
+ EmailAddress string `json:"email_address"`
+ EntityWatchlistProgramId string `json:"entity_watchlist_program_id"`
+ LegalName string `json:"legal_name"`
+ PhoneNumber string `json:"phone_number"`
+ Url string `json:"url"`
+}
+
+type UpdateIndividualScreeningRequestSearchTerms struct {
+ Country string `json:"country"`
+ DateOfBirth string `json:"date_of_birth"`
+ DocumentNumber string `json:"document_number"`
+ LegalName string `json:"legal_name"`
+ WatchlistProgramId string `json:"watchlist_program_id"`
+}
+
+type UserAccountIdentity struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ Email string `json:"email"`
+ Name string `json:"name"`
+ PhoneNumber string `json:"phone_number"`
+ Ssn string `json:"ssn"`
+ SsnLast4 string `json:"ssn_last_4"`
+}
+
+type UserAccountIdentityAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type UserAccountIdentityEditCounts struct {
+ Edits1d int `json:"edits_1d"`
+ Edits30d int `json:"edits_30d"`
+ Edits365d int `json:"edits_365d"`
+ EditsAllTime int `json:"edits_all_time"`
+ EditsCurrent int `json:"edits_current"`
+}
+
+type UserAccountIdentityEditHistory struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ Email string `json:"email"`
+ Name string `json:"name"`
+ OfficialDocument string `json:"official_document"`
+}
+
+type UserAccountIdentityName struct {
+ FirstName string `json:"first_name"`
+ LastName string `json:"last_name"`
+}
+
+type UserAccountIdentityOfficialDocument struct {
+ Ssn string `json:"ssn"`
+}
+
+type UserAccountItem struct {
+ AccessToken string `json:"access_token"`
+ ItemId string `json:"item_id"`
+}
+
+type UserAccountRevokedWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type UserAccountSessionEvent struct {
+ Name string `json:"name"`
+ Outcome string `json:"outcome"`
+ Timestamp string `json:"timestamp"`
+}
+
+type UserAccountSessionEventSendRequest struct {
+ ClientId string `json:"client_id"`
+ CohortId string `json:"cohort_id"`
+ Event string `json:"event"`
+ LinkSessionId string `json:"link_session_id"`
+ Secret string `json:"secret"`
+}
+
+type UserAccountSessionEventSendResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type UserAccountSessionGetRequest struct {
+ ClientId string `json:"client_id"`
+ PublicToken string `json:"public_token"`
+ Secret string `json:"secret"`
+}
+
+type UserAccountSessionGetResponse struct {
+ Identity string `json:"identity"`
+ IdentityEditHistory string `json:"identity_edit_history"`
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+}
+
+type UserAddress struct {
+ City string `json:"city"`
+ Country string `json:"country"`
+ PostalCode string `json:"postal_code"`
+ Region string `json:"region"`
+ Street string `json:"street"`
+ Street2 string `json:"street2"`
+}
+
+type UserCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ ConsumerReportUserIdentity string `json:"consumer_report_user_identity"`
+ EndCustomer string `json:"end_customer"`
+ Identity string `json:"identity"`
+ Secret string `json:"secret"`
+ WithUpgradedUser bool `json:"with_upgraded_user"`
+}
+
+type UserCreateResponse struct {
+ RequestId string `json:"request_id"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type UserCustomPassword struct {
+ ForceError string `json:"force_error"`
+ Mfa string `json:"mfa"`
+ OverrideAccounts string `json:"override_accounts"`
+ Recaptcha string `json:"recaptcha"`
+ Seed string `json:"seed"`
+ Version string `json:"version"`
+}
+
+type UserDataOverview struct {
+ DaysAvailable int `json:"days_available"`
+ NewestTransactionDate string `json:"newest_transaction_date"`
+ OldestTransactionDate string `json:"oldest_transaction_date"`
+ TotalInflows float64 `json:"total_inflows"`
+ TotalOutflows float64 `json:"total_outflows"`
+ TransactionCount int `json:"transaction_count"`
+}
+
+type UserFinancialDataRefreshRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type UserFinancialDataRefreshResponse struct {
+ RequestId string `json:"request_id"`
+ Results string `json:"results"`
+ UserId string `json:"user_id"`
+}
+
+type UserGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type UserGetResponse struct {
+ ClientUserId string `json:"client_user_id"`
+ CreatedAt string `json:"created_at"`
+ Identity string `json:"identity"`
+ RequestId string `json:"request_id"`
+ UpdatedAt string `json:"updated_at"`
+ UserId string `json:"user_id"`
+}
+
+type UserIDNumber struct {
+ Type string `json:"type"`
+ Value string `json:"value"`
+}
+
+type UserIdentityRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type UserIdentityRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type UserItemsAssociateRequest struct {
+ ClientId string `json:"client_id"`
+ ItemIds string `json:"item_ids"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type UserItemsAssociateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type UserItemsGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type UserItemsGetResponse struct {
+ Items string `json:"items"`
+ RequestId string `json:"request_id"`
+}
+
+type UserItemsRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ ItemIds string `json:"item_ids"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type UserItemsRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type UserPermissionRevokedWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ UserId string `json:"user_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type UserProductsTerminateRequest struct {
+ ClientId string `json:"client_id"`
+ Products string `json:"products"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type UserProductsTerminateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type UserRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type UserRemoveResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type UserThirdPartyTokenCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ExpirationTime string `json:"expiration_time"`
+ Secret string `json:"secret"`
+ ThirdPartyClientId string `json:"third_party_client_id"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type UserThirdPartyTokenCreateResponse struct {
+ RequestId string `json:"request_id"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+}
+
+type UserThirdPartyTokenRemoveRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ ThirdPartyUserToken string `json:"third_party_user_token"`
+}
+
+type UserThirdPartyTokenRemoveResponse struct {
+ Removed bool `json:"removed"`
+ RequestId string `json:"request_id"`
+}
+
+type UserTransactionsRefreshRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+}
+
+type UserTransactionsRefreshResponse struct {
+ RequestId string `json:"request_id"`
+ Results string `json:"results"`
+ UserId string `json:"user_id"`
+}
+
+type UserUpdateRequest struct {
+ ClientId string `json:"client_id"`
+ ConsumerReportUserIdentity string `json:"consumer_report_user_identity"`
+ Identity string `json:"identity"`
+ Secret string `json:"secret"`
+ UserId string `json:"user_id"`
+ UserToken string `json:"user_token"`
+}
+
+type UserUpdateResponse struct {
+ RequestId string `json:"request_id"`
+}
+
+type ValidationSource struct {
+ ValidationSourceName string `json:"ValidationSourceName"`
+ ValidationSourceReferenceIdentifier string `json:"ValidationSourceReferenceIdentifier"`
+}
+
+type ValidationSources struct {
+ VALIDATIONSOURCE string `json:"VALIDATION_SOURCE"`
+}
+
+type VerificationExpiredWebhook struct {
+ AccountId string `json:"account_id"`
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type VerificationOfAsset struct {
+ REPORTINGINFORMATION string `json:"REPORTING_INFORMATION"`
+ SERVICEPRODUCTFULFILLMENT string `json:"SERVICE_PRODUCT_FULFILLMENT"`
+ VERIFICATIONOFASSETRESPONSE string `json:"VERIFICATION_OF_ASSET_RESPONSE"`
+}
+
+type VerificationOfAssetResponse struct {
+ ASSETS string `json:"ASSETS"`
+}
+
+type VerifySMSDetails struct {
+ Status string `json:"status"`
+ Verifications string `json:"verifications"`
+}
+
+type W2 struct {
+ AllocatedTips string `json:"allocated_tips"`
+ Box12 string `json:"box_12"`
+ Box9 string `json:"box_9"`
+ DependentCareBenefits string `json:"dependent_care_benefits"`
+ Employee string `json:"employee"`
+ Employer string `json:"employer"`
+ EmployerIdNumber string `json:"employer_id_number"`
+ FederalIncomeTaxWithheld string `json:"federal_income_tax_withheld"`
+ MedicareTaxWithheld string `json:"medicare_tax_withheld"`
+ MedicareWagesAndTips string `json:"medicare_wages_and_tips"`
+ NonqualifiedPlans string `json:"nonqualified_plans"`
+ Other string `json:"other"`
+ RetirementPlan string `json:"retirement_plan"`
+ SocialSecurityTaxWithheld string `json:"social_security_tax_withheld"`
+ SocialSecurityTips string `json:"social_security_tips"`
+ SocialSecurityWages string `json:"social_security_wages"`
+ StateAndLocalWages string `json:"state_and_local_wages"`
+ StatutoryEmployee string `json:"statutory_employee"`
+ TaxYear string `json:"tax_year"`
+ ThirdPartySickPay string `json:"third_party_sick_pay"`
+ WagesTipsOtherComp string `json:"wages_tips_other_comp"`
+}
+
+type W2Box12 struct {
+ Amount string `json:"amount"`
+ Code string `json:"code"`
+}
+
+type W2Box12Override struct {
+ Amount string `json:"amount"`
+ Code string `json:"code"`
+}
+
+type W2Override struct {
+ AllocatedTips string `json:"allocated_tips"`
+ Box12 string `json:"box_12"`
+ Box9 string `json:"box_9"`
+ DependentCareBenefits string `json:"dependent_care_benefits"`
+ Employee string `json:"employee"`
+ Employer string `json:"employer"`
+ EmployerIdNumber string `json:"employer_id_number"`
+ FederalIncomeTaxWithheld string `json:"federal_income_tax_withheld"`
+ MedicareTaxWithheld string `json:"medicare_tax_withheld"`
+ MedicareWagesAndTips string `json:"medicare_wages_and_tips"`
+ NonqualifiedPlans string `json:"nonqualified_plans"`
+ Other string `json:"other"`
+ RetirementPlan string `json:"retirement_plan"`
+ SocialSecurityTaxWithheld string `json:"social_security_tax_withheld"`
+ SocialSecurityTips string `json:"social_security_tips"`
+ SocialSecurityWages string `json:"social_security_wages"`
+ StateAndLocalWages string `json:"state_and_local_wages"`
+ StatutoryEmployee string `json:"statutory_employee"`
+ TaxYear string `json:"tax_year"`
+ ThirdPartySickPay string `json:"third_party_sick_pay"`
+ WagesTipsOtherComp string `json:"wages_tips_other_comp"`
+}
+
+type W2StateAndLocalWages struct {
+ EmployerStateIdNumber string `json:"employer_state_id_number"`
+ LocalIncomeTax string `json:"local_income_tax"`
+ LocalWagesTips string `json:"local_wages_tips"`
+ LocalityName string `json:"locality_name"`
+ State string `json:"state"`
+ StateIncomeTax string `json:"state_income_tax"`
+ StateWagesTips string `json:"state_wages_tips"`
+}
+
+type W2StateAndLocalWagesOverride struct {
+ EmployerStateIdNumber string `json:"employer_state_id_number"`
+ LocalIncomeTax string `json:"local_income_tax"`
+ LocalWagesTips string `json:"local_wages_tips"`
+ LocalityName string `json:"locality_name"`
+ State string `json:"state"`
+ StateIncomeTax string `json:"state_income_tax"`
+ StateWagesTips string `json:"state_wages_tips"`
+}
+
+type Wallet struct {
+ Balance string `json:"balance"`
+ Numbers string `json:"numbers"`
+ RecipientId string `json:"recipient_id"`
+ Status string `json:"status"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletBalance struct {
+ Available float64 `json:"available"`
+ Current float64 `json:"current"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+}
+
+type WalletCreateRequest struct {
+ ClientId string `json:"client_id"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Secret string `json:"secret"`
+}
+
+type WalletCreateResponse struct {
+ Balance string `json:"balance"`
+ Numbers string `json:"numbers"`
+ RecipientId string `json:"recipient_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletGetResponse struct {
+ Balance string `json:"balance"`
+ Numbers string `json:"numbers"`
+ RecipientId string `json:"recipient_id"`
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Secret string `json:"secret"`
+}
+
+type WalletListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ Wallets string `json:"wallets"`
+}
+
+type WalletNumbers struct {
+ Bacs string `json:"bacs"`
+ International string `json:"international"`
+}
+
+type WalletTransaction struct {
+ Amount string `json:"amount"`
+ Counterparty string `json:"counterparty"`
+ CreatedAt string `json:"created_at"`
+ Error string `json:"error"`
+ FailureReason string `json:"failure_reason"`
+ LastStatusUpdate string `json:"last_status_update"`
+ PayeeVerificationStatus string `json:"payee_verification_status"`
+ PaymentId string `json:"payment_id"`
+ Reference string `json:"reference"`
+ RelatedTransactions string `json:"related_transactions"`
+ Scheme string `json:"scheme"`
+ Status string `json:"status"`
+ TransactionId string `json:"transaction_id"`
+ Type string `json:"type"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletTransactionAmount struct {
+ IsoCurrencyCode string `json:"iso_currency_code"`
+ Value float64 `json:"value"`
+}
+
+type WalletTransactionCounterparty struct {
+ Address string `json:"address"`
+ DateOfBirth string `json:"date_of_birth"`
+ Name string `json:"name"`
+ Numbers string `json:"numbers"`
+}
+
+type WalletTransactionCounterpartyBACS struct {
+ Account string `json:"account"`
+ SortCode string `json:"sort_code"`
+}
+
+type WalletTransactionCounterpartyInternational struct {
+ Iban string `json:"iban"`
+}
+
+type WalletTransactionCounterpartyNumbers struct {
+ Bacs string `json:"bacs"`
+ International string `json:"international"`
+}
+
+type WalletTransactionExecuteRequest struct {
+ Amount string `json:"amount"`
+ ClientId string `json:"client_id"`
+ Counterparty string `json:"counterparty"`
+ IdempotencyKey string `json:"idempotency_key"`
+ OriginatingFundSource string `json:"originating_fund_source"`
+ Reference string `json:"reference"`
+ Secret string `json:"secret"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletTransactionExecuteResponse struct {
+ RequestId string `json:"request_id"`
+ Status string `json:"status"`
+ TransactionId string `json:"transaction_id"`
+}
+
+type WalletTransactionGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ TransactionId string `json:"transaction_id"`
+}
+
+type WalletTransactionGetResponse struct {
+ Amount string `json:"amount"`
+ Counterparty string `json:"counterparty"`
+ CreatedAt string `json:"created_at"`
+ Error string `json:"error"`
+ FailureReason string `json:"failure_reason"`
+ LastStatusUpdate string `json:"last_status_update"`
+ PayeeVerificationStatus string `json:"payee_verification_status"`
+ PaymentId string `json:"payment_id"`
+ Reference string `json:"reference"`
+ RelatedTransactions string `json:"related_transactions"`
+ RequestId string `json:"request_id"`
+ Scheme string `json:"scheme"`
+ Status string `json:"status"`
+ TransactionId string `json:"transaction_id"`
+ Type string `json:"type"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletTransactionListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ WalletId string `json:"wallet_id"`
+}
+
+type WalletTransactionListRequestOptions struct {
+ EndTime string `json:"end_time"`
+ StartTime string `json:"start_time"`
+}
+
+type WalletTransactionListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ Transactions string `json:"transactions"`
+}
+
+type WalletTransactionRelation struct {
+ Id string `json:"id"`
+ Type string `json:"type"`
+}
+
+type WalletTransactionStatusUpdateWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ NewStatus string `json:"new_status"`
+ OldStatus string `json:"old_status"`
+ PaymentId string `json:"payment_id"`
+ Timestamp string `json:"timestamp"`
+ TransactionId string `json:"transaction_id"`
+ WalletId string `json:"wallet_id"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type WalletTransactionsListRequest struct {
+ ClientId string `json:"client_id"`
+ Count int `json:"count"`
+ Cursor string `json:"cursor"`
+ Options string `json:"options"`
+ Secret string `json:"secret"`
+ WalletId string `json:"wallet_id"`
+}
+
+type Warning struct {
+ Cause string `json:"cause"`
+ WarningCode string `json:"warning_code"`
+ WarningType string `json:"warning_type"`
+}
+
+type WatchlistScreeningAuditTrail struct {
+ DashboardUserId string `json:"dashboard_user_id"`
+ Source string `json:"source"`
+ Timestamp string `json:"timestamp"`
+}
+
+type WatchlistScreeningDocument struct {
+ Number string `json:"number"`
+ Type string `json:"type"`
+}
+
+type WatchlistScreeningEntityCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ SearchTerms string `json:"search_terms"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityCreateResponse struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningEntityGetRequest struct {
+ ClientId string `json:"client_id"`
+ EntityWatchlistScreeningId string `json:"entity_watchlist_screening_id"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityGetResponse struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningEntityHistoryListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ EntityWatchlistScreeningId string `json:"entity_watchlist_screening_id"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityHistoryListResponse struct {
+ EntityWatchlistScreenings string `json:"entity_watchlist_screenings"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityHitListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ EntityWatchlistScreeningId string `json:"entity_watchlist_screening_id"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityHitListResponse struct {
+ EntityWatchlistScreeningHits string `json:"entity_watchlist_screening_hits"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityListRequest struct {
+ Assignee string `json:"assignee"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Cursor string `json:"cursor"`
+ EntityWatchlistProgramId string `json:"entity_watchlist_program_id"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningEntityListResponse struct {
+ EntityWatchlistScreenings string `json:"entity_watchlist_screenings"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityProgramGetRequest struct {
+ ClientId string `json:"client_id"`
+ EntityWatchlistProgramId string `json:"entity_watchlist_program_id"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityProgramGetResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ IsArchived bool `json:"is_archived"`
+ IsRescanningEnabled bool `json:"is_rescanning_enabled"`
+ ListsEnabled string `json:"lists_enabled"`
+ Name string `json:"name"`
+ NameSensitivity string `json:"name_sensitivity"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityProgramListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityProgramListResponse struct {
+ EntityWatchlistPrograms string `json:"entity_watchlist_programs"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityReviewCreateRequest struct {
+ ClientId string `json:"client_id"`
+ Comment string `json:"comment"`
+ ConfirmedHits string `json:"confirmed_hits"`
+ DismissedHits string `json:"dismissed_hits"`
+ EntityWatchlistScreeningId string `json:"entity_watchlist_screening_id"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityReviewCreateResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ Comment string `json:"comment"`
+ ConfirmedHits string `json:"confirmed_hits"`
+ DismissedHits string `json:"dismissed_hits"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityReviewListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ EntityWatchlistScreeningId string `json:"entity_watchlist_screening_id"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningEntityReviewListResponse struct {
+ EntityWatchlistScreeningReviews string `json:"entity_watchlist_screening_reviews"`
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningEntityUpdateRequest struct {
+ Assignee string `json:"assignee"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ EntityWatchlistScreeningId string `json:"entity_watchlist_screening_id"`
+ ResetFields string `json:"reset_fields"`
+ SearchTerms string `json:"search_terms"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningEntityUpdateResponse struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningHit struct {
+ Analysis string `json:"analysis"`
+ Data string `json:"data"`
+ FirstActive string `json:"first_active"`
+ HistoricalSince string `json:"historical_since"`
+ Id string `json:"id"`
+ InactiveSince string `json:"inactive_since"`
+ ListCode string `json:"list_code"`
+ PlaidUid string `json:"plaid_uid"`
+ ReviewStatus string `json:"review_status"`
+ SourceUid string `json:"source_uid"`
+}
+
+type WatchlistScreeningHitLocations struct {
+ Country string `json:"country"`
+ Full string `json:"full"`
+}
+
+type WatchlistScreeningIndividual struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningIndividualCreateRequest struct {
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ SearchTerms string `json:"search_terms"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningIndividualCreateResponse struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningIndividualGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type WatchlistScreeningIndividualGetResponse struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningIndividualHistoryListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type WatchlistScreeningIndividualHistoryListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ WatchlistScreenings string `json:"watchlist_screenings"`
+}
+
+type WatchlistScreeningIndividualHitListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type WatchlistScreeningIndividualHitListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ WatchlistScreeningHits string `json:"watchlist_screening_hits"`
+}
+
+type WatchlistScreeningIndividualListRequest struct {
+ Assignee string `json:"assignee"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+ WatchlistProgramId string `json:"watchlist_program_id"`
+}
+
+type WatchlistScreeningIndividualListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ WatchlistScreenings string `json:"watchlist_screenings"`
+}
+
+type WatchlistScreeningIndividualProgramGetRequest struct {
+ ClientId string `json:"client_id"`
+ Secret string `json:"secret"`
+ WatchlistProgramId string `json:"watchlist_program_id"`
+}
+
+type WatchlistScreeningIndividualProgramGetResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ CreatedAt string `json:"created_at"`
+ Id string `json:"id"`
+ IsArchived bool `json:"is_archived"`
+ IsRescanningEnabled bool `json:"is_rescanning_enabled"`
+ ListsEnabled string `json:"lists_enabled"`
+ Name string `json:"name"`
+ NameSensitivity string `json:"name_sensitivity"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningIndividualProgramListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+}
+
+type WatchlistScreeningIndividualProgramListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ WatchlistPrograms string `json:"watchlist_programs"`
+}
+
+type WatchlistScreeningIndividualReviewCreateRequest struct {
+ ClientId string `json:"client_id"`
+ Comment string `json:"comment"`
+ ConfirmedHits string `json:"confirmed_hits"`
+ DismissedHits string `json:"dismissed_hits"`
+ Secret string `json:"secret"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type WatchlistScreeningIndividualReviewCreateResponse struct {
+ AuditTrail string `json:"audit_trail"`
+ Comment string `json:"comment"`
+ ConfirmedHits string `json:"confirmed_hits"`
+ DismissedHits string `json:"dismissed_hits"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+}
+
+type WatchlistScreeningIndividualReviewListRequest struct {
+ ClientId string `json:"client_id"`
+ Cursor string `json:"cursor"`
+ Secret string `json:"secret"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type WatchlistScreeningIndividualReviewListResponse struct {
+ NextCursor string `json:"next_cursor"`
+ RequestId string `json:"request_id"`
+ WatchlistScreeningReviews string `json:"watchlist_screening_reviews"`
+}
+
+type WatchlistScreeningIndividualUpdateRequest struct {
+ Assignee string `json:"assignee"`
+ ClientId string `json:"client_id"`
+ ClientUserId string `json:"client_user_id"`
+ ResetFields string `json:"reset_fields"`
+ SearchTerms string `json:"search_terms"`
+ Secret string `json:"secret"`
+ Status string `json:"status"`
+ WatchlistScreeningId string `json:"watchlist_screening_id"`
+}
+
+type WatchlistScreeningIndividualUpdateResponse struct {
+ Assignee string `json:"assignee"`
+ AuditTrail string `json:"audit_trail"`
+ ClientUserId string `json:"client_user_id"`
+ Id string `json:"id"`
+ RequestId string `json:"request_id"`
+ SearchTerms string `json:"search_terms"`
+ Status string `json:"status"`
+}
+
+type WatchlistScreeningRequestSearchTerms struct {
+ Country string `json:"country"`
+ DateOfBirth string `json:"date_of_birth"`
+ DocumentNumber string `json:"document_number"`
+ LegalName string `json:"legal_name"`
+ WatchlistProgramId string `json:"watchlist_program_id"`
+}
+
+type WatchlistScreeningReview struct {
+ AuditTrail string `json:"audit_trail"`
+ Comment string `json:"comment"`
+ ConfirmedHits string `json:"confirmed_hits"`
+ DismissedHits string `json:"dismissed_hits"`
+ Id string `json:"id"`
+}
+
+type WatchlistScreeningSearchTerms struct {
+ Country string `json:"country"`
+ DateOfBirth string `json:"date_of_birth"`
+ DocumentNumber string `json:"document_number"`
+ LegalName string `json:"legal_name"`
+ Version int `json:"version"`
+ WatchlistProgramId string `json:"watchlist_program_id"`
+}
+
+type WebhookUpdateAcknowledgedWebhook struct {
+ Environment string `json:"environment"`
+ Error string `json:"error"`
+ ItemId string `json:"item_id"`
+ NewWebhookUrl string `json:"new_webhook_url"`
+ WebhookCode string `json:"webhook_code"`
+ WebhookType string `json:"webhook_type"`
+}
+
+type WebhookVerificationKeyGetRequest struct {
+ ClientId string `json:"client_id"`
+ KeyId string `json:"key_id"`
+ Secret string `json:"secret"`
+}
+
+type WebhookVerificationKeyGetResponse struct {
+ Key string `json:"key"`
+ RequestId string `json:"request_id"`
+}
+
+type YTDGrossIncomeSummaryFieldNumber struct {
+ Value float64 `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type YTDNetIncomeSummaryFieldNumber struct {
+ Value float64 `json:"value"`
+ VerificationStatus string `json:"verification_status"`
+}
+
+type YieldRate struct {
+ Percentage float64 `json:"percentage"`
+ Type string `json:"type"`
+}
+
← 02d022fe test: add coverage for research, dogfood, comparative, textf
·
back to Cli Printing Press
·
feat(catalog): generate Pipedrive CLI from official OpenAPI 451b7cb7 →