# Paykeys ## Lookup a paykey `client.Paykeys.Get(ctx, id, query) (*PaykeyV1, error)` **get** `/v1/paykeys/{id}` Retrieves the details of an existing paykey. Supply the unique paykey `id` and Straddle will return the corresponding paykey record , including the `paykey` token value and masked bank account details. ### Parameters - `id string` - `query PaykeyGetParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyV1 struct{…}` - `Data PaykeyV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyV1DataConfig` - `ProcessingMethod string` - `const PaykeyV1DataConfigProcessingMethodInline PaykeyV1DataConfigProcessingMethod = "inline"` - `const PaykeyV1DataConfigProcessingMethodBackground PaykeyV1DataConfigProcessingMethod = "background"` - `const PaykeyV1DataConfigProcessingMethodSkip PaykeyV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyV1DataConfigSandboxOutcomeStandard PaykeyV1DataConfigSandboxOutcome = "standard"` - `const PaykeyV1DataConfigSandboxOutcomeActive PaykeyV1DataConfigSandboxOutcome = "active"` - `const PaykeyV1DataConfigSandboxOutcomeRejected PaykeyV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyV1DataConfigSandboxOutcomeReview PaykeyV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyV1DataSourceBankAccount PaykeyV1DataSource = "bank_account"` - `const PaykeyV1DataSourceStraddle PaykeyV1DataSource = "straddle"` - `const PaykeyV1DataSourceMx PaykeyV1DataSource = "mx"` - `const PaykeyV1DataSourcePlaid PaykeyV1DataSource = "plaid"` - `const PaykeyV1DataSourceTan PaykeyV1DataSource = "tan"` - `const PaykeyV1DataSourceQuiltt PaykeyV1DataSource = "quiltt"` - `Status string` - `const PaykeyV1DataStatusPending PaykeyV1DataStatus = "pending"` - `const PaykeyV1DataStatusActive PaykeyV1DataStatus = "active"` - `const PaykeyV1DataStatusInactive PaykeyV1DataStatus = "inactive"` - `const PaykeyV1DataStatusRejected PaykeyV1DataStatus = "rejected"` - `const PaykeyV1DataStatusReview PaykeyV1DataStatus = "review"` - `const PaykeyV1DataStatusBlocked PaykeyV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyV1DataBalance` - `Status string` - `const PaykeyV1DataBalanceStatusPending PaykeyV1DataBalanceStatus = "pending"` - `const PaykeyV1DataBalanceStatusCompleted PaykeyV1DataBalanceStatus = "completed"` - `const PaykeyV1DataBalanceStatusFailed PaykeyV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyV1DataBankDataAccountTypeChecking PaykeyV1DataBankDataAccountType = "checking"` - `const PaykeyV1DataBankDataAccountTypeSavings PaykeyV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyV1DataStatusDetailsReasonInsufficientFunds PaykeyV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyV1DataStatusDetailsReasonClosedBankAccount PaykeyV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidBankAccount PaykeyV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidRouting PaykeyV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyV1DataStatusDetailsReasonDisputed PaykeyV1DataStatusDetailsReason = "disputed"` - `const PaykeyV1DataStatusDetailsReasonPaymentStopped PaykeyV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyV1DataStatusDetailsReasonOwnerDeceased PaykeyV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyV1DataStatusDetailsReasonFrozenBankAccount PaykeyV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyV1DataStatusDetailsReasonRiskReview PaykeyV1DataStatusDetailsReason = "risk_review"` - `const PaykeyV1DataStatusDetailsReasonFraudulent PaykeyV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyV1DataStatusDetailsReasonDuplicateEntry PaykeyV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyV1DataStatusDetailsReasonInvalidPaykey PaykeyV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyV1DataStatusDetailsReasonPaymentBlocked PaykeyV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyV1DataStatusDetailsReasonAmountTooLarge PaykeyV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyV1DataStatusDetailsReasonTooManyAttempts PaykeyV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyV1DataStatusDetailsReasonInternalSystemError PaykeyV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyV1DataStatusDetailsReasonUserRequest PaykeyV1DataStatusDetailsReason = "user_request"` - `const PaykeyV1DataStatusDetailsReasonOk PaykeyV1DataStatusDetailsReason = "ok"` - `const PaykeyV1DataStatusDetailsReasonOtherNetworkReturn PaykeyV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyV1DataStatusDetailsReasonPayoutRefused PaykeyV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyV1DataStatusDetailsReasonCancelRequest PaykeyV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyV1DataStatusDetailsReasonFailedVerification PaykeyV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyV1DataStatusDetailsReasonRequireReview PaykeyV1DataStatusDetailsReason = "require_review"` - `const PaykeyV1DataStatusDetailsReasonBlockedBySystem PaykeyV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyV1DataStatusDetailsReasonWatchtowerReview PaykeyV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyV1DataStatusDetailsReasonValidating PaykeyV1DataStatusDetailsReason = "validating"` - `const PaykeyV1DataStatusDetailsReasonAutoHold PaykeyV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyV1DataStatusDetailsSourceWatchtower PaykeyV1DataStatusDetailsSource = "watchtower"` - `const PaykeyV1DataStatusDetailsSourceBankDecline PaykeyV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyV1DataStatusDetailsSourceCustomerDispute PaykeyV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyV1DataStatusDetailsSourceUserAction PaykeyV1DataStatusDetailsSource = "user_action"` - `const PaykeyV1DataStatusDetailsSourceSystem PaykeyV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyV1ResponseTypeObject PaykeyV1ResponseType = "object"` - `const PaykeyV1ResponseTypeArray PaykeyV1ResponseType = "array"` - `const PaykeyV1ResponseTypeError PaykeyV1ResponseType = "error"` - `const PaykeyV1ResponseTypeNone PaykeyV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) paykeyV1, err := client.Paykeys.Get( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", paykeyV1.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Unmask a paykey `client.Paykeys.Unmasked(ctx, id, query) (*PaykeyUnmaskedV1, error)` **get** `/v1/paykeys/{id}/unmasked` Retrieves the unmasked details of an existing paykey. Supply the unique paykey `id` and Straddle will return the corresponding paykey record, including the unmasked bank account details. This endpoint needs to be enabled by Straddle for your account and should only be used when absolutely necessary. ### Parameters - `id string` - `query PaykeyUnmaskedParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyUnmaskedV1 struct{…}` - `Data PaykeyUnmaskedV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyUnmaskedV1DataConfig` - `ProcessingMethod string` - `const PaykeyUnmaskedV1DataConfigProcessingMethodInline PaykeyUnmaskedV1DataConfigProcessingMethod = "inline"` - `const PaykeyUnmaskedV1DataConfigProcessingMethodBackground PaykeyUnmaskedV1DataConfigProcessingMethod = "background"` - `const PaykeyUnmaskedV1DataConfigProcessingMethodSkip PaykeyUnmaskedV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeStandard PaykeyUnmaskedV1DataConfigSandboxOutcome = "standard"` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeActive PaykeyUnmaskedV1DataConfigSandboxOutcome = "active"` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeRejected PaykeyUnmaskedV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeReview PaykeyUnmaskedV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyUnmaskedV1DataSourceBankAccount PaykeyUnmaskedV1DataSource = "bank_account"` - `const PaykeyUnmaskedV1DataSourceStraddle PaykeyUnmaskedV1DataSource = "straddle"` - `const PaykeyUnmaskedV1DataSourceMx PaykeyUnmaskedV1DataSource = "mx"` - `const PaykeyUnmaskedV1DataSourcePlaid PaykeyUnmaskedV1DataSource = "plaid"` - `const PaykeyUnmaskedV1DataSourceTan PaykeyUnmaskedV1DataSource = "tan"` - `const PaykeyUnmaskedV1DataSourceQuiltt PaykeyUnmaskedV1DataSource = "quiltt"` - `Status string` - `const PaykeyUnmaskedV1DataStatusPending PaykeyUnmaskedV1DataStatus = "pending"` - `const PaykeyUnmaskedV1DataStatusActive PaykeyUnmaskedV1DataStatus = "active"` - `const PaykeyUnmaskedV1DataStatusInactive PaykeyUnmaskedV1DataStatus = "inactive"` - `const PaykeyUnmaskedV1DataStatusRejected PaykeyUnmaskedV1DataStatus = "rejected"` - `const PaykeyUnmaskedV1DataStatusReview PaykeyUnmaskedV1DataStatus = "review"` - `const PaykeyUnmaskedV1DataStatusBlocked PaykeyUnmaskedV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyUnmaskedV1DataBalance` - `Status string` - `const PaykeyUnmaskedV1DataBalanceStatusPending PaykeyUnmaskedV1DataBalanceStatus = "pending"` - `const PaykeyUnmaskedV1DataBalanceStatusCompleted PaykeyUnmaskedV1DataBalanceStatus = "completed"` - `const PaykeyUnmaskedV1DataBalanceStatusFailed PaykeyUnmaskedV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyUnmaskedV1DataBankData` - `AccountNumber string` The bank account number - `AccountType string` - `const PaykeyUnmaskedV1DataBankDataAccountTypeChecking PaykeyUnmaskedV1DataBankDataAccountType = "checking"` - `const PaykeyUnmaskedV1DataBankDataAccountTypeSavings PaykeyUnmaskedV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyUnmaskedV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInsufficientFunds PaykeyUnmaskedV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonClosedBankAccount PaykeyUnmaskedV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInvalidBankAccount PaykeyUnmaskedV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInvalidRouting PaykeyUnmaskedV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonDisputed PaykeyUnmaskedV1DataStatusDetailsReason = "disputed"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonPaymentStopped PaykeyUnmaskedV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonOwnerDeceased PaykeyUnmaskedV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonFrozenBankAccount PaykeyUnmaskedV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonRiskReview PaykeyUnmaskedV1DataStatusDetailsReason = "risk_review"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonFraudulent PaykeyUnmaskedV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonDuplicateEntry PaykeyUnmaskedV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInvalidPaykey PaykeyUnmaskedV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonPaymentBlocked PaykeyUnmaskedV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonAmountTooLarge PaykeyUnmaskedV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonTooManyAttempts PaykeyUnmaskedV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInternalSystemError PaykeyUnmaskedV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonUserRequest PaykeyUnmaskedV1DataStatusDetailsReason = "user_request"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonOk PaykeyUnmaskedV1DataStatusDetailsReason = "ok"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonOtherNetworkReturn PaykeyUnmaskedV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonPayoutRefused PaykeyUnmaskedV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonCancelRequest PaykeyUnmaskedV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonFailedVerification PaykeyUnmaskedV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonRequireReview PaykeyUnmaskedV1DataStatusDetailsReason = "require_review"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonBlockedBySystem PaykeyUnmaskedV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonWatchtowerReview PaykeyUnmaskedV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonValidating PaykeyUnmaskedV1DataStatusDetailsReason = "validating"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonAutoHold PaykeyUnmaskedV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyUnmaskedV1DataStatusDetailsSourceWatchtower PaykeyUnmaskedV1DataStatusDetailsSource = "watchtower"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceBankDecline PaykeyUnmaskedV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceCustomerDispute PaykeyUnmaskedV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceUserAction PaykeyUnmaskedV1DataStatusDetailsSource = "user_action"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceSystem PaykeyUnmaskedV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyUnmaskedV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyUnmaskedV1ResponseTypeObject PaykeyUnmaskedV1ResponseType = "object"` - `const PaykeyUnmaskedV1ResponseTypeArray PaykeyUnmaskedV1ResponseType = "array"` - `const PaykeyUnmaskedV1ResponseTypeError PaykeyUnmaskedV1ResponseType = "error"` - `const PaykeyUnmaskedV1ResponseTypeNone PaykeyUnmaskedV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) paykeyUnmaskedV1, err := client.Paykeys.Unmasked( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyUnmaskedParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", paykeyUnmaskedV1.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "123456789", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## List paykeys `client.Paykeys.List(ctx, params) (*PageNumberSchema[PaykeySummaryPagedV1Data], error)` **get** `/v1/paykeys` Returns a list of paykeys associated with a Straddle account. This endpoint supports advanced sorting and filtering options. ### Parameters - `params PaykeyListParams` - `CustomerID param.Field[string]` Query param: Filter paykeys by related customer ID. - `PageNumber param.Field[int64]` Query param: Page number for paginated results. Starts at 1. - `PageSize param.Field[int64]` Query param: Number of results per page. Maximum: 1000. - `SearchText param.Field[string]` Query param: General search term to filter paykeys. - `SortBy param.Field[PaykeyListParamsSortBy]` Query param - `const PaykeyListParamsSortByInstitutionName PaykeyListParamsSortBy = "institution_name"` - `const PaykeyListParamsSortByExpiresAt PaykeyListParamsSortBy = "expires_at"` - `const PaykeyListParamsSortByCreatedAt PaykeyListParamsSortBy = "created_at"` - `SortOrder param.Field[PaykeyListParamsSortOrder]` Query param - `const PaykeyListParamsSortOrderAsc PaykeyListParamsSortOrder = "asc"` - `const PaykeyListParamsSortOrderDesc PaykeyListParamsSortOrder = "desc"` - `Source param.Field[[]string]` Query param: Filter paykeys by their source. - `const PaykeyListParamsSourceBankAccount PaykeyListParamsSource = "bank_account"` - `const PaykeyListParamsSourceStraddle PaykeyListParamsSource = "straddle"` - `const PaykeyListParamsSourceMx PaykeyListParamsSource = "mx"` - `const PaykeyListParamsSourcePlaid PaykeyListParamsSource = "plaid"` - `const PaykeyListParamsSourceTan PaykeyListParamsSource = "tan"` - `const PaykeyListParamsSourceQuiltt PaykeyListParamsSource = "quiltt"` - `Status param.Field[[]string]` Query param: Filter paykeys by their current status. - `const PaykeyListParamsStatusPending PaykeyListParamsStatus = "pending"` - `const PaykeyListParamsStatusActive PaykeyListParamsStatus = "active"` - `const PaykeyListParamsStatusInactive PaykeyListParamsStatus = "inactive"` - `const PaykeyListParamsStatusRejected PaykeyListParamsStatus = "rejected"` - `const PaykeyListParamsStatusReview PaykeyListParamsStatus = "review"` - `const PaykeyListParamsStatusBlocked PaykeyListParamsStatus = "blocked"` - `UnblockEligible param.Field[bool]` Query param: Filter paykeys by unblock eligibility. When true, returns only blocked paykeys eligible for client-initiated unblocking (blocked due to R29 returns and not previously unblocked). When false, returns only blocked paykeys that are not eligible for unblocking. - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeySummaryPagedV1Data struct{…}` - `ID string` Unique identifier for the paykey. - `Config PaykeySummaryPagedV1DataConfig` - `ProcessingMethod string` - `const PaykeySummaryPagedV1DataConfigProcessingMethodInline PaykeySummaryPagedV1DataConfigProcessingMethod = "inline"` - `const PaykeySummaryPagedV1DataConfigProcessingMethodBackground PaykeySummaryPagedV1DataConfigProcessingMethod = "background"` - `const PaykeySummaryPagedV1DataConfigProcessingMethodSkip PaykeySummaryPagedV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeStandard PaykeySummaryPagedV1DataConfigSandboxOutcome = "standard"` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeActive PaykeySummaryPagedV1DataConfigSandboxOutcome = "active"` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeRejected PaykeySummaryPagedV1DataConfigSandboxOutcome = "rejected"` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeReview PaykeySummaryPagedV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeySummaryPagedV1DataSourceBankAccount PaykeySummaryPagedV1DataSource = "bank_account"` - `const PaykeySummaryPagedV1DataSourceStraddle PaykeySummaryPagedV1DataSource = "straddle"` - `const PaykeySummaryPagedV1DataSourceMx PaykeySummaryPagedV1DataSource = "mx"` - `const PaykeySummaryPagedV1DataSourcePlaid PaykeySummaryPagedV1DataSource = "plaid"` - `const PaykeySummaryPagedV1DataSourceTan PaykeySummaryPagedV1DataSource = "tan"` - `const PaykeySummaryPagedV1DataSourceQuiltt PaykeySummaryPagedV1DataSource = "quiltt"` - `Status string` - `const PaykeySummaryPagedV1DataStatusPending PaykeySummaryPagedV1DataStatus = "pending"` - `const PaykeySummaryPagedV1DataStatusActive PaykeySummaryPagedV1DataStatus = "active"` - `const PaykeySummaryPagedV1DataStatusInactive PaykeySummaryPagedV1DataStatus = "inactive"` - `const PaykeySummaryPagedV1DataStatusRejected PaykeySummaryPagedV1DataStatus = "rejected"` - `const PaykeySummaryPagedV1DataStatusReview PaykeySummaryPagedV1DataStatus = "review"` - `const PaykeySummaryPagedV1DataStatusBlocked PaykeySummaryPagedV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `BankData PaykeySummaryPagedV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeySummaryPagedV1DataBankDataAccountTypeChecking PaykeySummaryPagedV1DataBankDataAccountType = "checking"` - `const PaykeySummaryPagedV1DataBankDataAccountTypeSavings PaykeySummaryPagedV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `StatusDetails PaykeySummaryPagedV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInsufficientFunds PaykeySummaryPagedV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonClosedBankAccount PaykeySummaryPagedV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInvalidBankAccount PaykeySummaryPagedV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInvalidRouting PaykeySummaryPagedV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonDisputed PaykeySummaryPagedV1DataStatusDetailsReason = "disputed"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonPaymentStopped PaykeySummaryPagedV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonOwnerDeceased PaykeySummaryPagedV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonFrozenBankAccount PaykeySummaryPagedV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonRiskReview PaykeySummaryPagedV1DataStatusDetailsReason = "risk_review"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonFraudulent PaykeySummaryPagedV1DataStatusDetailsReason = "fraudulent"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonDuplicateEntry PaykeySummaryPagedV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInvalidPaykey PaykeySummaryPagedV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonPaymentBlocked PaykeySummaryPagedV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonAmountTooLarge PaykeySummaryPagedV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonTooManyAttempts PaykeySummaryPagedV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInternalSystemError PaykeySummaryPagedV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonUserRequest PaykeySummaryPagedV1DataStatusDetailsReason = "user_request"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonOk PaykeySummaryPagedV1DataStatusDetailsReason = "ok"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonOtherNetworkReturn PaykeySummaryPagedV1DataStatusDetailsReason = "other_network_return"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonPayoutRefused PaykeySummaryPagedV1DataStatusDetailsReason = "payout_refused"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonCancelRequest PaykeySummaryPagedV1DataStatusDetailsReason = "cancel_request"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonFailedVerification PaykeySummaryPagedV1DataStatusDetailsReason = "failed_verification"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonRequireReview PaykeySummaryPagedV1DataStatusDetailsReason = "require_review"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonBlockedBySystem PaykeySummaryPagedV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonWatchtowerReview PaykeySummaryPagedV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonValidating PaykeySummaryPagedV1DataStatusDetailsReason = "validating"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonAutoHold PaykeySummaryPagedV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeySummaryPagedV1DataStatusDetailsSourceWatchtower PaykeySummaryPagedV1DataStatusDetailsSource = "watchtower"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceBankDecline PaykeySummaryPagedV1DataStatusDetailsSource = "bank_decline"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceCustomerDispute PaykeySummaryPagedV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceUserAction PaykeySummaryPagedV1DataStatusDetailsSource = "user_action"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceSystem PaykeySummaryPagedV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) page, err := client.Paykeys.List(context.TODO(), straddle.PaykeyListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "Bank of America ****1234", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true } ], "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z", "max_page_size": 0, "page_number": 0, "page_size": 0, "sort_by": "sort_by", "sort_order": "asc", "total_items": 0, "total_pages": 0 }, "response_type": "object" } ``` ## Retrieve an unmasked paykey token `client.Paykeys.Reveal(ctx, id, query) (*PaykeyRevealResponse, error)` **get** `/v1/paykeys/{id}/reveal` Retrieves the details of a paykey that has previously been created. Supply the unique paykey ID that was returned from your previous request, and Straddle will return the corresponding paykey information including the unmasked token. ### Parameters - `id string` - `query PaykeyRevealParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyRevealResponse struct{…}` - `Data PaykeyRevealResponseData` - `ID string` Unique identifier for the paykey. - `Config PaykeyRevealResponseDataConfig` - `ProcessingMethod string` - `const PaykeyRevealResponseDataConfigProcessingMethodInline PaykeyRevealResponseDataConfigProcessingMethod = "inline"` - `const PaykeyRevealResponseDataConfigProcessingMethodBackground PaykeyRevealResponseDataConfigProcessingMethod = "background"` - `const PaykeyRevealResponseDataConfigProcessingMethodSkip PaykeyRevealResponseDataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyRevealResponseDataConfigSandboxOutcomeStandard PaykeyRevealResponseDataConfigSandboxOutcome = "standard"` - `const PaykeyRevealResponseDataConfigSandboxOutcomeActive PaykeyRevealResponseDataConfigSandboxOutcome = "active"` - `const PaykeyRevealResponseDataConfigSandboxOutcomeRejected PaykeyRevealResponseDataConfigSandboxOutcome = "rejected"` - `const PaykeyRevealResponseDataConfigSandboxOutcomeReview PaykeyRevealResponseDataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI - `Paykey string` The tokenized paykey value. This token is used to create payments and should be stored securely. - `Source string` - `const PaykeyRevealResponseDataSourceBankAccount PaykeyRevealResponseDataSource = "bank_account"` - `const PaykeyRevealResponseDataSourceStraddle PaykeyRevealResponseDataSource = "straddle"` - `const PaykeyRevealResponseDataSourceMx PaykeyRevealResponseDataSource = "mx"` - `const PaykeyRevealResponseDataSourcePlaid PaykeyRevealResponseDataSource = "plaid"` - `const PaykeyRevealResponseDataSourceTan PaykeyRevealResponseDataSource = "tan"` - `const PaykeyRevealResponseDataSourceQuiltt PaykeyRevealResponseDataSource = "quiltt"` - `Status string` - `const PaykeyRevealResponseDataStatusPending PaykeyRevealResponseDataStatus = "pending"` - `const PaykeyRevealResponseDataStatusActive PaykeyRevealResponseDataStatus = "active"` - `const PaykeyRevealResponseDataStatusInactive PaykeyRevealResponseDataStatus = "inactive"` - `const PaykeyRevealResponseDataStatusRejected PaykeyRevealResponseDataStatus = "rejected"` - `const PaykeyRevealResponseDataStatusReview PaykeyRevealResponseDataStatus = "review"` - `const PaykeyRevealResponseDataStatusBlocked PaykeyRevealResponseDataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyRevealResponseDataBalance` - `Status string` - `const PaykeyRevealResponseDataBalanceStatusPending PaykeyRevealResponseDataBalanceStatus = "pending"` - `const PaykeyRevealResponseDataBalanceStatusCompleted PaykeyRevealResponseDataBalanceStatus = "completed"` - `const PaykeyRevealResponseDataBalanceStatusFailed PaykeyRevealResponseDataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyRevealResponseDataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyRevealResponseDataBankDataAccountTypeChecking PaykeyRevealResponseDataBankDataAccountType = "checking"` - `const PaykeyRevealResponseDataBankDataAccountTypeSavings PaykeyRevealResponseDataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyRevealResponseDataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyRevealResponseDataStatusDetailsReasonInsufficientFunds PaykeyRevealResponseDataStatusDetailsReason = "insufficient_funds"` - `const PaykeyRevealResponseDataStatusDetailsReasonClosedBankAccount PaykeyRevealResponseDataStatusDetailsReason = "closed_bank_account"` - `const PaykeyRevealResponseDataStatusDetailsReasonInvalidBankAccount PaykeyRevealResponseDataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyRevealResponseDataStatusDetailsReasonInvalidRouting PaykeyRevealResponseDataStatusDetailsReason = "invalid_routing"` - `const PaykeyRevealResponseDataStatusDetailsReasonDisputed PaykeyRevealResponseDataStatusDetailsReason = "disputed"` - `const PaykeyRevealResponseDataStatusDetailsReasonPaymentStopped PaykeyRevealResponseDataStatusDetailsReason = "payment_stopped"` - `const PaykeyRevealResponseDataStatusDetailsReasonOwnerDeceased PaykeyRevealResponseDataStatusDetailsReason = "owner_deceased"` - `const PaykeyRevealResponseDataStatusDetailsReasonFrozenBankAccount PaykeyRevealResponseDataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyRevealResponseDataStatusDetailsReasonRiskReview PaykeyRevealResponseDataStatusDetailsReason = "risk_review"` - `const PaykeyRevealResponseDataStatusDetailsReasonFraudulent PaykeyRevealResponseDataStatusDetailsReason = "fraudulent"` - `const PaykeyRevealResponseDataStatusDetailsReasonDuplicateEntry PaykeyRevealResponseDataStatusDetailsReason = "duplicate_entry"` - `const PaykeyRevealResponseDataStatusDetailsReasonInvalidPaykey PaykeyRevealResponseDataStatusDetailsReason = "invalid_paykey"` - `const PaykeyRevealResponseDataStatusDetailsReasonPaymentBlocked PaykeyRevealResponseDataStatusDetailsReason = "payment_blocked"` - `const PaykeyRevealResponseDataStatusDetailsReasonAmountTooLarge PaykeyRevealResponseDataStatusDetailsReason = "amount_too_large"` - `const PaykeyRevealResponseDataStatusDetailsReasonTooManyAttempts PaykeyRevealResponseDataStatusDetailsReason = "too_many_attempts"` - `const PaykeyRevealResponseDataStatusDetailsReasonInternalSystemError PaykeyRevealResponseDataStatusDetailsReason = "internal_system_error"` - `const PaykeyRevealResponseDataStatusDetailsReasonUserRequest PaykeyRevealResponseDataStatusDetailsReason = "user_request"` - `const PaykeyRevealResponseDataStatusDetailsReasonOk PaykeyRevealResponseDataStatusDetailsReason = "ok"` - `const PaykeyRevealResponseDataStatusDetailsReasonOtherNetworkReturn PaykeyRevealResponseDataStatusDetailsReason = "other_network_return"` - `const PaykeyRevealResponseDataStatusDetailsReasonPayoutRefused PaykeyRevealResponseDataStatusDetailsReason = "payout_refused"` - `const PaykeyRevealResponseDataStatusDetailsReasonCancelRequest PaykeyRevealResponseDataStatusDetailsReason = "cancel_request"` - `const PaykeyRevealResponseDataStatusDetailsReasonFailedVerification PaykeyRevealResponseDataStatusDetailsReason = "failed_verification"` - `const PaykeyRevealResponseDataStatusDetailsReasonRequireReview PaykeyRevealResponseDataStatusDetailsReason = "require_review"` - `const PaykeyRevealResponseDataStatusDetailsReasonBlockedBySystem PaykeyRevealResponseDataStatusDetailsReason = "blocked_by_system"` - `const PaykeyRevealResponseDataStatusDetailsReasonWatchtowerReview PaykeyRevealResponseDataStatusDetailsReason = "watchtower_review"` - `const PaykeyRevealResponseDataStatusDetailsReasonValidating PaykeyRevealResponseDataStatusDetailsReason = "validating"` - `const PaykeyRevealResponseDataStatusDetailsReasonAutoHold PaykeyRevealResponseDataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyRevealResponseDataStatusDetailsSourceWatchtower PaykeyRevealResponseDataStatusDetailsSource = "watchtower"` - `const PaykeyRevealResponseDataStatusDetailsSourceBankDecline PaykeyRevealResponseDataStatusDetailsSource = "bank_decline"` - `const PaykeyRevealResponseDataStatusDetailsSourceCustomerDispute PaykeyRevealResponseDataStatusDetailsSource = "customer_dispute"` - `const PaykeyRevealResponseDataStatusDetailsSourceUserAction PaykeyRevealResponseDataStatusDetailsSource = "user_action"` - `const PaykeyRevealResponseDataStatusDetailsSourceSystem PaykeyRevealResponseDataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyRevealResponseResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyRevealResponseResponseTypeObject PaykeyRevealResponseResponseType = "object"` - `const PaykeyRevealResponseResponseTypeArray PaykeyRevealResponseResponseType = "array"` - `const PaykeyRevealResponseResponseTypeError PaykeyRevealResponseResponseType = "error"` - `const PaykeyRevealResponseResponseTypeNone PaykeyRevealResponseResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) response, err := client.Paykeys.Reveal( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyRevealParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "Bank of America ****1234", "paykey": "paykey", "source": "straddle", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Cancel `client.Paykeys.Cancel(ctx, id, params) (*PaykeyV1, error)` **put** `/v1/paykeys/{id}/cancel` ### Parameters - `id string` - `params PaykeyCancelParams` - `Reason param.Field[string]` Body param - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Header param: Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyV1 struct{…}` - `Data PaykeyV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyV1DataConfig` - `ProcessingMethod string` - `const PaykeyV1DataConfigProcessingMethodInline PaykeyV1DataConfigProcessingMethod = "inline"` - `const PaykeyV1DataConfigProcessingMethodBackground PaykeyV1DataConfigProcessingMethod = "background"` - `const PaykeyV1DataConfigProcessingMethodSkip PaykeyV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyV1DataConfigSandboxOutcomeStandard PaykeyV1DataConfigSandboxOutcome = "standard"` - `const PaykeyV1DataConfigSandboxOutcomeActive PaykeyV1DataConfigSandboxOutcome = "active"` - `const PaykeyV1DataConfigSandboxOutcomeRejected PaykeyV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyV1DataConfigSandboxOutcomeReview PaykeyV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyV1DataSourceBankAccount PaykeyV1DataSource = "bank_account"` - `const PaykeyV1DataSourceStraddle PaykeyV1DataSource = "straddle"` - `const PaykeyV1DataSourceMx PaykeyV1DataSource = "mx"` - `const PaykeyV1DataSourcePlaid PaykeyV1DataSource = "plaid"` - `const PaykeyV1DataSourceTan PaykeyV1DataSource = "tan"` - `const PaykeyV1DataSourceQuiltt PaykeyV1DataSource = "quiltt"` - `Status string` - `const PaykeyV1DataStatusPending PaykeyV1DataStatus = "pending"` - `const PaykeyV1DataStatusActive PaykeyV1DataStatus = "active"` - `const PaykeyV1DataStatusInactive PaykeyV1DataStatus = "inactive"` - `const PaykeyV1DataStatusRejected PaykeyV1DataStatus = "rejected"` - `const PaykeyV1DataStatusReview PaykeyV1DataStatus = "review"` - `const PaykeyV1DataStatusBlocked PaykeyV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyV1DataBalance` - `Status string` - `const PaykeyV1DataBalanceStatusPending PaykeyV1DataBalanceStatus = "pending"` - `const PaykeyV1DataBalanceStatusCompleted PaykeyV1DataBalanceStatus = "completed"` - `const PaykeyV1DataBalanceStatusFailed PaykeyV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyV1DataBankDataAccountTypeChecking PaykeyV1DataBankDataAccountType = "checking"` - `const PaykeyV1DataBankDataAccountTypeSavings PaykeyV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyV1DataStatusDetailsReasonInsufficientFunds PaykeyV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyV1DataStatusDetailsReasonClosedBankAccount PaykeyV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidBankAccount PaykeyV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidRouting PaykeyV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyV1DataStatusDetailsReasonDisputed PaykeyV1DataStatusDetailsReason = "disputed"` - `const PaykeyV1DataStatusDetailsReasonPaymentStopped PaykeyV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyV1DataStatusDetailsReasonOwnerDeceased PaykeyV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyV1DataStatusDetailsReasonFrozenBankAccount PaykeyV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyV1DataStatusDetailsReasonRiskReview PaykeyV1DataStatusDetailsReason = "risk_review"` - `const PaykeyV1DataStatusDetailsReasonFraudulent PaykeyV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyV1DataStatusDetailsReasonDuplicateEntry PaykeyV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyV1DataStatusDetailsReasonInvalidPaykey PaykeyV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyV1DataStatusDetailsReasonPaymentBlocked PaykeyV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyV1DataStatusDetailsReasonAmountTooLarge PaykeyV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyV1DataStatusDetailsReasonTooManyAttempts PaykeyV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyV1DataStatusDetailsReasonInternalSystemError PaykeyV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyV1DataStatusDetailsReasonUserRequest PaykeyV1DataStatusDetailsReason = "user_request"` - `const PaykeyV1DataStatusDetailsReasonOk PaykeyV1DataStatusDetailsReason = "ok"` - `const PaykeyV1DataStatusDetailsReasonOtherNetworkReturn PaykeyV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyV1DataStatusDetailsReasonPayoutRefused PaykeyV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyV1DataStatusDetailsReasonCancelRequest PaykeyV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyV1DataStatusDetailsReasonFailedVerification PaykeyV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyV1DataStatusDetailsReasonRequireReview PaykeyV1DataStatusDetailsReason = "require_review"` - `const PaykeyV1DataStatusDetailsReasonBlockedBySystem PaykeyV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyV1DataStatusDetailsReasonWatchtowerReview PaykeyV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyV1DataStatusDetailsReasonValidating PaykeyV1DataStatusDetailsReason = "validating"` - `const PaykeyV1DataStatusDetailsReasonAutoHold PaykeyV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyV1DataStatusDetailsSourceWatchtower PaykeyV1DataStatusDetailsSource = "watchtower"` - `const PaykeyV1DataStatusDetailsSourceBankDecline PaykeyV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyV1DataStatusDetailsSourceCustomerDispute PaykeyV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyV1DataStatusDetailsSourceUserAction PaykeyV1DataStatusDetailsSource = "user_action"` - `const PaykeyV1DataStatusDetailsSourceSystem PaykeyV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyV1ResponseTypeObject PaykeyV1ResponseType = "object"` - `const PaykeyV1ResponseTypeArray PaykeyV1ResponseType = "array"` - `const PaykeyV1ResponseTypeError PaykeyV1ResponseType = "error"` - `const PaykeyV1ResponseTypeNone PaykeyV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) paykeyV1, err := client.Paykeys.Cancel( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyCancelParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", paykeyV1.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a paykey's balance `client.Paykeys.UpdateBalance(ctx, id, body) (*PaykeyV1, error)` **put** `/v1/paykeys/{id}/refresh_balance` Updates the balance of a paykey. This endpoint allows you to refresh the balance of a paykey. ### Parameters - `id string` - `body PaykeyUpdateBalanceParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyV1 struct{…}` - `Data PaykeyV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyV1DataConfig` - `ProcessingMethod string` - `const PaykeyV1DataConfigProcessingMethodInline PaykeyV1DataConfigProcessingMethod = "inline"` - `const PaykeyV1DataConfigProcessingMethodBackground PaykeyV1DataConfigProcessingMethod = "background"` - `const PaykeyV1DataConfigProcessingMethodSkip PaykeyV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyV1DataConfigSandboxOutcomeStandard PaykeyV1DataConfigSandboxOutcome = "standard"` - `const PaykeyV1DataConfigSandboxOutcomeActive PaykeyV1DataConfigSandboxOutcome = "active"` - `const PaykeyV1DataConfigSandboxOutcomeRejected PaykeyV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyV1DataConfigSandboxOutcomeReview PaykeyV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyV1DataSourceBankAccount PaykeyV1DataSource = "bank_account"` - `const PaykeyV1DataSourceStraddle PaykeyV1DataSource = "straddle"` - `const PaykeyV1DataSourceMx PaykeyV1DataSource = "mx"` - `const PaykeyV1DataSourcePlaid PaykeyV1DataSource = "plaid"` - `const PaykeyV1DataSourceTan PaykeyV1DataSource = "tan"` - `const PaykeyV1DataSourceQuiltt PaykeyV1DataSource = "quiltt"` - `Status string` - `const PaykeyV1DataStatusPending PaykeyV1DataStatus = "pending"` - `const PaykeyV1DataStatusActive PaykeyV1DataStatus = "active"` - `const PaykeyV1DataStatusInactive PaykeyV1DataStatus = "inactive"` - `const PaykeyV1DataStatusRejected PaykeyV1DataStatus = "rejected"` - `const PaykeyV1DataStatusReview PaykeyV1DataStatus = "review"` - `const PaykeyV1DataStatusBlocked PaykeyV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyV1DataBalance` - `Status string` - `const PaykeyV1DataBalanceStatusPending PaykeyV1DataBalanceStatus = "pending"` - `const PaykeyV1DataBalanceStatusCompleted PaykeyV1DataBalanceStatus = "completed"` - `const PaykeyV1DataBalanceStatusFailed PaykeyV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyV1DataBankDataAccountTypeChecking PaykeyV1DataBankDataAccountType = "checking"` - `const PaykeyV1DataBankDataAccountTypeSavings PaykeyV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyV1DataStatusDetailsReasonInsufficientFunds PaykeyV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyV1DataStatusDetailsReasonClosedBankAccount PaykeyV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidBankAccount PaykeyV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidRouting PaykeyV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyV1DataStatusDetailsReasonDisputed PaykeyV1DataStatusDetailsReason = "disputed"` - `const PaykeyV1DataStatusDetailsReasonPaymentStopped PaykeyV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyV1DataStatusDetailsReasonOwnerDeceased PaykeyV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyV1DataStatusDetailsReasonFrozenBankAccount PaykeyV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyV1DataStatusDetailsReasonRiskReview PaykeyV1DataStatusDetailsReason = "risk_review"` - `const PaykeyV1DataStatusDetailsReasonFraudulent PaykeyV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyV1DataStatusDetailsReasonDuplicateEntry PaykeyV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyV1DataStatusDetailsReasonInvalidPaykey PaykeyV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyV1DataStatusDetailsReasonPaymentBlocked PaykeyV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyV1DataStatusDetailsReasonAmountTooLarge PaykeyV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyV1DataStatusDetailsReasonTooManyAttempts PaykeyV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyV1DataStatusDetailsReasonInternalSystemError PaykeyV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyV1DataStatusDetailsReasonUserRequest PaykeyV1DataStatusDetailsReason = "user_request"` - `const PaykeyV1DataStatusDetailsReasonOk PaykeyV1DataStatusDetailsReason = "ok"` - `const PaykeyV1DataStatusDetailsReasonOtherNetworkReturn PaykeyV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyV1DataStatusDetailsReasonPayoutRefused PaykeyV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyV1DataStatusDetailsReasonCancelRequest PaykeyV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyV1DataStatusDetailsReasonFailedVerification PaykeyV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyV1DataStatusDetailsReasonRequireReview PaykeyV1DataStatusDetailsReason = "require_review"` - `const PaykeyV1DataStatusDetailsReasonBlockedBySystem PaykeyV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyV1DataStatusDetailsReasonWatchtowerReview PaykeyV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyV1DataStatusDetailsReasonValidating PaykeyV1DataStatusDetailsReason = "validating"` - `const PaykeyV1DataStatusDetailsReasonAutoHold PaykeyV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyV1DataStatusDetailsSourceWatchtower PaykeyV1DataStatusDetailsSource = "watchtower"` - `const PaykeyV1DataStatusDetailsSourceBankDecline PaykeyV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyV1DataStatusDetailsSourceCustomerDispute PaykeyV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyV1DataStatusDetailsSourceUserAction PaykeyV1DataStatusDetailsSource = "user_action"` - `const PaykeyV1DataStatusDetailsSourceSystem PaykeyV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyV1ResponseTypeObject PaykeyV1ResponseType = "object"` - `const PaykeyV1ResponseTypeArray PaykeyV1ResponseType = "array"` - `const PaykeyV1ResponseTypeError PaykeyV1ResponseType = "error"` - `const PaykeyV1ResponseTypeNone PaykeyV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) paykeyV1, err := client.Paykeys.UpdateBalance( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyUpdateBalanceParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", paykeyV1.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Domain Types ### Paykey Summary Paged V1 - `type PaykeySummaryPagedV1 struct{…}` - `Data []PaykeySummaryPagedV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeySummaryPagedV1DataConfig` - `ProcessingMethod string` - `const PaykeySummaryPagedV1DataConfigProcessingMethodInline PaykeySummaryPagedV1DataConfigProcessingMethod = "inline"` - `const PaykeySummaryPagedV1DataConfigProcessingMethodBackground PaykeySummaryPagedV1DataConfigProcessingMethod = "background"` - `const PaykeySummaryPagedV1DataConfigProcessingMethodSkip PaykeySummaryPagedV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeStandard PaykeySummaryPagedV1DataConfigSandboxOutcome = "standard"` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeActive PaykeySummaryPagedV1DataConfigSandboxOutcome = "active"` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeRejected PaykeySummaryPagedV1DataConfigSandboxOutcome = "rejected"` - `const PaykeySummaryPagedV1DataConfigSandboxOutcomeReview PaykeySummaryPagedV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeySummaryPagedV1DataSourceBankAccount PaykeySummaryPagedV1DataSource = "bank_account"` - `const PaykeySummaryPagedV1DataSourceStraddle PaykeySummaryPagedV1DataSource = "straddle"` - `const PaykeySummaryPagedV1DataSourceMx PaykeySummaryPagedV1DataSource = "mx"` - `const PaykeySummaryPagedV1DataSourcePlaid PaykeySummaryPagedV1DataSource = "plaid"` - `const PaykeySummaryPagedV1DataSourceTan PaykeySummaryPagedV1DataSource = "tan"` - `const PaykeySummaryPagedV1DataSourceQuiltt PaykeySummaryPagedV1DataSource = "quiltt"` - `Status string` - `const PaykeySummaryPagedV1DataStatusPending PaykeySummaryPagedV1DataStatus = "pending"` - `const PaykeySummaryPagedV1DataStatusActive PaykeySummaryPagedV1DataStatus = "active"` - `const PaykeySummaryPagedV1DataStatusInactive PaykeySummaryPagedV1DataStatus = "inactive"` - `const PaykeySummaryPagedV1DataStatusRejected PaykeySummaryPagedV1DataStatus = "rejected"` - `const PaykeySummaryPagedV1DataStatusReview PaykeySummaryPagedV1DataStatus = "review"` - `const PaykeySummaryPagedV1DataStatusBlocked PaykeySummaryPagedV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `BankData PaykeySummaryPagedV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeySummaryPagedV1DataBankDataAccountTypeChecking PaykeySummaryPagedV1DataBankDataAccountType = "checking"` - `const PaykeySummaryPagedV1DataBankDataAccountTypeSavings PaykeySummaryPagedV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `StatusDetails PaykeySummaryPagedV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInsufficientFunds PaykeySummaryPagedV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonClosedBankAccount PaykeySummaryPagedV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInvalidBankAccount PaykeySummaryPagedV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInvalidRouting PaykeySummaryPagedV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonDisputed PaykeySummaryPagedV1DataStatusDetailsReason = "disputed"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonPaymentStopped PaykeySummaryPagedV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonOwnerDeceased PaykeySummaryPagedV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonFrozenBankAccount PaykeySummaryPagedV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonRiskReview PaykeySummaryPagedV1DataStatusDetailsReason = "risk_review"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonFraudulent PaykeySummaryPagedV1DataStatusDetailsReason = "fraudulent"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonDuplicateEntry PaykeySummaryPagedV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInvalidPaykey PaykeySummaryPagedV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonPaymentBlocked PaykeySummaryPagedV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonAmountTooLarge PaykeySummaryPagedV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonTooManyAttempts PaykeySummaryPagedV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonInternalSystemError PaykeySummaryPagedV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonUserRequest PaykeySummaryPagedV1DataStatusDetailsReason = "user_request"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonOk PaykeySummaryPagedV1DataStatusDetailsReason = "ok"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonOtherNetworkReturn PaykeySummaryPagedV1DataStatusDetailsReason = "other_network_return"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonPayoutRefused PaykeySummaryPagedV1DataStatusDetailsReason = "payout_refused"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonCancelRequest PaykeySummaryPagedV1DataStatusDetailsReason = "cancel_request"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonFailedVerification PaykeySummaryPagedV1DataStatusDetailsReason = "failed_verification"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonRequireReview PaykeySummaryPagedV1DataStatusDetailsReason = "require_review"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonBlockedBySystem PaykeySummaryPagedV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonWatchtowerReview PaykeySummaryPagedV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonValidating PaykeySummaryPagedV1DataStatusDetailsReason = "validating"` - `const PaykeySummaryPagedV1DataStatusDetailsReasonAutoHold PaykeySummaryPagedV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeySummaryPagedV1DataStatusDetailsSourceWatchtower PaykeySummaryPagedV1DataStatusDetailsSource = "watchtower"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceBankDecline PaykeySummaryPagedV1DataStatusDetailsSource = "bank_decline"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceCustomerDispute PaykeySummaryPagedV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceUserAction PaykeySummaryPagedV1DataStatusDetailsSource = "user_action"` - `const PaykeySummaryPagedV1DataStatusDetailsSourceSystem PaykeySummaryPagedV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta PaykeySummaryPagedV1Meta` - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `MaxPageSize int64` Maximum allowed page size for this endpoint. - `PageNumber int64` Page number for paginated results. - `PageSize int64` Number of items per page in this response. - `SortBy string` The field that the results were sorted by. - `SortOrder string` - `const PaykeySummaryPagedV1MetaSortOrderAsc PaykeySummaryPagedV1MetaSortOrder = "asc"` - `const PaykeySummaryPagedV1MetaSortOrderDesc PaykeySummaryPagedV1MetaSortOrder = "desc"` - `TotalItems int64` - `TotalPages int64` The number of pages available. - `ResponseType PaykeySummaryPagedV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeySummaryPagedV1ResponseTypeObject PaykeySummaryPagedV1ResponseType = "object"` - `const PaykeySummaryPagedV1ResponseTypeArray PaykeySummaryPagedV1ResponseType = "array"` - `const PaykeySummaryPagedV1ResponseTypeError PaykeySummaryPagedV1ResponseType = "error"` - `const PaykeySummaryPagedV1ResponseTypeNone PaykeySummaryPagedV1ResponseType = "none"` ### Paykey Unmasked V1 - `type PaykeyUnmaskedV1 struct{…}` - `Data PaykeyUnmaskedV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyUnmaskedV1DataConfig` - `ProcessingMethod string` - `const PaykeyUnmaskedV1DataConfigProcessingMethodInline PaykeyUnmaskedV1DataConfigProcessingMethod = "inline"` - `const PaykeyUnmaskedV1DataConfigProcessingMethodBackground PaykeyUnmaskedV1DataConfigProcessingMethod = "background"` - `const PaykeyUnmaskedV1DataConfigProcessingMethodSkip PaykeyUnmaskedV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeStandard PaykeyUnmaskedV1DataConfigSandboxOutcome = "standard"` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeActive PaykeyUnmaskedV1DataConfigSandboxOutcome = "active"` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeRejected PaykeyUnmaskedV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyUnmaskedV1DataConfigSandboxOutcomeReview PaykeyUnmaskedV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyUnmaskedV1DataSourceBankAccount PaykeyUnmaskedV1DataSource = "bank_account"` - `const PaykeyUnmaskedV1DataSourceStraddle PaykeyUnmaskedV1DataSource = "straddle"` - `const PaykeyUnmaskedV1DataSourceMx PaykeyUnmaskedV1DataSource = "mx"` - `const PaykeyUnmaskedV1DataSourcePlaid PaykeyUnmaskedV1DataSource = "plaid"` - `const PaykeyUnmaskedV1DataSourceTan PaykeyUnmaskedV1DataSource = "tan"` - `const PaykeyUnmaskedV1DataSourceQuiltt PaykeyUnmaskedV1DataSource = "quiltt"` - `Status string` - `const PaykeyUnmaskedV1DataStatusPending PaykeyUnmaskedV1DataStatus = "pending"` - `const PaykeyUnmaskedV1DataStatusActive PaykeyUnmaskedV1DataStatus = "active"` - `const PaykeyUnmaskedV1DataStatusInactive PaykeyUnmaskedV1DataStatus = "inactive"` - `const PaykeyUnmaskedV1DataStatusRejected PaykeyUnmaskedV1DataStatus = "rejected"` - `const PaykeyUnmaskedV1DataStatusReview PaykeyUnmaskedV1DataStatus = "review"` - `const PaykeyUnmaskedV1DataStatusBlocked PaykeyUnmaskedV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyUnmaskedV1DataBalance` - `Status string` - `const PaykeyUnmaskedV1DataBalanceStatusPending PaykeyUnmaskedV1DataBalanceStatus = "pending"` - `const PaykeyUnmaskedV1DataBalanceStatusCompleted PaykeyUnmaskedV1DataBalanceStatus = "completed"` - `const PaykeyUnmaskedV1DataBalanceStatusFailed PaykeyUnmaskedV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyUnmaskedV1DataBankData` - `AccountNumber string` The bank account number - `AccountType string` - `const PaykeyUnmaskedV1DataBankDataAccountTypeChecking PaykeyUnmaskedV1DataBankDataAccountType = "checking"` - `const PaykeyUnmaskedV1DataBankDataAccountTypeSavings PaykeyUnmaskedV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyUnmaskedV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInsufficientFunds PaykeyUnmaskedV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonClosedBankAccount PaykeyUnmaskedV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInvalidBankAccount PaykeyUnmaskedV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInvalidRouting PaykeyUnmaskedV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonDisputed PaykeyUnmaskedV1DataStatusDetailsReason = "disputed"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonPaymentStopped PaykeyUnmaskedV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonOwnerDeceased PaykeyUnmaskedV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonFrozenBankAccount PaykeyUnmaskedV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonRiskReview PaykeyUnmaskedV1DataStatusDetailsReason = "risk_review"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonFraudulent PaykeyUnmaskedV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonDuplicateEntry PaykeyUnmaskedV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInvalidPaykey PaykeyUnmaskedV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonPaymentBlocked PaykeyUnmaskedV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonAmountTooLarge PaykeyUnmaskedV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonTooManyAttempts PaykeyUnmaskedV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonInternalSystemError PaykeyUnmaskedV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonUserRequest PaykeyUnmaskedV1DataStatusDetailsReason = "user_request"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonOk PaykeyUnmaskedV1DataStatusDetailsReason = "ok"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonOtherNetworkReturn PaykeyUnmaskedV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonPayoutRefused PaykeyUnmaskedV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonCancelRequest PaykeyUnmaskedV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonFailedVerification PaykeyUnmaskedV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonRequireReview PaykeyUnmaskedV1DataStatusDetailsReason = "require_review"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonBlockedBySystem PaykeyUnmaskedV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonWatchtowerReview PaykeyUnmaskedV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonValidating PaykeyUnmaskedV1DataStatusDetailsReason = "validating"` - `const PaykeyUnmaskedV1DataStatusDetailsReasonAutoHold PaykeyUnmaskedV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyUnmaskedV1DataStatusDetailsSourceWatchtower PaykeyUnmaskedV1DataStatusDetailsSource = "watchtower"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceBankDecline PaykeyUnmaskedV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceCustomerDispute PaykeyUnmaskedV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceUserAction PaykeyUnmaskedV1DataStatusDetailsSource = "user_action"` - `const PaykeyUnmaskedV1DataStatusDetailsSourceSystem PaykeyUnmaskedV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyUnmaskedV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyUnmaskedV1ResponseTypeObject PaykeyUnmaskedV1ResponseType = "object"` - `const PaykeyUnmaskedV1ResponseTypeArray PaykeyUnmaskedV1ResponseType = "array"` - `const PaykeyUnmaskedV1ResponseTypeError PaykeyUnmaskedV1ResponseType = "error"` - `const PaykeyUnmaskedV1ResponseTypeNone PaykeyUnmaskedV1ResponseType = "none"` ### Paykey V1 - `type PaykeyV1 struct{…}` - `Data PaykeyV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyV1DataConfig` - `ProcessingMethod string` - `const PaykeyV1DataConfigProcessingMethodInline PaykeyV1DataConfigProcessingMethod = "inline"` - `const PaykeyV1DataConfigProcessingMethodBackground PaykeyV1DataConfigProcessingMethod = "background"` - `const PaykeyV1DataConfigProcessingMethodSkip PaykeyV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyV1DataConfigSandboxOutcomeStandard PaykeyV1DataConfigSandboxOutcome = "standard"` - `const PaykeyV1DataConfigSandboxOutcomeActive PaykeyV1DataConfigSandboxOutcome = "active"` - `const PaykeyV1DataConfigSandboxOutcomeRejected PaykeyV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyV1DataConfigSandboxOutcomeReview PaykeyV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyV1DataSourceBankAccount PaykeyV1DataSource = "bank_account"` - `const PaykeyV1DataSourceStraddle PaykeyV1DataSource = "straddle"` - `const PaykeyV1DataSourceMx PaykeyV1DataSource = "mx"` - `const PaykeyV1DataSourcePlaid PaykeyV1DataSource = "plaid"` - `const PaykeyV1DataSourceTan PaykeyV1DataSource = "tan"` - `const PaykeyV1DataSourceQuiltt PaykeyV1DataSource = "quiltt"` - `Status string` - `const PaykeyV1DataStatusPending PaykeyV1DataStatus = "pending"` - `const PaykeyV1DataStatusActive PaykeyV1DataStatus = "active"` - `const PaykeyV1DataStatusInactive PaykeyV1DataStatus = "inactive"` - `const PaykeyV1DataStatusRejected PaykeyV1DataStatus = "rejected"` - `const PaykeyV1DataStatusReview PaykeyV1DataStatus = "review"` - `const PaykeyV1DataStatusBlocked PaykeyV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyV1DataBalance` - `Status string` - `const PaykeyV1DataBalanceStatusPending PaykeyV1DataBalanceStatus = "pending"` - `const PaykeyV1DataBalanceStatusCompleted PaykeyV1DataBalanceStatus = "completed"` - `const PaykeyV1DataBalanceStatusFailed PaykeyV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyV1DataBankDataAccountTypeChecking PaykeyV1DataBankDataAccountType = "checking"` - `const PaykeyV1DataBankDataAccountTypeSavings PaykeyV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyV1DataStatusDetailsReasonInsufficientFunds PaykeyV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyV1DataStatusDetailsReasonClosedBankAccount PaykeyV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidBankAccount PaykeyV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidRouting PaykeyV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyV1DataStatusDetailsReasonDisputed PaykeyV1DataStatusDetailsReason = "disputed"` - `const PaykeyV1DataStatusDetailsReasonPaymentStopped PaykeyV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyV1DataStatusDetailsReasonOwnerDeceased PaykeyV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyV1DataStatusDetailsReasonFrozenBankAccount PaykeyV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyV1DataStatusDetailsReasonRiskReview PaykeyV1DataStatusDetailsReason = "risk_review"` - `const PaykeyV1DataStatusDetailsReasonFraudulent PaykeyV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyV1DataStatusDetailsReasonDuplicateEntry PaykeyV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyV1DataStatusDetailsReasonInvalidPaykey PaykeyV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyV1DataStatusDetailsReasonPaymentBlocked PaykeyV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyV1DataStatusDetailsReasonAmountTooLarge PaykeyV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyV1DataStatusDetailsReasonTooManyAttempts PaykeyV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyV1DataStatusDetailsReasonInternalSystemError PaykeyV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyV1DataStatusDetailsReasonUserRequest PaykeyV1DataStatusDetailsReason = "user_request"` - `const PaykeyV1DataStatusDetailsReasonOk PaykeyV1DataStatusDetailsReason = "ok"` - `const PaykeyV1DataStatusDetailsReasonOtherNetworkReturn PaykeyV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyV1DataStatusDetailsReasonPayoutRefused PaykeyV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyV1DataStatusDetailsReasonCancelRequest PaykeyV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyV1DataStatusDetailsReasonFailedVerification PaykeyV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyV1DataStatusDetailsReasonRequireReview PaykeyV1DataStatusDetailsReason = "require_review"` - `const PaykeyV1DataStatusDetailsReasonBlockedBySystem PaykeyV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyV1DataStatusDetailsReasonWatchtowerReview PaykeyV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyV1DataStatusDetailsReasonValidating PaykeyV1DataStatusDetailsReason = "validating"` - `const PaykeyV1DataStatusDetailsReasonAutoHold PaykeyV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyV1DataStatusDetailsSourceWatchtower PaykeyV1DataStatusDetailsSource = "watchtower"` - `const PaykeyV1DataStatusDetailsSourceBankDecline PaykeyV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyV1DataStatusDetailsSourceCustomerDispute PaykeyV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyV1DataStatusDetailsSourceUserAction PaykeyV1DataStatusDetailsSource = "user_action"` - `const PaykeyV1DataStatusDetailsSourceSystem PaykeyV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyV1ResponseTypeObject PaykeyV1ResponseType = "object"` - `const PaykeyV1ResponseTypeArray PaykeyV1ResponseType = "array"` - `const PaykeyV1ResponseTypeError PaykeyV1ResponseType = "error"` - `const PaykeyV1ResponseTypeNone PaykeyV1ResponseType = "none"` # Review ## Update a paykey's status `client.Paykeys.Review.Decision(ctx, id, params) (*PaykeyV1, error)` **patch** `/v1/paykeys/{id}/review` Update the status of a paykey when in review status ### Parameters - `id string` - `params PaykeyReviewDecisionParams` - `Status param.Field[PaykeyReviewDecisionParamsStatus]` Body param - `const PaykeyReviewDecisionParamsStatusActive PaykeyReviewDecisionParamsStatus = "active"` - `const PaykeyReviewDecisionParamsStatusRejected PaykeyReviewDecisionParamsStatus = "rejected"` - `CorrelationID param.Field[string]` Header param: Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Header param: Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Header param: Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` Header param: For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyV1 struct{…}` - `Data PaykeyV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyV1DataConfig` - `ProcessingMethod string` - `const PaykeyV1DataConfigProcessingMethodInline PaykeyV1DataConfigProcessingMethod = "inline"` - `const PaykeyV1DataConfigProcessingMethodBackground PaykeyV1DataConfigProcessingMethod = "background"` - `const PaykeyV1DataConfigProcessingMethodSkip PaykeyV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyV1DataConfigSandboxOutcomeStandard PaykeyV1DataConfigSandboxOutcome = "standard"` - `const PaykeyV1DataConfigSandboxOutcomeActive PaykeyV1DataConfigSandboxOutcome = "active"` - `const PaykeyV1DataConfigSandboxOutcomeRejected PaykeyV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyV1DataConfigSandboxOutcomeReview PaykeyV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyV1DataSourceBankAccount PaykeyV1DataSource = "bank_account"` - `const PaykeyV1DataSourceStraddle PaykeyV1DataSource = "straddle"` - `const PaykeyV1DataSourceMx PaykeyV1DataSource = "mx"` - `const PaykeyV1DataSourcePlaid PaykeyV1DataSource = "plaid"` - `const PaykeyV1DataSourceTan PaykeyV1DataSource = "tan"` - `const PaykeyV1DataSourceQuiltt PaykeyV1DataSource = "quiltt"` - `Status string` - `const PaykeyV1DataStatusPending PaykeyV1DataStatus = "pending"` - `const PaykeyV1DataStatusActive PaykeyV1DataStatus = "active"` - `const PaykeyV1DataStatusInactive PaykeyV1DataStatus = "inactive"` - `const PaykeyV1DataStatusRejected PaykeyV1DataStatus = "rejected"` - `const PaykeyV1DataStatusReview PaykeyV1DataStatus = "review"` - `const PaykeyV1DataStatusBlocked PaykeyV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyV1DataBalance` - `Status string` - `const PaykeyV1DataBalanceStatusPending PaykeyV1DataBalanceStatus = "pending"` - `const PaykeyV1DataBalanceStatusCompleted PaykeyV1DataBalanceStatus = "completed"` - `const PaykeyV1DataBalanceStatusFailed PaykeyV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyV1DataBankDataAccountTypeChecking PaykeyV1DataBankDataAccountType = "checking"` - `const PaykeyV1DataBankDataAccountTypeSavings PaykeyV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyV1DataStatusDetailsReasonInsufficientFunds PaykeyV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyV1DataStatusDetailsReasonClosedBankAccount PaykeyV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidBankAccount PaykeyV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidRouting PaykeyV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyV1DataStatusDetailsReasonDisputed PaykeyV1DataStatusDetailsReason = "disputed"` - `const PaykeyV1DataStatusDetailsReasonPaymentStopped PaykeyV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyV1DataStatusDetailsReasonOwnerDeceased PaykeyV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyV1DataStatusDetailsReasonFrozenBankAccount PaykeyV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyV1DataStatusDetailsReasonRiskReview PaykeyV1DataStatusDetailsReason = "risk_review"` - `const PaykeyV1DataStatusDetailsReasonFraudulent PaykeyV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyV1DataStatusDetailsReasonDuplicateEntry PaykeyV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyV1DataStatusDetailsReasonInvalidPaykey PaykeyV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyV1DataStatusDetailsReasonPaymentBlocked PaykeyV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyV1DataStatusDetailsReasonAmountTooLarge PaykeyV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyV1DataStatusDetailsReasonTooManyAttempts PaykeyV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyV1DataStatusDetailsReasonInternalSystemError PaykeyV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyV1DataStatusDetailsReasonUserRequest PaykeyV1DataStatusDetailsReason = "user_request"` - `const PaykeyV1DataStatusDetailsReasonOk PaykeyV1DataStatusDetailsReason = "ok"` - `const PaykeyV1DataStatusDetailsReasonOtherNetworkReturn PaykeyV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyV1DataStatusDetailsReasonPayoutRefused PaykeyV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyV1DataStatusDetailsReasonCancelRequest PaykeyV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyV1DataStatusDetailsReasonFailedVerification PaykeyV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyV1DataStatusDetailsReasonRequireReview PaykeyV1DataStatusDetailsReason = "require_review"` - `const PaykeyV1DataStatusDetailsReasonBlockedBySystem PaykeyV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyV1DataStatusDetailsReasonWatchtowerReview PaykeyV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyV1DataStatusDetailsReasonValidating PaykeyV1DataStatusDetailsReason = "validating"` - `const PaykeyV1DataStatusDetailsReasonAutoHold PaykeyV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyV1DataStatusDetailsSourceWatchtower PaykeyV1DataStatusDetailsSource = "watchtower"` - `const PaykeyV1DataStatusDetailsSourceBankDecline PaykeyV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyV1DataStatusDetailsSourceCustomerDispute PaykeyV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyV1DataStatusDetailsSourceUserAction PaykeyV1DataStatusDetailsSource = "user_action"` - `const PaykeyV1DataStatusDetailsSourceSystem PaykeyV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyV1ResponseTypeObject PaykeyV1ResponseType = "object"` - `const PaykeyV1ResponseTypeArray PaykeyV1ResponseType = "array"` - `const PaykeyV1ResponseTypeError PaykeyV1ResponseType = "error"` - `const PaykeyV1ResponseTypeNone PaykeyV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) paykeyV1, err := client.Paykeys.Review.Decision( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyReviewDecisionParams{ Status: straddle.PaykeyReviewDecisionParamsStatusActive, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", paykeyV1.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Get paykey review details `client.Paykeys.Review.Get(ctx, id, query) (*PaykeyReviewGetResponse, error)` **get** `/v1/paykeys/{id}/review` Get additional details about a paykey. ### Parameters - `id string` - `query PaykeyReviewGetParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyReviewGetResponse struct{…}` - `Data PaykeyReviewGetResponseData` - `PaykeyDetails PaykeyReviewGetResponseDataPaykeyDetails` - `ID string` Unique identifier for the paykey. - `Config PaykeyReviewGetResponseDataPaykeyDetailsConfig` - `ProcessingMethod string` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethodInline PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethod = "inline"` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethodBackground PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethod = "background"` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethodSkip PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcomeStandard PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcome = "standard"` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcomeActive PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcome = "active"` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcomeRejected PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcome = "rejected"` - `const PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcomeReview PaykeyReviewGetResponseDataPaykeyDetailsConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyReviewGetResponseDataPaykeyDetailsSourceBankAccount PaykeyReviewGetResponseDataPaykeyDetailsSource = "bank_account"` - `const PaykeyReviewGetResponseDataPaykeyDetailsSourceStraddle PaykeyReviewGetResponseDataPaykeyDetailsSource = "straddle"` - `const PaykeyReviewGetResponseDataPaykeyDetailsSourceMx PaykeyReviewGetResponseDataPaykeyDetailsSource = "mx"` - `const PaykeyReviewGetResponseDataPaykeyDetailsSourcePlaid PaykeyReviewGetResponseDataPaykeyDetailsSource = "plaid"` - `const PaykeyReviewGetResponseDataPaykeyDetailsSourceTan PaykeyReviewGetResponseDataPaykeyDetailsSource = "tan"` - `const PaykeyReviewGetResponseDataPaykeyDetailsSourceQuiltt PaykeyReviewGetResponseDataPaykeyDetailsSource = "quiltt"` - `Status string` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusPending PaykeyReviewGetResponseDataPaykeyDetailsStatus = "pending"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusActive PaykeyReviewGetResponseDataPaykeyDetailsStatus = "active"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusInactive PaykeyReviewGetResponseDataPaykeyDetailsStatus = "inactive"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusRejected PaykeyReviewGetResponseDataPaykeyDetailsStatus = "rejected"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusReview PaykeyReviewGetResponseDataPaykeyDetailsStatus = "review"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusBlocked PaykeyReviewGetResponseDataPaykeyDetailsStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyReviewGetResponseDataPaykeyDetailsBalance` - `Status string` - `const PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatusPending PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatus = "pending"` - `const PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatusCompleted PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatus = "completed"` - `const PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatusFailed PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyReviewGetResponseDataPaykeyDetailsBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountTypeChecking PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountType = "checking"` - `const PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountTypeSavings PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyReviewGetResponseDataPaykeyDetailsStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonInsufficientFunds PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "insufficient_funds"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonClosedBankAccount PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "closed_bank_account"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonInvalidBankAccount PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "invalid_bank_account"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonInvalidRouting PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "invalid_routing"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonDisputed PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "disputed"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonPaymentStopped PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "payment_stopped"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonOwnerDeceased PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "owner_deceased"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonFrozenBankAccount PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "frozen_bank_account"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonRiskReview PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "risk_review"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonFraudulent PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "fraudulent"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonDuplicateEntry PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "duplicate_entry"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonInvalidPaykey PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "invalid_paykey"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonPaymentBlocked PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "payment_blocked"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonAmountTooLarge PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "amount_too_large"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonTooManyAttempts PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "too_many_attempts"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonInternalSystemError PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "internal_system_error"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonUserRequest PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "user_request"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonOk PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "ok"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonOtherNetworkReturn PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "other_network_return"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonPayoutRefused PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "payout_refused"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonCancelRequest PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "cancel_request"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonFailedVerification PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "failed_verification"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonRequireReview PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "require_review"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonBlockedBySystem PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "blocked_by_system"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonWatchtowerReview PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "watchtower_review"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonValidating PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "validating"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReasonAutoHold PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceWatchtower PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "watchtower"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceBankDecline PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "bank_decline"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceCustomerDispute PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "customer_dispute"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceUserAction PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "user_action"` - `const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceSystem PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `VerificationDetails PaykeyReviewGetResponseDataVerificationDetails` - `ID string` Unique identifier for the verification details. - `Breakdown PaykeyReviewGetResponseDataVerificationDetailsBreakdown` - `AccountValidation PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidation` - `Codes []string` - `Decision string` - `const PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecisionAccept PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecision = "accept"` - `const PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecisionReject PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecision = "reject"` - `const PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecisionReview PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecision = "review"` - `Reason string` - `NameMatch PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatch` - `Codes []string` - `Decision string` - `const PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecisionAccept PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecision = "accept"` - `const PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecisionReject PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecision = "reject"` - `const PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecisionReview PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecision = "review"` - `CorrelationScore float64` - `CustomerName string` - `MatchedName string` - `NamesOnAccount []string` - `Reason string` - `CreatedAt Time` Timestamp of when the verification was initiated. - `Decision string` - `const PaykeyReviewGetResponseDataVerificationDetailsDecisionAccept PaykeyReviewGetResponseDataVerificationDetailsDecision = "accept"` - `const PaykeyReviewGetResponseDataVerificationDetailsDecisionReject PaykeyReviewGetResponseDataVerificationDetailsDecision = "reject"` - `const PaykeyReviewGetResponseDataVerificationDetailsDecisionReview PaykeyReviewGetResponseDataVerificationDetailsDecision = "review"` - `Messages map[string, string]` Dictionary of all messages from the paykey verification process. - `UpdatedAt Time` Timestamp of the most recent update to the verification details. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyReviewGetResponseResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyReviewGetResponseResponseTypeObject PaykeyReviewGetResponseResponseType = "object"` - `const PaykeyReviewGetResponseResponseTypeArray PaykeyReviewGetResponseResponseType = "array"` - `const PaykeyReviewGetResponseResponseTypeError PaykeyReviewGetResponseResponseType = "error"` - `const PaykeyReviewGetResponseResponseTypeNone PaykeyReviewGetResponseResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) review, err := client.Paykeys.Review.Get( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyReviewGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", review.Data) } ``` #### Response ```json { "data": { "paykey_details": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true }, "verification_details": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "breakdown": { "account_validation": { "codes": [ "string" ], "decision": "accept", "reason": "reason" }, "name_match": { "codes": [ "string" ], "decision": "accept", "correlation_score": 0, "customer_name": "customer_name", "matched_name": "matched_name", "names_on_account": [ "string" ], "reason": "reason" } }, "created_at": "2019-12-27T18:11:19.117Z", "decision": "accept", "messages": { "foo": "string" }, "updated_at": "2019-12-27T18:11:19.117Z" } }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ``` ## Update a paykey's identity review decision `client.Paykeys.Review.RefreshReview(ctx, id, body) (*PaykeyV1, error)` **put** `/v1/paykeys/{id}/refresh_review` Updates the decision of a paykey's review validation. This endpoint allows you to refresh the outcome of a paykey's decision and is useful for correcting or updating the status of a paykey's verification. ### Parameters - `id string` - `body PaykeyReviewRefreshReviewParams` - `CorrelationID param.Field[string]` Optional client generated identifier to trace and debug a series of requests. - `IdempotencyKey param.Field[string]` Optional client generated value to use for idempotent requests. - `RequestID param.Field[string]` Optional client generated identifier to trace and debug a request. - `StraddleAccountID param.Field[string]` For use by platforms to specify an account id and set scope of a request. ### Returns - `type PaykeyV1 struct{…}` - `Data PaykeyV1Data` - `ID string` Unique identifier for the paykey. - `Config PaykeyV1DataConfig` - `ProcessingMethod string` - `const PaykeyV1DataConfigProcessingMethodInline PaykeyV1DataConfigProcessingMethod = "inline"` - `const PaykeyV1DataConfigProcessingMethodBackground PaykeyV1DataConfigProcessingMethod = "background"` - `const PaykeyV1DataConfigProcessingMethodSkip PaykeyV1DataConfigProcessingMethod = "skip"` - `SandboxOutcome string` - `const PaykeyV1DataConfigSandboxOutcomeStandard PaykeyV1DataConfigSandboxOutcome = "standard"` - `const PaykeyV1DataConfigSandboxOutcomeActive PaykeyV1DataConfigSandboxOutcome = "active"` - `const PaykeyV1DataConfigSandboxOutcomeRejected PaykeyV1DataConfigSandboxOutcome = "rejected"` - `const PaykeyV1DataConfigSandboxOutcomeReview PaykeyV1DataConfigSandboxOutcome = "review"` - `CreatedAt Time` Timestamp of when the paykey was created. - `Label string` Human-readable label used to represent this paykey in a UI. - `Paykey string` The tokenized paykey value. This value is used to create payments and should be stored securely. - `Source string` - `const PaykeyV1DataSourceBankAccount PaykeyV1DataSource = "bank_account"` - `const PaykeyV1DataSourceStraddle PaykeyV1DataSource = "straddle"` - `const PaykeyV1DataSourceMx PaykeyV1DataSource = "mx"` - `const PaykeyV1DataSourcePlaid PaykeyV1DataSource = "plaid"` - `const PaykeyV1DataSourceTan PaykeyV1DataSource = "tan"` - `const PaykeyV1DataSourceQuiltt PaykeyV1DataSource = "quiltt"` - `Status string` - `const PaykeyV1DataStatusPending PaykeyV1DataStatus = "pending"` - `const PaykeyV1DataStatusActive PaykeyV1DataStatus = "active"` - `const PaykeyV1DataStatusInactive PaykeyV1DataStatus = "inactive"` - `const PaykeyV1DataStatusRejected PaykeyV1DataStatus = "rejected"` - `const PaykeyV1DataStatusReview PaykeyV1DataStatus = "review"` - `const PaykeyV1DataStatusBlocked PaykeyV1DataStatus = "blocked"` - `UpdatedAt Time` Timestamp of the most recent update to the paykey. - `Balance PaykeyV1DataBalance` - `Status string` - `const PaykeyV1DataBalanceStatusPending PaykeyV1DataBalanceStatus = "pending"` - `const PaykeyV1DataBalanceStatusCompleted PaykeyV1DataBalanceStatus = "completed"` - `const PaykeyV1DataBalanceStatusFailed PaykeyV1DataBalanceStatus = "failed"` - `AccountBalance int64` Account Balance when last retrieved - `UpdatedAt Time` Last time account balance was updated. - `BankData PaykeyV1DataBankData` - `AccountNumber string` Bank account number. This value is masked by default for security reasons. Use the /unmask endpoint to access the unmasked value. - `AccountType string` - `const PaykeyV1DataBankDataAccountTypeChecking PaykeyV1DataBankDataAccountType = "checking"` - `const PaykeyV1DataBankDataAccountTypeSavings PaykeyV1DataBankDataAccountType = "savings"` - `RoutingNumber string` The routing number of the bank account. - `CustomerID string` Unique identifier of the related customer object. - `ExpiresAt Time` Expiration date and time of the paykey, if applicable. - `ExternalID string` Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems. - `InstitutionName string` Name of the financial institution. - `Metadata map[string, string]` Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format. - `StatusDetails PaykeyV1DataStatusDetails` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason string` - `const PaykeyV1DataStatusDetailsReasonInsufficientFunds PaykeyV1DataStatusDetailsReason = "insufficient_funds"` - `const PaykeyV1DataStatusDetailsReasonClosedBankAccount PaykeyV1DataStatusDetailsReason = "closed_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidBankAccount PaykeyV1DataStatusDetailsReason = "invalid_bank_account"` - `const PaykeyV1DataStatusDetailsReasonInvalidRouting PaykeyV1DataStatusDetailsReason = "invalid_routing"` - `const PaykeyV1DataStatusDetailsReasonDisputed PaykeyV1DataStatusDetailsReason = "disputed"` - `const PaykeyV1DataStatusDetailsReasonPaymentStopped PaykeyV1DataStatusDetailsReason = "payment_stopped"` - `const PaykeyV1DataStatusDetailsReasonOwnerDeceased PaykeyV1DataStatusDetailsReason = "owner_deceased"` - `const PaykeyV1DataStatusDetailsReasonFrozenBankAccount PaykeyV1DataStatusDetailsReason = "frozen_bank_account"` - `const PaykeyV1DataStatusDetailsReasonRiskReview PaykeyV1DataStatusDetailsReason = "risk_review"` - `const PaykeyV1DataStatusDetailsReasonFraudulent PaykeyV1DataStatusDetailsReason = "fraudulent"` - `const PaykeyV1DataStatusDetailsReasonDuplicateEntry PaykeyV1DataStatusDetailsReason = "duplicate_entry"` - `const PaykeyV1DataStatusDetailsReasonInvalidPaykey PaykeyV1DataStatusDetailsReason = "invalid_paykey"` - `const PaykeyV1DataStatusDetailsReasonPaymentBlocked PaykeyV1DataStatusDetailsReason = "payment_blocked"` - `const PaykeyV1DataStatusDetailsReasonAmountTooLarge PaykeyV1DataStatusDetailsReason = "amount_too_large"` - `const PaykeyV1DataStatusDetailsReasonTooManyAttempts PaykeyV1DataStatusDetailsReason = "too_many_attempts"` - `const PaykeyV1DataStatusDetailsReasonInternalSystemError PaykeyV1DataStatusDetailsReason = "internal_system_error"` - `const PaykeyV1DataStatusDetailsReasonUserRequest PaykeyV1DataStatusDetailsReason = "user_request"` - `const PaykeyV1DataStatusDetailsReasonOk PaykeyV1DataStatusDetailsReason = "ok"` - `const PaykeyV1DataStatusDetailsReasonOtherNetworkReturn PaykeyV1DataStatusDetailsReason = "other_network_return"` - `const PaykeyV1DataStatusDetailsReasonPayoutRefused PaykeyV1DataStatusDetailsReason = "payout_refused"` - `const PaykeyV1DataStatusDetailsReasonCancelRequest PaykeyV1DataStatusDetailsReason = "cancel_request"` - `const PaykeyV1DataStatusDetailsReasonFailedVerification PaykeyV1DataStatusDetailsReason = "failed_verification"` - `const PaykeyV1DataStatusDetailsReasonRequireReview PaykeyV1DataStatusDetailsReason = "require_review"` - `const PaykeyV1DataStatusDetailsReasonBlockedBySystem PaykeyV1DataStatusDetailsReason = "blocked_by_system"` - `const PaykeyV1DataStatusDetailsReasonWatchtowerReview PaykeyV1DataStatusDetailsReason = "watchtower_review"` - `const PaykeyV1DataStatusDetailsReasonValidating PaykeyV1DataStatusDetailsReason = "validating"` - `const PaykeyV1DataStatusDetailsReasonAutoHold PaykeyV1DataStatusDetailsReason = "auto_hold"` - `Source string` - `const PaykeyV1DataStatusDetailsSourceWatchtower PaykeyV1DataStatusDetailsSource = "watchtower"` - `const PaykeyV1DataStatusDetailsSourceBankDecline PaykeyV1DataStatusDetailsSource = "bank_decline"` - `const PaykeyV1DataStatusDetailsSourceCustomerDispute PaykeyV1DataStatusDetailsSource = "customer_dispute"` - `const PaykeyV1DataStatusDetailsSourceUserAction PaykeyV1DataStatusDetailsSource = "user_action"` - `const PaykeyV1DataStatusDetailsSourceSystem PaykeyV1DataStatusDetailsSource = "system"` - `Code string` The status code if applicable. - `UnblockEligible bool` Indicates whether this paykey is eligible for client-initiated unblocking. Only present for blocked paykeys. True when blocked due to R29 returns and not previously unblocked, false otherwise. Null when paykey is not blocked. - `Meta ResponseMetadata` Metadata about the API request, including an identifier and timestamp. - `APIRequestID string` Unique identifier for this API request, useful for troubleshooting. - `APIRequestTimestamp Time` Timestamp for this API request, useful for troubleshooting. - `ResponseType PaykeyV1ResponseType` Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned. - `const PaykeyV1ResponseTypeObject PaykeyV1ResponseType = "object"` - `const PaykeyV1ResponseTypeArray PaykeyV1ResponseType = "array"` - `const PaykeyV1ResponseTypeError PaykeyV1ResponseType = "error"` - `const PaykeyV1ResponseTypeNone PaykeyV1ResponseType = "none"` ### Example ```go package main import ( "context" "fmt" "github.com/straddleio/straddle-go" "github.com/straddleio/straddle-go/option" ) func main() { client := straddle.NewClient( option.WithAPIKey("My API Key"), ) paykeyV1, err := client.Paykeys.Review.RefreshReview( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", straddle.PaykeyReviewRefreshReviewParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", paykeyV1.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "processing_method": "inline", "sandbox_outcome": "standard" }, "created_at": "2019-12-27T18:11:19.117Z", "label": "label", "paykey": "paykey", "source": "bank_account", "status": "pending", "updated_at": "2019-12-27T18:11:19.117Z", "balance": { "status": "pending", "account_balance": 0, "updated_at": "2019-12-27T18:11:19.117Z" }, "bank_data": { "account_number": "****1234", "account_type": "checking", "routing_number": "021000021" }, "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "expires_at": "2019-12-27T18:11:19.117Z", "external_id": "external_id", "institution_name": "Bank of America", "metadata": { "foo": "string" }, "status_details": { "changed_at": "2019-12-27T18:11:19.117Z", "message": "Bank account sucesfully validated", "reason": "insufficient_funds", "source": "watchtower", "code": "code" }, "unblock_eligible": true }, "meta": { "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "api_request_timestamp": "2019-12-27T18:11:19.117Z" }, "response_type": "object" } ```