> ## 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

```ts theme={"dark"}
interface PrimerCheckoutData {
  payment?: PrimerCheckoutDataPayment;
  additionalInfo?: PrimerCheckoutAdditionalInfo;
}

interface PrimerCheckoutDataPayment {
  id?: string;
  orderId?: string;
  paymentFailureReason?: PrimerPaymentErrorCode;
}

enum PrimerPaymentErrorCode {
  FAILED = "payment-failed",
  CANCELLED_BY_CUSTOMER = "cancelled-by-customer",
}
```

**Properties**

**payment** `IPrimerCheckoutDataPayment`

**Properties**

**id** `string`

Primer's unique identifier for the payment.

**orderId** `string`

Your order identifier as provided in the client session.

**paymentFailureReason** `PrimerPaymentErrorCode`

Can be either `payment-failed` which is an error from the PSP side, or `cancelled-by-customer` which means the failure initiated on the customer side. I.e. cancelling a 3DS flow.

**additionalInfo** `object`

Custom information, that depends on the payment method.

**Variations**

**XenditCheckoutVoucherAdditionalInfo**

**Properties**

**expiresAt** `String` *required*

**couponCode** `String` *required*

**retailerName** `String` *required*

**PromptPayCheckoutAdditionalInfo**

**Properties**

**expiresAt** `String` *required*

**qrCodeUrl** `String?`

**qrCodeBase64** `String` *required*

**MultibancoCheckoutAdditionalInfo**

**Properties**

**expiresAt** `String` *required*

**entity** `String` *required*

**reference** `String` *required*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.