Skip to content
Get started

Get a payout by id.

client.Payouts.Unmask(ctx, id, query) (*PayoutUnmaskResponse, error)
GET/v1/payouts/{id}/unmask

Get a payout by id.

ParametersExpand Collapse
id string
query PayoutUnmaskParams
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 PayoutUnmaskResponse struct{…}
Data PayoutUnmaskResponseData
ID string

Id.

formatuuid
Amount int64

Amount.

formatint32
Config PayoutUnmaskResponseDataConfig
AutoHold booloptional

Defines whether to automatically place this charge on hold after being created.

AutoHoldMessage stringoptional

The reason the payout is being automatically held on creation.

SandboxOutcome stringoptional

Payment will simulate processing if not Standard.

One of the following:
const PayoutUnmaskResponseDataConfigSandboxOutcomeStandard PayoutUnmaskResponseDataConfigSandboxOutcome = "standard"
const PayoutUnmaskResponseDataConfigSandboxOutcomePaid PayoutUnmaskResponseDataConfigSandboxOutcome = "paid"
const PayoutUnmaskResponseDataConfigSandboxOutcomeOnHoldDailyLimit PayoutUnmaskResponseDataConfigSandboxOutcome = "on_hold_daily_limit"
const PayoutUnmaskResponseDataConfigSandboxOutcomeCancelledForFraudRisk PayoutUnmaskResponseDataConfigSandboxOutcome = "cancelled_for_fraud_risk"
const PayoutUnmaskResponseDataConfigSandboxOutcomeCancelledForBalanceCheck PayoutUnmaskResponseDataConfigSandboxOutcome = "cancelled_for_balance_check"
const PayoutUnmaskResponseDataConfigSandboxOutcomeFailedInsufficientFunds PayoutUnmaskResponseDataConfigSandboxOutcome = "failed_insufficient_funds"
const PayoutUnmaskResponseDataConfigSandboxOutcomeReversedInsufficientFunds PayoutUnmaskResponseDataConfigSandboxOutcome = "reversed_insufficient_funds"
const PayoutUnmaskResponseDataConfigSandboxOutcomeFailedCustomerDispute PayoutUnmaskResponseDataConfigSandboxOutcome = "failed_customer_dispute"
const PayoutUnmaskResponseDataConfigSandboxOutcomeReversedCustomerDispute PayoutUnmaskResponseDataConfigSandboxOutcome = "reversed_customer_dispute"
const PayoutUnmaskResponseDataConfigSandboxOutcomeFailedClosedBankAccount PayoutUnmaskResponseDataConfigSandboxOutcome = "failed_closed_bank_account"
const PayoutUnmaskResponseDataConfigSandboxOutcomeReversedClosedBankAccount PayoutUnmaskResponseDataConfigSandboxOutcome = "reversed_closed_bank_account"
Currency string

Currency.

Description string

Description.

Device PayoutUnmaskResponseDataDevice
IPAddress string

Ip address.

format**.**.**.**
ExternalID string

External id.

FundingIDs []string

Funding Ids

Paykey string

Paykey.

PaymentDate Time

Payment date.

formatdate
Status string

The current status of the charge or payout.

One of the following:
const PayoutUnmaskResponseDataStatusCreated PayoutUnmaskResponseDataStatus = "created"
const PayoutUnmaskResponseDataStatusScheduled PayoutUnmaskResponseDataStatus = "scheduled"
const PayoutUnmaskResponseDataStatusFailed PayoutUnmaskResponseDataStatus = "failed"
const PayoutUnmaskResponseDataStatusCancelled PayoutUnmaskResponseDataStatus = "cancelled"
const PayoutUnmaskResponseDataStatusOnHold PayoutUnmaskResponseDataStatus = "on_hold"
const PayoutUnmaskResponseDataStatusPending PayoutUnmaskResponseDataStatus = "pending"
const PayoutUnmaskResponseDataStatusPaid PayoutUnmaskResponseDataStatus = "paid"
const PayoutUnmaskResponseDataStatusReversed PayoutUnmaskResponseDataStatus = "reversed"
const PayoutUnmaskResponseDataStatusValidating PayoutUnmaskResponseDataStatus = "validating"
StatusDetails StatusDetailsV1
ChangedAt Time

