# Shared ## Domain Types ### Customer Details V1 - `class CustomerDetailsV1:` Information about the customer associated with the charge or payout. - `required string ID` Unique identifier for the customer - `required CustomerType CustomerType` The type of customer - `"individual"Individual` - `"business"Business` - `required string Email` The customer's email address - `required string Name` The name of the customer - `required string Phone` The customer's phone number in E.164 format ### Device Info V1 - `class DeviceInfoV1:` - `required string IPAddress` 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 - `class PagedResponseMetadata:` Metadata about the API request, including an identifier, timestamp, and pagination details. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. - `required Int MaxPageSize` Maximum allowed page size for this endpoint. - `required Int PageNumber` Page number for paginated results. - `required Int PageSize` Number of items per page in this response. - `required string SortBy` The field that the results were sorted by. - `required SortOrder SortOrder` - `"asc"Asc` - `"desc"Desc` - `required Int TotalItems` Total number of items returned in this response. - `required Int TotalPages` The number of pages available. ### Paykey Details V1 - `class PaykeyDetailsV1:` - `required string ID` Unique identifier for the paykey. - `required string CustomerID` Unique identifier for the customer associated with the paykey. - `required string Label` Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI - `Int? Balance` The most recent balance of the bank account associated with the paykey in dollars. ### Response Metadata - `class ResponseMetadata:` Metadata about the API request, including an identifier and timestamp. - `required string ApiRequestID` Unique identifier for this API request, useful for troubleshooting. - `required DateTimeOffset ApiRequestTimestamp` Timestamp for this API request, useful for troubleshooting. ### Status Details V1 - `class StatusDetailsV1:` - `required DateTimeOffset ChangedAt` The time the status change occurred. - `required string Message` A human-readable description of the current status. - `required Reason Reason` A machine-readable identifier for the specific status, useful for programmatic handling. - `"insufficient_funds"InsufficientFunds` - `"closed_bank_account"ClosedBankAccount` - `"invalid_bank_account"InvalidBankAccount` - `"invalid_routing"InvalidRouting` - `"disputed"Disputed` - `"payment_stopped"PaymentStopped` - `"owner_deceased"OwnerDeceased` - `"frozen_bank_account"FrozenBankAccount` - `"risk_review"RiskReview` - `"fraudulent"Fraudulent` - `"duplicate_entry"DuplicateEntry` - `"invalid_paykey"InvalidPaykey` - `"payment_blocked"PaymentBlocked` - `"amount_too_large"AmountTooLarge` - `"too_many_attempts"TooManyAttempts` - `"internal_system_error"InternalSystemError` - `"user_request"UserRequest` - `"ok"Ok` - `"other_network_return"OtherNetworkReturn` - `"payout_refused"PayoutRefused` - `"cancel_request"CancelRequest` - `"failed_verification"FailedVerification` - `"require_review"RequireReview` - `"blocked_by_system"BlockedBySystem` - `"watchtower_review"WatchtowerReview` - `"validating"Validating` - `"auto_hold"AutoHold` - `required Source Source` Identifies the origin of the status change (e.g., `bank_decline`, `watchtower`). This helps in tracking the cause of status updates. - `"watchtower"Watchtower` - `"bank_decline"BankDecline` - `"customer_dispute"CustomerDispute` - `"user_action"UserAction` - `"system"System` - `string? Code` The status code if applicable.