Skip to content
Get started

Get paykey review details

client.Paykeys.Review.Get(ctx, id, query) (*PaykeyReviewGetResponse, error)
GET/v1/paykeys/{id}/review

Get additional details about a paykey.

ParametersExpand Collapse
id string
query PaykeyReviewGetParams
CorrelationID param.Field[string]optional

Optional client generated identifier to trace and debug a series of requests.

RequestID param.Field[string]optional

Optional client generated identifier to trace and debug a request.

StraddleAccountID param.Field[string]optional

For use by platforms to specify an account id and set scope of a request.

formatuuid
ReturnsExpand Collapse
type PaykeyReviewGetResponse struct{…}
Data PaykeyReviewGetResponseData
PaykeyDetails PaykeyReviewGetResponseDataPaykeyDetails
ID string

Unique identifier for the paykey.

formatuuid
Config PaykeyReviewGetResponseDataPaykeyDetailsConfig
ProcessingMethod stringoptional
One of the following:
const PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethodInline PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethod = "inline"
const PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethodBackground PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethod = "background"
const PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethodSkip PaykeyReviewGetResponseDataPaykeyDetailsConfigProcessingMethod = "skip"
SandboxOutcome stringoptional
One of the following:
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.

formatdate-time
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
One of the following:
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
One of the following:
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.

formatdate-time
Balance PaykeyReviewGetResponseDataPaykeyDetailsBalanceoptional
Status string
One of the following:
const PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatusPending PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatus = "pending"
const PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatusCompleted PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatus = "completed"
const PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatusFailed PaykeyReviewGetResponseDataPaykeyDetailsBalanceStatus = "failed"
AccountBalance int64optional

Account Balance when last retrieved

formatint32
UpdatedAt Timeoptional

Last time account balance was updated.

formatdate-time
BankData PaykeyReviewGetResponseDataPaykeyDetailsBankDataoptional
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
One of the following:
const PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountTypeChecking PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountType = "checking"
const PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountTypeSavings PaykeyReviewGetResponseDataPaykeyDetailsBankDataAccountType = "savings"
RoutingNumber string

The routing number of the bank account.

minLength9
maxLength9
CustomerID stringoptional

Unique identifier of the related customer object.

formatuuid
ExpiresAt Timeoptional

Expiration date and time of the paykey, if applicable.

formatdate-time
ExternalID stringoptional

Unique identifier for the paykey in your database, used for cross-referencing between Straddle and your systems.

InstitutionName stringoptional

Name of the financial institution.

Metadata map[string, string]optional

Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the paykey in a structured format.

StatusDetails PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsoptional
ChangedAt Time

The time the status change occurred.

formatdate-time
Message string

A human-readable description of the current status.

Reason string
One of the following:
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
One of the following:
const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceWatchtower PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "watchtower"
const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceBankDecline PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "bank_decline"
const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceCustomerDispute PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "customer_dispute"
const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceUserAction PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "user_action"
const PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSourceSystem PaykeyReviewGetResponseDataPaykeyDetailsStatusDetailsSource = "system"
Code stringoptional

The status code if applicable.

UnblockEligible booloptional

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 PaykeyReviewGetResponseDataVerificationDetailsoptional
ID string

Unique identifier for the verification details.

formatuuid
Breakdown PaykeyReviewGetResponseDataVerificationDetailsBreakdown
AccountValidation PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationoptional
Codes []string
Decision string
One of the following:
const PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecisionAccept PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecision = "accept"
const PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecisionReject PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecision = "reject"
const PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecisionReview PaykeyReviewGetResponseDataVerificationDetailsBreakdownAccountValidationDecision = "review"
Reason stringoptional
NameMatch PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchoptional
Codes []string
Decision string
One of the following:
const PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecisionAccept PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecision = "accept"
const PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecisionReject PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecision = "reject"
const PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecisionReview PaykeyReviewGetResponseDataVerificationDetailsBreakdownNameMatchDecision = "review"
CorrelationScore float64optional
CustomerName stringoptional
MatchedName stringoptional
NamesOnAccount []stringoptional
Reason stringoptional
CreatedAt Time

Timestamp of when the verification was initiated.

formatdate-time
Decision string
One of the following:
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.

formatdate-time

Metadata about the API request, including an identifier and timestamp.

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
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.
One of the following:
const PaykeyReviewGetResponseResponseTypeObject PaykeyReviewGetResponseResponseType = "object"
const PaykeyReviewGetResponseResponseTypeArray PaykeyReviewGetResponseResponseType = "array"
const PaykeyReviewGetResponseResponseTypeError PaykeyReviewGetResponseResponseType = "error"
const PaykeyReviewGetResponseResponseTypeNone PaykeyReviewGetResponseResponseType = "none"

Get paykey review details

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)
}
{
  "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"
}
Returns Examples
{
  "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"
}