--- title: PaymentSession - Payments Apps API description: A unique payment transaction. api_version: 2025-10 api_name: payments-apps type: object api_type: graphql source_url: html: https://shopify.dev/docs/api/payments-apps/latest/objects/PaymentSession md: https://shopify.dev/docs/api/payments-apps/latest/objects/PaymentSession.md --- # Payment​Session object Requires `read_payment_sessions` access scope. A unique payment transaction. ## Fields * authorization​Expires​At [Date​Time](https://shopify.dev/docs/api/payments-apps/latest/scalars/DateTime) The date and time when an authorized payment session expires. * id [ID!](https://shopify.dev/docs/api/payments-apps/latest/scalars/ID) non-null A globally-unique ID. * next​Action [Payment​Session​Next​Action](https://shopify.dev/docs/api/payments-apps/latest/objects/PaymentSessionNextAction) The next action expected of the partner. * pending​Expires​At [Date​Time](https://shopify.dev/docs/api/payments-apps/latest/scalars/DateTime) The date and time when a pending payment session expires. * state [Payment​Session​States!](https://shopify.dev/docs/api/payments-apps/latest/unions/PaymentSessionStates) non-null Details about the payment state. *** ## Map No referencing types *** ## Mutations * [payment​Session​Confirm](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionConfirm) mutation Initiates the confirmation process of the given payment\_session. Shopify will start confirming the payment. According to its business logic, Shopify determines if the payment can be authorized and sends a POST request to the payments app, delivering the confirmation result. * [payment​Session​Modal](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionModal) mutation Raises a modal that will be displayed to the buyer after a checkout is completed. Included data will be used to populate the UI extension in the modal. * [payment​Session​Pending](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionPending) mutation Change a payment session status to pending. Upon receiving the response from the `PaymentSessionPending` mutation, you must redirect the customer back to Shopify, using `redirectUrl` in `nextAction`. Upon completion, pending payments must be finalized into either a successful or failed state using the `paymentSessionResolve` or `paymentSessionReject` mutations. Both `sale` and `authorization` payments can be marked as pending. * [payment​Session​Redirect](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionRedirect) mutation Redirects the buyer to the given URL for the payment session. For example, Shopify will redirect the buyer to the URL where the 3DS authentication will take place for onsite payment with `credit_card` payment method. * [payment​Session​Reject](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionReject) mutation Rejects an open payment session. After the `paymentSessionReject` mutation completes on a given payment session, any `paymentSessionResolve` mutation attempts will fail. Subsequent `paymentSessionReject` mutation attempts will succeed, but the `RejectionReasonInput` argument will be ignored. * [payment​Session​Resolve](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionResolve) mutation Resolves an open payment session. After the `paymentSessionResolve` mutation completes on a given payment session, any `paymentSessionReject` mutation attempts will fail. Subsequent `paymentSessionResolve` mutation attempts will succeed, but the `Details` argument will be ignored. *** ## <\~> PaymentSession Mutations ### Mutated by * <\~>[payment​Session​Confirm](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionConfirm) * <\~>[payment​Session​Modal](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionModal) * <\~>[payment​Session​Pending](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionPending) * <\~>[payment​Session​Redirect](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionRedirect) * <\~>[payment​Session​Reject](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionReject) * <\~>[payment​Session​Resolve](https://shopify.dev/docs/api/payments-apps/latest/mutations/paymentSessionResolve)