The time the status change occurred.

formatdate-time
Message string

A human-readable description of the current status.

Reason StatusDetailsV1Reason

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
const StatusDetailsV1ReasonInsufficientFunds StatusDetailsV1Reason = "insufficient_funds"
const StatusDetailsV1ReasonClosedBankAccount StatusDetailsV1Reason = "closed_bank_account"
const StatusDetailsV1ReasonInvalidBankAccount StatusDetailsV1Reason = "invalid_bank_account"
const StatusDetailsV1ReasonInvalidRouting StatusDetailsV1Reason = "invalid_routing"
const StatusDetailsV1ReasonDisputed StatusDetailsV1Reason = "disputed"
const StatusDetailsV1ReasonPaymentStopped StatusDetailsV1Reason = "payment_stopped"
const StatusDetailsV1ReasonOwnerDeceased StatusDetailsV1Reason = "owner_deceased"
const StatusDetailsV1ReasonFrozenBankAccount StatusDetailsV1Reason = "frozen_bank_account"
const StatusDetailsV1ReasonRiskReview StatusDetailsV1Reason = "risk_review"
const StatusDetailsV1ReasonFraudulent StatusDetailsV1Reason = "fraudulent"
const StatusDetailsV1ReasonDuplicateEntry StatusDetailsV1Reason = "duplicate_entry"
const StatusDetailsV1ReasonInvalidPaykey StatusDetailsV1Reason = "invalid_paykey"
const StatusDetailsV1ReasonPaymentBlocked StatusDetailsV1Reason = "payment_blocked"
const StatusDetailsV1ReasonAmountTooLarge StatusDetailsV1Reason = "amount_too_large"
const StatusDetailsV1ReasonTooManyAttempts StatusDetailsV1Reason = "too_many_attempts"
const StatusDetailsV1ReasonInternalSystemError StatusDetailsV1Reason = "internal_system_error"
const StatusDetailsV1ReasonUserRequest StatusDetailsV1Reason = "user_request"
const StatusDetailsV1ReasonOk StatusDetailsV1Reason = "ok"
const StatusDetailsV1ReasonOtherNetworkReturn StatusDetailsV1Reason = "other_network_return"
const StatusDetailsV1ReasonPayoutRefused StatusDetailsV1Reason = "payout_refused"
const StatusDetailsV1ReasonCancelRequest StatusDetailsV1Reason = "cancel_request"
const StatusDetailsV1ReasonFailedVerification StatusDetailsV1Reason = "failed_verification"
const StatusDetailsV1ReasonRequireReview StatusDetailsV1Reason = "require_review"
const StatusDetailsV1ReasonBlockedBySystem StatusDetailsV1Reason = "blocked_by_system"
const StatusDetailsV1ReasonWatchtowerReview StatusDetailsV1Reason = "watchtower_review"
const StatusDetailsV1ReasonValidating StatusDetailsV1Reason = "validating"
const StatusDetailsV1ReasonAutoHold StatusDetailsV1Reason = "auto_hold"
Source StatusDetailsV1Source

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

One of the following:
const StatusDetailsV1SourceWatchtower StatusDetailsV1Source = "watchtower"
const StatusDetailsV1SourceBankDecline StatusDetailsV1Source = "bank_decline"
const StatusDetailsV1SourceCustomerDispute StatusDetailsV1Source = "customer_dispute"
const StatusDetailsV1SourceUserAction StatusDetailsV1Source = "user_action"
const StatusDetailsV1SourceSystem StatusDetailsV1Source = "system"
Code stringoptional

The status code if applicable.

StatusHistory []PayoutUnmaskResponseDataStatusHistory

