# Shared ## Domain Types ### Customer Details V1 - `type CustomerDetailsV1 struct{…}` Information about the customer associated with the charge or payout. - `ID string` Unique identifier for the customer - `CustomerType CustomerDetailsV1CustomerType` The type of customer - `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 ### Device Info V1 - `type DeviceInfoV1 struct{…}` - `IPAddress string` The IP address of the device used when the customer authorized the charge or payout. Use `0.0.0.0` to represent an offline consent interaction. ### Paged Response Metadata - `type PagedResponseMetadata struct{…}` Metadata about the API request, including an identifier, timestamp, and pagination details. - `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 PagedResponseMetadataSortOrder` - `const PagedResponseMetadataSortOrderAsc PagedResponseMetadataSortOrder = "asc"` - `const PagedResponseMetadataSortOrderDesc PagedResponseMetadataSortOrder = "desc"` - `TotalItems int64` Total number of items returned in this response. - `TotalPages int64` The number of pages available. ### Paykey Details V1 - `type PaykeyDetailsV1 struct{…}` - `ID string` Unique identifier for the paykey. - `CustomerID string` Unique identifier for the customer associated with the paykey. - `Label string` Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI - `Balance int64` The most recent balance of the bank account associated with the paykey in dollars. ### Response Metadata - `type ResponseMetadata struct{…}` 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. ### Status Details V1 - `type StatusDetailsV1 struct{…}` - `ChangedAt Time` The time the status change occurred. - `Message string` A human-readable description of the current status. - `Reason StatusDetailsV1Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `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. - `const StatusDetailsV1SourceWatchtower StatusDetailsV1Source = "watchtower"` - `const StatusDetailsV1SourceBankDecline StatusDetailsV1Source = "bank_decline"` - `const StatusDetailsV1SourceCustomerDispute StatusDetailsV1Source = "customer_dispute"` - `const StatusDetailsV1SourceUserAction StatusDetailsV1Source = "user_action"` - `const StatusDetailsV1SourceSystem StatusDetailsV1Source = "system"` - `Code string` The status code if applicable.