Overview
This document explains about the ER diagram for Split tender sessions. It encapsulates all relevant data including customer, merchant, payment, configuration, and session lifecycle metadata.
ER Diagram For Split Tender Sessions
The following table contains fields with their respective description.
The CheckoutSession table represents the core entity for managing and tracking a user's payment session. It serves as a comprehensive snapshot of everything involved in a checkout flow from the initial request to the final payment outcome
| Field | Description |
|---|---|
| id | Primary key for the session. Auto-generated if null. |
| checkout_request | Full request payload for the checkout, including customer and merchant details. Stored as JSON. |
| merchant_id | Internal identifier for the merchant initiating the session. |
| status | Representing the current status of the session. |
| customer_id | Identifier for the customer involved in the session. |
| vendor_merchant_id | External merchant ID used by vendors or third-party systems. |
| payment_id | ID of the associated payment transaction. |
| payment_method_id | ID of the selected payment method. |
| child_session_id | ID of a child session, if this session spawned another. |
| child_session | Full details of the child session, stored as JSON. |
| request_config | Configuration settings for the session. |
| appearance | UI appearance settings for the checkout session. |
| source | Source identifier. Used internally. |
| created_at | Timestamp when the session was created. Stored with timezone. |
| expires_at | Timestamp when the session expires.Stored with timezone. |
| error | Error details if the session failed.Stored as JSON. |
| payment_method | Full details of the selected payment method. |
| payment | Full payment transaction details. |
| warning | Any warnings related to the payment method.Stored as json |
| features | Feature flags enabled for this session. |
| telephonic_entry_details | Details if the session involves telephonic entry. |
| transaction_id | This is the column representing the overarching split-tender transaction. |
| transaction_details | This field contains the entire Payment Service payload, including nested payment splits. |
checkoutRequest subfields and description
| Field Name | Description |
|---|---|
| authorizeCard | Indicates whether the card should be authorized immediately. |
| partialAuthorization | Allows partial authorization if full amount isn't available. |
| merchantTransactionId | Unique ID for the transaction from the merchant’s system. |
| amount | Total amount to be charged or authorized. |
| statementDescriptorSuffix | Suffix for the statement descriptor shown on the customer’s bank statement. |
| paymentDescription | Description of the payment, used in receipts or logs. |
| phoneNumber | Customer’s phone number for contact or verification. |
| Customer’s email address for communication or receipts. | |
| firstName | Customer’s first name, used for personalization. |
| config | Configuration settings for the checkout session. |
| agent | The agent initiating or handling the checkout. |
| assistedByAgent | An agent assisting another agent in the transaction. |
| metadata | Custom key-value pairs for additional transaction context. |
| paymentDetails | Detailed information about the payment. |
| paymentMethod | Specifies the payment method used . |
| consent | Captures user consent for the transaction, often required for compliance. |
childSession subfields and description
| Field Name | Description |
|---|---|
| id | Unique identifier for the child session. |
| status | Current status of the session. |
| mode | Indicates the operational mode of the session. |
| error | Error message or code if the session encountered a failure. |
| createdAt | Timestamp when the session was created. |
| expiresAt | Timestamp when the session is set to expire. |
| notification | Notification details related to the session.Stored as json |
| warning | Warnings related to the payment method used in the session. |
requestConfig subfields and description
| Field Name | Description |
|---|---|
| modes | Specifies the operational modes for the session. |
| paymentMethodChannel | Contains available payment method channels like card or bank account. |
| privacyPolicyUrl | URL pointing to the merchant's privacy policy. |
| senderEmailAddress | Email address used to send communications; validated for proper format. |
| options | Additional configuration options for the session. |
| merchant | Merchant-specific information .Stored as json |
apperance subfields and decription
| Field Name | Description |
|---|---|
| font | Defines the font style and properties used in the UI.Stored as json |
| palette | Specifies the color scheme for the interface.Stored as json |
| visibility | Controls visibility settings for UI elements. |
| merchantLogo | URL or path to the merchant’s logo image for branding purposes. |
| border | Defines border styling such as width, color, and radius for UI components. |
| height | Specifies height-related layout settings. |
Error subfields and description
| Field Name | Description |
|---|---|
| errorGroup | Categorizes the error into a logical group. |
| errorCode | A unique code representing the specific error type, useful for tracking/debugging. |
| message | A human-readable explanation of the error, intended for display or logging. |
| httpStatus | The HTTP status code associated with the error. |
| errorDetails | Additional structured information about the error, such as field-level issues or context. |
paymentMethod subfields and decription
| Field Name | Description |
|---|---|
| id | Unique identifier for the payment method. |
| paymentMethodType | Type of payment method. |
| vendorPaymentMethodId | Identifier assigned by the vendor for this payment method. |
| customerId | ID of the customer who owns this payment method. |
| vendor | Vendor details associated with the payment method. |
| status | Current status of the payment method. |
| isDefault | Indicates if this is the default payment method for the customer. |
| zipCode | ZIP code associated with the payment method, often for billing verification. |
| error | Error details if the payment method is invalid or failed. |
| nickname | User-defined nickname for easy identification of the payment method. |
| lastModifiedBySource | Source system or actor that last modified the payment method. |
| lastModifiedByMerchantId | Merchant ID that last modified the payment method. |
| lastModifiedByAgent | Agent who last modified the payment method. |
| paymentMethodDetails | Detailed attributes of the payment method. |
| warning | Warning messages related to the payment method. Stored as json |
| deletedPaymentMethodId | ID of a previously deleted payment method, if applicable. |
| eventContext | Contextual metadata for events involving this payment method. |
| metadata | Custom key-value pairs for additional information. |
| authRequired | Indicates if authentication is required for using this payment method. |
| partialAuthorization | Allows partial authorization if full amount isn't available. |
| sourceProvider | Identifies the source system or provider of the payment method. |
| savePaymentMethod | Indicates if the payment method should be saved for future use. |
| attachRequired | Specifies if the payment method must be attached to a session or entity. |
| validate | Indicates whether the payment method should be validated before use. |
| sessionId | ID of the session associated with this payment method. |
| initialVendorPaymentMethodId | Original vendor-assigned ID before any updates or changes. |
payment subfields and description
| Field Name | Description |
|---|---|
| id | Unique identifier for the payment. |
| amount | Total amount intended for the transaction. |
| capturedAmount | Amount that has been successfully captured. |
| authorizedAmount | Amount that has been authorized but not yet captured. |
| description | Description of the payment, often used for display or logging. |
| merchantTransactionId | Merchant-provided transaction identifier. |
| merchantId | Identifier for the merchant initiating the payment. |
| paymentType | Type of payment. |
| currencyCode | ISO currency code. |
| status | Current status of the payment. |
| paymentMethodId | ID of the payment method used. |
| metadata | Custom key-value pairs for additional context or tracking. |
| error | Error details if the payment fails or encounters issues. |
| statementDescriptorSuffix | Suffix added to the statement descriptor shown on the customer’s bank record. |
| paymentDetails | Detailed information about the payment. |
| paymentMethod | Full details of the payment method used. |
| consent | Captures user consent for the transaction. |
| partialAuthorization | Indicates if partial authorization is allowed. |
warning subfields and description
| Field Name | Description |
|---|---|
| code | A short identifier representing the type of warning. |
| title | A brief, user-friendly title for the warning message. |
| description | A detailed explanation of the warning, providing context or recommended action. |
Telephonic EntryDetails subfields and description
| Field Name | Description |
|---|---|
| requestId | Unique identifier for the telephonic entry request. |
| url | URL associated with the telephonic entry, possibly for accessing a resource. |
| status | Current status of the telephonic entry. |
| error | Error details if the telephonic entry encounters a failure or issue. |
TransactionDetails Subfields and description
| Field Name | Description |
|---|---|
| id | Unique identifier for the transaction. |
| amount | Total amount of the payment. |
| authorizedAmount | Maximum amount approved for capture. |
| capturedAmount | Total amount that has been settled or successfully captured. |
| description | Description of the payment transaction used for initiating the payment. |
| merchantTransactionId | Unique identifier used to initiate the transaction. |
| merchantId | Unique identifier for the merchant associated with this payment. |
| vendorMerchantId | Identifier assigned by the payment vendor for this merchant. Used to uniquely identify the merchant in the vendor's system. |
| paymentType | Type of payment used. |
| authorizeCard | Indicates whether the card was authorized for the specified amount. If true, the card must be captured using the Capture API within 7 days. |
| partialAuthorization | When true, indicates the payment could have been partially authorized based on the card issuer and the maximum amount available for capture can be referred from authorizedAmount field. |
| currencyCode | ISO currency code for the payment, e.g. USD |
| status | Indicates the current status of the payment. |
| vendor | Name or ID of the vendor facilitating the transaction. |
| customerId | Unique identifier for the customer associated with the payment. |
| paymentDetails | Contains HelathCare info that is iias and vision amount. |
| agent | Information about the agent when a request is submitted on behalf of a customer. |
| statementDescriptorSuffix | This value is directly propagated from request.Typically used to customize how a transaction |
| checkoutId | Unique identifier for the checkout session associated with this payment. This ID will be populated only if the payment made using CCG Widget. |
| metadata | Provides additional, merchant-defined or system-generated information to enhance payment traceability, reporting, and integration with external systems. |
| consent | Information about customer consent. |
| paymentAllocations | The paymentAllocations field is an array of split tender payment records, each representing a distinct portion of a transaction that has been allocated to a specific payment method. This structure supports scenarios where a single order is paid using multiple payment sources |
PaymentAllocations fields and description
| Field Name | Description |
|---|---|
| id | Unique identifier for the payment allocation record. |
| amount | Total amount allocated for this split. |
| authorizedAmount | Amount that has been authorized for payment. |
| capturedAmount | Amount that has been successfully captured from the payment method. |
| paymentMethodId | Identifier linking to the specific payment method used. |
| status | Current status of the payment allocation. |
| vendorPaymentId | External payment reference or transaction ID from the payment vendor. |
| paymentMethod | Details of the payment method used. |
| paymentCancellationReason | Reason for cancellation, if the payment was voided or rolled back. |
| paymentCancellationMessage | Additional message or context related to the cancellation. |
| error | Error details if the payment attempt failed. |
| metadata | Custom key-value pairs for storing additional contextual information. |