Status history.

ChangedAt Time

The time the status change occurred.

formatdate-time
Message string

A human-readable description of the status.

Reason string

A machine-readable identifier for the specific status, useful for programmatic handling.

One of the following:
const PayoutUnmaskResponseDataStatusHistoryReasonInsufficientFunds PayoutUnmaskResponseDataStatusHistoryReason = "insufficient_funds"
const PayoutUnmaskResponseDataStatusHistoryReasonClosedBankAccount PayoutUnmaskResponseDataStatusHistoryReason = "closed_bank_account"
const PayoutUnmaskResponseDataStatusHistoryReasonInvalidBankAccount PayoutUnmaskResponseDataStatusHistoryReason = "invalid_bank_account"
const PayoutUnmaskResponseDataStatusHistoryReasonInvalidRouting PayoutUnmaskResponseDataStatusHistoryReason = "invalid_routing"
const PayoutUnmaskResponseDataStatusHistoryReasonDisputed PayoutUnmaskResponseDataStatusHistoryReason = "disputed"
const PayoutUnmaskResponseDataStatusHistoryReasonPaymentStopped PayoutUnmaskResponseDataStatusHistoryReason = "payment_stopped"
const PayoutUnmaskResponseDataStatusHistoryReasonOwnerDeceased PayoutUnmaskResponseDataStatusHistoryReason = "owner_deceased"
const PayoutUnmaskResponseDataStatusHistoryReasonFrozenBankAccount PayoutUnmaskResponseDataStatusHistoryReason = "frozen_bank_account"
const PayoutUnmaskResponseDataStatusHistoryReasonRiskReview PayoutUnmaskResponseDataStatusHistoryReason = "risk_review"
const PayoutUnmaskResponseDataStatusHistoryReasonFraudulent PayoutUnmaskResponseDataStatusHistoryReason = "fraudulent"
const PayoutUnmaskResponseDataStatusHistoryReasonDuplicateEntry PayoutUnmaskResponseDataStatusHistoryReason = "duplicate_entry"
const PayoutUnmaskResponseDataStatusHistoryReasonInvalidPaykey PayoutUnmaskResponseDataStatusHistoryReason = "invalid_paykey"
const PayoutUnmaskResponseDataStatusHistoryReasonPaymentBlocked PayoutUnmaskResponseDataStatusHistoryReason = "payment_blocked"
const PayoutUnmaskResponseDataStatusHistoryReasonAmountTooLarge PayoutUnmaskResponseDataStatusHistoryReason = "amount_too_large"
const PayoutUnmaskResponseDataStatusHistoryReasonTooManyAttempts PayoutUnmaskResponseDataStatusHistoryReason = "too_many_attempts"
const PayoutUnmaskResponseDataStatusHistoryReasonInternalSystemError PayoutUnmaskResponseDataStatusHistoryReason = "internal_system_error"
const PayoutUnmaskResponseDataStatusHistoryReasonUserRequest PayoutUnmaskResponseDataStatusHistoryReason = "user_request"
const PayoutUnmaskResponseDataStatusHistoryReasonOk PayoutUnmaskResponseDataStatusHistoryReason = "ok"
const PayoutUnmaskResponseDataStatusHistoryReasonOtherNetworkReturn PayoutUnmaskResponseDataStatusHistoryReason = "other_network_return"
const PayoutUnmaskResponseDataStatusHistoryReasonPayoutRefused PayoutUnmaskResponseDataStatusHistoryReason = "payout_refused"
const PayoutUnmaskResponseDataStatusHistoryReasonCancelRequest PayoutUnmaskResponseDataStatusHistoryReason = "cancel_request"
const PayoutUnmaskResponseDataStatusHistoryReasonFailedVerification PayoutUnmaskResponseDataStatusHistoryReason = "failed_verification"
const PayoutUnmaskResponseDataStatusHistoryReasonRequireReview PayoutUnmaskResponseDataStatusHistoryReason = "require_review"
const PayoutUnmaskResponseDataStatusHistoryReasonBlockedBySystem PayoutUnmaskResponseDataStatusHistoryReason = "blocked_by_system"
const PayoutUnmaskResponseDataStatusHistoryReasonWatchtowerReview PayoutUnmaskResponseDataStatusHistoryReason = "watchtower_review"
const PayoutUnmaskResponseDataStatusHistoryReasonValidating PayoutUnmaskResponseDataStatusHistoryReason = "validating"
const PayoutUnmaskResponseDataStatusHistoryReasonAutoHold PayoutUnmaskResponseDataStatusHistoryReason = "auto_hold"
Source string

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

