---
title: "Create a payment intent"
method: POST
path: "/payment-intents"
tags: ["Payment intents"]
---

# Create a payment intent

`POST /payment-intents`

## Request

- Base URL: `https://api.dojo.tech`
- URL: `https://api.dojo.tech/payment-intents`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/dojo/apis/dojo-api/docs/payment-intents/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a payment intent.

## Headers

- `version` string, date, required

## Request body

- CreatePaymentIntentRequest: The payment intent request object.
  - `captureMode` 'Auto' | 'Manual': The type of capture for the payment, where: - `Auto` payments are captured automatically, once authorization is complete. - `Manual` payments are captured only when a capture request is made.
  - `amount` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `tipsAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `reference` string, required: A unique identifier for the payment. For example, `Order 236`.
  - `description` string, nullable: The payment description.
  - `customer` PaymentCustomerDetails: Details about the customer.
    - `id` string, nullable: The unique identifier of the customer.
    - `name` string, nullable: The customer's name.
    - `emailAddress` string, nullable: The customer's email address.
    - `phoneNumber` string, nullable: The customer's phone number.
    - `secret` string, nullable: The customer secret value.
    - `savedCardId` string, nullable: The unique ID of the customer's saved card.
  - `billingAddress` Address: Details about the address.
    - `address1` string, nullable: Address line 1 (for example, company name).
    - `address2` string, nullable: Address line 2 (for example, street, apartment, or suite).
    - `address3` string, nullable: Address line 3.
    - `address4` string, nullable: Address line 4.
    - `city` string, nullable: City, town, district, suburb, or village.
    - `state` string, nullable: State, province, or region.
    - `postcode` string, nullable: ZIP or postal code.
    - `countryCode` string, required: Two-letter country code in [ISO 3166–1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
    - `locality` string, nullable: Locality, can use in addition to city.
    - `county` string, nullable: County or zone.
  - `shippingDetails` ShippingDetails: Details about the shipping.
    - `name` string, nullable: The name of the customer.
    - `deliveryNotes` string, nullable: The delivery notes.
    - `address` Address: Details about the address.
      - `address1` string, nullable: Address line 1 (for example, company name).
      - `address2` string, nullable: Address line 2 (for example, street, apartment, or suite).
      - `address3` string, nullable: Address line 3.
      - `address4` string, nullable: Address line 4.
      - `city` string, nullable: City, town, district, suburb, or village.
      - `state` string, nullable: State, province, or region.
      - `postcode` string, nullable: ZIP or postal code.
      - `countryCode` string, required: Two-letter country code in [ISO 3166–1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
      - `locality` string, nullable: Locality, can use in addition to city.
      - `county` string, nullable: County or zone.
  - `cardHolderNotPresent` boolean, nullable: Indicates whether this transaction should be completed as Cardholder Not Present (CNP), with manual entry of card details. If the flag is true, the card machine skips the `Present Card` screen and goes directly into Key Card Number.
  - `config` PaymentIntentConfigRequest
    - `title` string, nullable: The [checkout page’s title](../payments/accept-payments/checkout-page/configuration#add-information-about-your-company).
    - `redirectUrl` string, uri, nullable: The URL that a customer will be directed to after payment.
    - `cancelUrl` string, uri, nullable: The URL that a customer will be directed to when canceling a payment.
    - `customerEmail` PaymentIntentConfigCustomerEmail: Include a configurable customer email address as part of the payment intent. Configurable fields can be altered later by [updating](./payments/manage-payments/change-amount) the payment intent.
      - `collectionRequired` boolean: Set to `true` if the object requires collection.
    - `details` PaymentIntentConfigDetails
      - `showTotal` boolean: If has the value `true`, the total order amount will be showed.
      - `showReference` boolean: If the value is `true`, the order reference ID will be shown.
    - `billingAddress` PaymentIntentConfigBillingAddress
      - `collectionRequired` boolean: Set to `true` if the object requires collection.
    - `shippingDetails` PaymentIntentConfigShippingDetails
      - `collectionRequired` boolean: Set to `true` if the object requires collection.
    - `payment` PaymentConfigDetails
      - `customAmountAllowed` boolean: If set to `true` the amount of the payment intent can be changed.
      - `tipsAllowed` boolean: If set to `true`, tip is allowed.
  - `requestSecurity` RequestSecurity: Customer's device information.
    - `userAgent` string, nullable: The customer's browser agent.
    - `ipAddress` string, nullable: The customer's device IP address.
    - `device` string, nullable: The customer's device type.
  - `itemLines` ItemLine[], nullable: The line items purchased by the customer.
    - `id` string: The unique identifier for the object.
    - `quantity` integer: The quantity of items being purchased.
    - `name` string: A name of the item.
    - `category` string: The type of modifier, for easy identification.
    - `modifiers` Modifier[]: A list of modifiers applied to a given item.
      - `name` string, required: A human-readable name of the modifier.
      - `amountPerModifier` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
        - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
        - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
      - `quantity` integer, required: How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
      - `id` string, required: A machine-readable identifier for this modifier.
    - `amountTotal` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
      - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
      - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
    - `plu` string: The price look-up code of the item.
  - `taxLines` TaxLine[], nullable: The taxes applied to the items.
    - `id` string: The unique identifier for the object.
    - `caption` string: A name of the tax.
    - `subCaption` string, nullable: A sub-name of the tax.
    - `amountTotal` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
      - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
      - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
    - `affectedPlu` string: The affected price look-up code of the tax.
  - `paymentMethods` PaymentMethod[], nullable: The payment methods that customers can use to pay. (Card, Wallet, SavedCard)
  - `actionLink` ActionLink: The link to the payment's associated actions.
    - `url` string, uri, required: The link URL.
    - `action` 'OpenLink' | 'DownloadFile': The type of action associated with the link.
    - `label` string, required: Custom label given to the action.
    - `fileName` string, nullable: Filename of the document.
  - `expireAt` string, date-time, nullable: The timestamp and date of when a payment intent will be voided, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format. This occurs when a payment intent is created and not yet authorized. If `null`, the payment intent is voided after 30 days.
  - `autoExpireIn` string, timespan, nullable: The time interval after which a `Manual` payment intent will be captured or reversed, in `dd.hh:MM:ss` format. The timestamp value must be more than 30 seconds and less than 7 days.
  - `autoExpireAction` 'Release' | 'Capture': The action triggered when a `Manual` payment intent expires. This is determined by the expiry time set in the `autoExpireIn` property. Required, if the capture mode is set to `Manual`.
  - `metadata` object, nullable: A set of key-value pairs that you can use to store additional information.
  - `setupIntentId` string, nullable: The unique identifier for the setup intent.
  - `orderDetails` OrderDetails
    - `availabilityDate` string, date-time, nullable: The payment description.
    - `isUpdate` boolean, nullable: An optional true/false field.
    - `id` string, nullable: The unique identifier of the order in Dojo.
    - `externalId` string, nullable: The unique identifier of the order in external systems, such as EPOS.
  - `cashbackAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `serviceChargeAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `generateRemoteToken` boolean: Set to `true` to start accepting online payments immediately. Defaults to `false`.
  - `isNotOnlineCheckout` boolean: Set to `true` to start accepting payment links without an online checkout integration. Defaults to `false`. Requires a verified partner integration.

## Response `200`

OK

- PaymentIntent: The PaymentIntent object.
  - `id` string, nullable: The unique identifier of the payment intent.
  - `captureMode` 'Auto' | 'Manual': The type of capture for the payment, where: - `Auto` payments are captured automatically, once authorization is complete. - `Manual` payments are captured only when a capture request is made.
  - `cardHolderNotPresent` boolean: Indicates whether this transaction should be completed as Cardholder Not Present (CNP), with manual entry of card details. If the flag is true, the card machine skips the `Present Card` screen and goes directly into Key Card Number.
  - `clientSessionSecret` string, nullable: The client secret.
  - `clientSessionSecretExpirationDate` string, date-time: The expiration date of `clientSessionSecret`.
  - `paymentDetails` PaymentDetails: The payment details object.
    - `transactionId` string, nullable: The unique identifier of the transaction.
    - `transactionDateTime` string, nullable: The date and time of the payment in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
    - `message` string, nullable: The description of the operation.
    - `paymentMethodId` string, nullable: The unique identifier of the customer payment method.
    - `authCode` string, nullable: The acquirer's authorization code. This code is returned on a successful transaction.
    - `card` Card
      - `cardNumber` string, nullable: The card number.
      - `cardName` string, nullable: The name of the cardholder.
      - `expiryDate` string, nullable: If available, the expiry date of the card in the format 'MM/YY'.
      - `cardType` string, nullable: The card scheme.
      - `cardFundingType` string: The main funding types are credit, debit, pre-paid, and charge.
      - `last4PAN` string, nullable: The last four digits of the Primary Account Number. For Visa and Mastercard, this will be the four numbers at the end of the sixteen-digit card number.
      - `entryMode` string: Entry mode of the payment. (Contactless, ContactChip, Magstripe, ManualEntry, Unknown)
      - `verificationMethod` string: Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature. (Pin, Signature, Device, None)
    - `avsResult` string, nullable: The result of the Address Verification Service (AVS) check.
  - `status` 'Created' | 'Authorized' | 'Captured' | 'Reversed' | 'Refunded' | 'Canceled': Current status of the payment intent.
  - `paymentMethods` PaymentMethod[], nullable: The payment methods that customers can use to pay. (Card, Wallet, SavedCard)
  - `amount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `tipsAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `requestedAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `totalAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `refundedAmount` integer, nullable: The amount that was [refunded](/payments/manage-payments/cancelling-payments/refund).
  - `customer` Customer: Details about the customer.
    - `id` string, nullable: The unique identifier of the customer.
    - `name` string, nullable: The customer's name.
    - `emailAddress` string, nullable: The customer's email address.
    - `phoneNumber` string, nullable: The customer's phone number.
  - `requestSecurity` RequestSecurity: Customer's device information.
    - `userAgent` string, nullable: The customer's browser agent.
    - `ipAddress` string, nullable: The customer's device IP address.
    - `device` string, nullable: The customer's device type.
  - `billingAddress` Address: Details about the address.
    - `address1` string, nullable: Address line 1 (for example, company name).
    - `address2` string, nullable: Address line 2 (for example, street, apartment, or suite).
    - `address3` string, nullable: Address line 3.
    - `address4` string, nullable: Address line 4.
    - `city` string, nullable: City, town, district, suburb, or village.
    - `state` string, nullable: State, province, or region.
    - `postcode` string, nullable: ZIP or postal code.
    - `countryCode` string, required: Two-letter country code in [ISO 3166–1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
    - `locality` string, nullable: Locality, can use in addition to city.
    - `county` string, nullable: County or zone.
  - `shippingDetails` ShippingDetails: Details about the shipping.
    - `name` string, nullable: The name of the customer.
    - `deliveryNotes` string, nullable: The delivery notes.
    - `address` Address: Details about the address.
      - `address1` string, nullable: Address line 1 (for example, company name).
      - `address2` string, nullable: Address line 2 (for example, street, apartment, or suite).
      - `address3` string, nullable: Address line 3.
      - `address4` string, nullable: Address line 4.
      - `city` string, nullable: City, town, district, suburb, or village.
      - `state` string, nullable: State, province, or region.
      - `postcode` string, nullable: ZIP or postal code.
      - `countryCode` string, required: Two-letter country code in [ISO 3166–1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
      - `locality` string, nullable: Locality, can use in addition to city.
      - `county` string, nullable: County or zone.
  - `createdAt` string, date-time: The creation date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
  - `updatedAt` string, date-time: The timestamp of the update date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
  - `reference` string, nullable: A unique identifier for the payment. For example, `Order 236`.
  - `description` string, nullable: The payment description.
  - `subtotalLineItems` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `itemLines` ItemLine[], nullable: The line items purchased by the customer.
    - `id` string: The unique identifier for the object.
    - `quantity` integer: The quantity of items being purchased.
    - `name` string: A name of the item.
    - `category` string: The type of modifier, for easy identification.
    - `modifiers` Modifier[]: A list of modifiers applied to a given item.
      - `name` string, required: A human-readable name of the modifier.
      - `amountPerModifier` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
        - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
        - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
      - `quantity` integer, required: How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
      - `id` string, required: A machine-readable identifier for this modifier.
    - `amountTotal` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
      - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
      - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
    - `plu` string: The price look-up code of the item.
  - `taxLines` TaxLine[], nullable: The taxes applied to the items.
    - `id` string: The unique identifier for the object.
    - `caption` string: A name of the tax.
    - `subCaption` string, nullable: A sub-name of the tax.
    - `amountTotal` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
      - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
      - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
    - `affectedPlu` string: The affected price look-up code of the tax.
  - `actionLink` ActionLink: The link to the payment's associated actions.
    - `url` string, uri, required: The link URL.
    - `action` 'OpenLink' | 'DownloadFile': The type of action associated with the link.
    - `label` string, required: Custom label given to the action.
    - `fileName` string, nullable: Filename of the document.
  - `merchantConfig` MerchantConfig: Details about the merchant configuration.
    - `supportedPaymentMethods` SupportedPaymentMethods
      - `cardSchemes` CardScheme[], nullable: Supported card schemes.
      - `wallets` WalletPaymentOption[], nullable: List of supported payment wallets.
  - `config` PaymentIntentConfigResponse
    - `title` string, nullable: The [checkout page’s title](../payments/accept-payments/checkout-page/configuration#add-information-about-your-company).
    - `redirectUrl` string, uri, nullable: The URL that a customer will be directed to after payment.
    - `cancelUrl` string, uri, nullable: The URL that a customer will be directed to when canceling a payment.
    - `customerEmail` PaymentIntentConfigCustomerEmail: Include a configurable customer email address as part of the payment intent. Configurable fields can be altered later by [updating](./payments/manage-payments/change-amount) the payment intent.
      - `collectionRequired` boolean: Set to `true` if the object requires collection.
    - `details` PaymentIntentConfigDetails
      - `showTotal` boolean: If has the value `true`, the total order amount will be showed.
      - `showReference` boolean: If the value is `true`, the order reference ID will be shown.
    - `billingAddress` PaymentIntentConfigBillingAddress
      - `collectionRequired` boolean: Set to `true` if the object requires collection.
    - `shippingDetails` PaymentIntentConfigShippingDetails
      - `collectionRequired` boolean: Set to `true` if the object requires collection.
    - `payment` PaymentConfigDetails
      - `customAmountAllowed` boolean: If set to `true` the amount of the payment intent can be changed.
      - `tipsAllowed` boolean: If set to `true`, tip is allowed.
  - `autoExpireAction` 'Release' | 'Capture': The action triggered when a `Manual` payment intent expires. This is determined by the expiry time set in the `autoExpireIn` property. Required, if the capture mode is set to `Manual`.
  - `expireAt` string, date-time, nullable: The timestamp and date of when a payment intent will be voided, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format. This occurs when a payment intent is created and not yet authorized. If `null`, the payment intent is voided after 30 days.
  - `autoExpireIn` string, timespan, nullable: The time interval after which a `Manual` payment intent will be captured or reversed, in `dd.hh:MM:ss` format. The timestamp value must be more than 30 seconds and less than 7 days.
  - `metadata` object, nullable: A set of key-value pairs that you can use to store additional information.
  - `orderDetails` OrderDetails
    - `availabilityDate` string, date-time, nullable: The payment description.
    - `isUpdate` boolean, nullable: An optional true/false field.
    - `id` string, nullable: The unique identifier of the order in Dojo.
    - `externalId` string, nullable: The unique identifier of the order in external systems, such as EPOS.
  - `setupIntentId` string, nullable: The unique identifier for the setup intent.
  - `cashbackAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `serviceChargeAmount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
    - `value` integer, required: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example, "100" for 1.00 GBP.
    - `currencyCode` string, required: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
  - `paymentLink` string, uri, nullable: The URL of the generated payment link. The customer will be redirected to this URL in order to complete the payment.
  - `terminalSessionHistory` TerminalSessionHistoryResponse[], nullable: The past events of the terminal session.
    - `terminalSession` TerminalSessionResponse
      - `terminalId` string, nullable: The unique identifier for the terminal.
      - `id` string, nullable: The unique identifier of the terminal session.
      - `status` 'InitiateRequested' | 'Initiated' | 'Authorized' | 'Captured' | 'CancelRequested' | 'Canceled' | 'SignatureVerificationAccepted' | 'SignatureVerificationRejected' | 'SignatureVerificationRequired' | 'Expired' | 'Declined': The current status of the terminal session. A finalized, successful session will be `Captured`.
      - `expireAt` string, date-time: The timestamp and date of when a terminal session will be marked as `Expired`, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format. This changes throughout the life cycle of a terminal session as it moves to different states.
      - `createdAt` string, date-time: The creation date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
      - `updatedAt` string, date-time: The timestamp of the update date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
      - `notificationEvents` TerminalSessionNotification[], nullable: When a notification is issued, a notification event is created to record when it occurred.
        - `notificationType` string: Terminal notifications. (Approved, Declined, InsertCard, EnterPin, PleaseWait, PresentCard, PresentOnlyOneCard, RemoveCard, CardUnsupported, CardError, ReEnterCard)
        - `createdAt` string, date-time
      - `statusEvents` TerminalSessionStatusEvent[], nullable: Status events include the capture, cancellation, and refund of payments.
        - `status` 'InitiateRequested' | 'Initiated' | 'Authorized' | 'Captured' | 'CancelRequested' | 'Canceled' | 'SignatureVerificationAccepted' | 'SignatureVerificationRejected' | 'SignatureVerificationRequired' | 'Expired' | 'Declined', required: The current status of the terminal session. A finalized, successful session will be `Captured`.
        - `createdAt` string, date-time, required: The creation date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
        - `debugMessage` string, required: The message to troubleshoot the terminal session by revealing the internal state of the terminal.
      - `details` union: Details about the terminal session, including which type of transaction it is associated with.
        - object
          - `unlinkedRefund` TerminalSessionUnlinkedRefundDetails: A refund which is not linked to any previous transaction.
            - `amount` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
              - …
            - `cardholderNotPresent` boolean: Indicates whether this transaction should be completed as Cardholder Not Present (CNP), with manual entry of card details. If the flag is true, the card machine skips the `Present Card` screen and goes directly into Key Card Number.
          - `matchedRefund` TerminalSessionMatchedRefundDetails: A matched refund is associated with the payment intent of the initial transaction.
            - `paymentIntentId` string, required: The unique identifier of the payment intent.
            - `amount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
              - …
          - `sale` TerminalSessionSaleDetails, required: Use this field when creating a terminal session request to name a payment intent by its ID to associate with the session.
            - `paymentIntentId` string, required: The unique identifier of the payment intent.
          - `sessionType` 'Sale' | 'MatchedRefund' | 'UnlinkedRefund', required: Decide which type of transaction a terminal session is going to be associated with.
        - object
          - `unlinkedRefund` TerminalSessionUnlinkedRefundDetails, required: A refund which is not linked to any previous transaction.
            - `amount` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
              - …
            - `cardholderNotPresent` boolean: Indicates whether this transaction should be completed as Cardholder Not Present (CNP), with manual entry of card details. If the flag is true, the card machine skips the `Present Card` screen and goes directly into Key Card Number.
          - `matchedRefund` TerminalSessionMatchedRefundDetails: A matched refund is associated with the payment intent of the initial transaction.
            - `paymentIntentId` string, required: The unique identifier of the payment intent.
            - `amount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
              - …
          - `sale` TerminalSessionSaleDetails: Use this field when creating a terminal session request to name a payment intent by its ID to associate with the session.
            - `paymentIntentId` string, required: The unique identifier of the payment intent.
          - `sessionType` 'Sale' | 'MatchedRefund' | 'UnlinkedRefund', required: Decide which type of transaction a terminal session is going to be associated with.
        - object
          - `unlinkedRefund` TerminalSessionUnlinkedRefundDetails: A refund which is not linked to any previous transaction.
            - `amount` Money, required: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
              - …
            - `cardholderNotPresent` boolean: Indicates whether this transaction should be completed as Cardholder Not Present (CNP), with manual entry of card details. If the flag is true, the card machine skips the `Present Card` screen and goes directly into Key Card Number.
          - `matchedRefund` TerminalSessionMatchedRefundDetails, required: A matched refund is associated with the payment intent of the initial transaction.
            - `paymentIntentId` string, required: The unique identifier of the payment intent.
            - `amount` Money: The amount intended to be collected by this payment intent excluding `tipsAmount` `serviceChargeAmount` and `cashbackAmount`.
              - …
          - `sale` TerminalSessionSaleDetails: Use this field when creating a terminal session request to name a payment intent by its ID to associate with the session.
            - `paymentIntentId` string, required: The unique identifier of the payment intent.
          - `sessionType` 'Sale' | 'MatchedRefund' | 'UnlinkedRefund', required: Decide which type of transaction a terminal session is going to be associated with.
    - `payment` TerminalSessionPaymentResponse
      - `transactionDateTime` string, nullable
      - `cardNumber` string, nullable
      - `expiryDate` string, nullable
      - `cardType` string, nullable
      - `authGatewayTransactionId` string, nullable
      - `cardHolderName` string, nullable
      - `entryMode` string: Entry mode of the payment. (Contactless, ContactChip, Magstripe, ManualEntry, Unknown)
      - `verificationMode` string: Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature. (Pin, Signature, Device, None)
  - `captures` CaptureDetails[], nullable: Details of captured payments.
    - `id` string, nullable
    - `amount` integer
    - `tipsAmount` integer, nullable
    - `status` 'Created' | 'Successful' | 'Declined' | 'Failed': Current capture status.
    - `createdAt` string, date-time

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden

---

[API](https://skmtc.dev/dojo/apis/dojo-api.md) - [All operations](https://skmtc.dev/dojo/apis/dojo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dojo/apis/dojo-api/revisions/29fc8900ba37?raw)
