> ## Documentation Index
> Fetch the complete documentation index at: https://primer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# PrimerCheckoutData

```kotlin KOTLIN theme={"dark"}
data class PrimerCheckoutData(
  val payment: Payment,
  val additionalInfo: PrimerCheckoutAdditionalInfo? = null
)
```

## Properties

<Expandable defaultOpen>
  <ResponseField name="payment" type="Payment" required>
    <Expandable name="Properties" defaultOpen>
      <ResponseField name="id" type="String" required>
        ID of created payment.
      </ResponseField>

      <ResponseField name="orderId" type="String" required>
        Order ID of created payment.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="additionalInfo" type="PrimerCheckoutAdditionalInfo?">
    <Expandable title="direct subclasses" defaultOpen>
      <ResponseField name="XenditCheckoutVoucherAdditionalInfo">
        <Expandable title="Properties" defaultOpen>
          <ResponseField name="expiresAt" type="String" required />

          <ResponseField name="couponCode" type="String" required />

          <ResponseField name="retailerName" type="String" required />
        </Expandable>
      </ResponseField>

      <ResponseField name="PromptPayCheckoutAdditionalInfo">
        <Expandable title="Properties" defaultOpen>
          <ResponseField name="expiresAt" type="String" required />

          <ResponseField name="qrCodeUrl" type="String?" />

          <ResponseField name="qrCodeBase64" type="String" required />
        </Expandable>
      </ResponseField>

      <ResponseField name="MultibancoCheckoutAdditionalInfo">
        <Expandable title="Properties" defaultOpen>
          <ResponseField name="expiresAt" type="String" required />

          <ResponseField name="entity" type="String" required />

          <ResponseField name="reference" type="String" required />
        </Expandable>
      </ResponseField>

      <ResponseField name="AchAdditionalInfo">
        <Expandable title="direct subclasses" defaultOpen>
          <ResponseField name="ProvideActivityResultRegistry">
            <Expandable title="Properties" defaultOpen>
              <ResponseField name="provide" type="(ActivityResultRegistry) -> Unit" required>
                Provides an ActivityResultRegistry to be used for ACH bank account
                selection.
              </ResponseField>
            </Expandable>
          </ResponseField>

          <ResponseField name="DisplayMandate">
            <Expandable title="Properties" defaultOpen>
              <ResponseField name="onAcceptMandate" type="suspend () -> Unit" required>
                Accepts the ACH mandate, completing the payment.
              </ResponseField>

              <ResponseField name="onDeclineMandate" type="suspend () -> Unit" required>
                Declines the ACH mandate, cancelling the payment.
              </ResponseField>
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>
</Expandable>