One of the following:
const PayoutUnmaskResponseDataStatusHistorySourceWatchtower PayoutUnmaskResponseDataStatusHistorySource = "watchtower"
const PayoutUnmaskResponseDataStatusHistorySourceBankDecline PayoutUnmaskResponseDataStatusHistorySource = "bank_decline"
const PayoutUnmaskResponseDataStatusHistorySourceCustomerDispute PayoutUnmaskResponseDataStatusHistorySource = "customer_dispute"
const PayoutUnmaskResponseDataStatusHistorySourceUserAction PayoutUnmaskResponseDataStatusHistorySource = "user_action"
const PayoutUnmaskResponseDataStatusHistorySourceSystem PayoutUnmaskResponseDataStatusHistorySource = "system"
Status string

The current status of the charge or payout.

One of the following:
const PayoutUnmaskResponseDataStatusHistoryStatusCreated PayoutUnmaskResponseDataStatusHistoryStatus = "created"
const PayoutUnmaskResponseDataStatusHistoryStatusScheduled PayoutUnmaskResponseDataStatusHistoryStatus = "scheduled"
const PayoutUnmaskResponseDataStatusHistoryStatusFailed PayoutUnmaskResponseDataStatusHistoryStatus = "failed"
const PayoutUnmaskResponseDataStatusHistoryStatusCancelled PayoutUnmaskResponseDataStatusHistoryStatus = "cancelled"
const PayoutUnmaskResponseDataStatusHistoryStatusOnHold PayoutUnmaskResponseDataStatusHistoryStatus = "on_hold"
const PayoutUnmaskResponseDataStatusHistoryStatusPending PayoutUnmaskResponseDataStatusHistoryStatus = "pending"
const PayoutUnmaskResponseDataStatusHistoryStatusPaid PayoutUnmaskResponseDataStatusHistoryStatus = "paid"
const PayoutUnmaskResponseDataStatusHistoryStatusReversed PayoutUnmaskResponseDataStatusHistoryStatus = "reversed"
const PayoutUnmaskResponseDataStatusHistoryStatusValidating PayoutUnmaskResponseDataStatusHistoryStatus = "validating"
Code stringoptional

The status code if applicable.

TraceIDs map[string, string]

Trace Ids.

CreatedAt Timeoptional

Created at.

formatdate-time
CustomerDetails CustomerDetailsV1optional

Information about the customer associated with the charge or payout.

ID string

Unique identifier for the customer

formatuuid
CustomerType CustomerDetailsV1CustomerType

The type of customer

One of the following:
const CustomerDetailsV1CustomerTypeIndividual CustomerDetailsV1CustomerType = "individual"
const CustomerDetailsV1CustomerTypeBusiness CustomerDetailsV1CustomerType = "business"
Email string

The customer's email address

Name string

The name of the customer

Phone string

The customer's phone number in E.164 format

EffectiveAt Timeoptional

Effective at.

formatdate-time
Metadata map[string, string]optional

Metadata.

PaykeyDetails PaykeyDetailsV1optional
ID string

Unique identifier for the paykey.

formatuuid
CustomerID string

Unique identifier for the customer associated with the paykey.

formatuuid
Label string

Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI

Balance int64optional

The most recent balance of the bank account associated with the paykey in dollars.

formatint32
PaymentRail stringoptional

The payment rail used for the charge or payout.

ProcessedAt Timeoptional

Processed at.

formatdate-time

Related payments.

One of the following:
UpdatedAt Timeoptional

Updated at.

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 PayoutUnmaskResponseResponseType

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 PayoutUnmaskResponseResponseTypeObject PayoutUnmaskResponseResponseType = "object"
const PayoutUnmaskResponseResponseTypeArray PayoutUnmaskResponseResponseType = "array"
const PayoutUnmaskResponseResponseTypeError PayoutUnmaskResponseResponseType = "error"
const PayoutUnmaskResponseResponseTypeNone PayoutUnmaskResponseResponseType = "none"

Get a payout by id.

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.Payouts.Unmask(
    context.TODO(),
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    straddle.PayoutUnmaskParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Data)
}
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "amount": 0,
    "config": {
      "auto_hold": true,
      "auto_hold_message": "auto_hold_message",
      "sandbox_outcome": "standard"
    },
    "currency": "currency",
    "description": "description",
    "device": {
      "ip_address": "ip_address"
    },
    "external_id": "external_id",
    "funding_ids": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "paykey": "paykey",
    "payment_date": "2019-12-27",
    "status": "created",
    "status_details": {
      "changed_at": "2019-12-27T18:11:19.117Z",
      "message": "Payment successfully created and awaiting validation.",
      "reason": "insufficient_funds",
      "source": "system",
      "code": null
    },
    "status_history": [
      {
        "changed_at": "2019-12-27T18:11:19.117Z",
        "message": "Payment successfully created and awaiting validation.",
        "reason": "insufficient_funds",
        "source": "watchtower",
        "status": "created",
        "code": null
      }
    ],
    "trace_ids": {
      "foo": "string"
    },
    "created_at": "2019-12-27T18:11:19.117Z",
    "customer_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_type": "individual",
      "email": "ron@swanson.com",
      "name": "Ron Swanson",
      "phone": "+1234567890"
    },
    "effective_at": "2019-12-27T18:11:19.117Z",
    "metadata": {
      "foo": "string"
    },
    "paykey_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "label": "Bank of America ****1234",
      "balance": 0
    },
    "payment_rail": "ach",
    "processed_at": "2019-12-27T18:11:19.117Z",
    "related_payments": {
      "foo": "original"
    },
    "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": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "amount": 0,
    "config": {
      "auto_hold": true,
      "auto_hold_message": "auto_hold_message",
      "sandbox_outcome": "standard"
    },
    "currency": "currency",
    "description": "description",
    "device": {
      "ip_address": "ip_address"
    },
    "external_id": "external_id",
    "funding_ids": [
      "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    ],
    "paykey": "paykey",
    "payment_date": "2019-12-27",
    "status": "created",
    "status_details": {
      "changed_at": "2019-12-27T18:11:19.117Z",
      "message": "Payment successfully created and awaiting validation.",
      "reason": "insufficient_funds",
      "source": "system",
      "code": null
    },
    "status_history": [
      {
        "changed_at": "2019-12-27T18:11:19.117Z",
        "message": "Payment successfully created and awaiting validation.",
        "reason": "insufficient_funds",
        "source": "watchtower",
        "status": "created",
        "code": null
      }
    ],
    "trace_ids": {
      "foo": "string"
    },
    "created_at": "2019-12-27T18:11:19.117Z",
    "customer_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_type": "individual",
      "email": "ron@swanson.com",
      "name": "Ron Swanson",
      "phone": "+1234567890"
    },
    "effective_at": "2019-12-27T18:11:19.117Z",
    "metadata": {
      "foo": "string"
    },
    "paykey_details": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "customer_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "label": "Bank of America ****1234",
      "balance": 0
    },
    "payment_rail": "ach",
    "processed_at": "2019-12-27T18:11:19.117Z",
    "related_payments": {
      "foo": "original"
    },
    "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"
}