mutation updatePaymentSessionAuthenticated

Updates a payment session used by the checkout process to create a payment. You may only update a payment session while it is has an Active status.

Returns PaymentSession!

Arguments

ArgumentTypeDescription
inputUpdatePaymentSessionInput!

Example request

curl -X POST 'https://graph.clientloop.com/' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <api-key>' \
  -d '{
    "query": "mutation UpdatePaymentSession($input: UpdatePaymentSessionInput!) { updatePaymentSession(input: $input) { id orgId status amount currency callbackUrl successUrl link contactId contact { id orgId ownerId name givenName familyName email phone deletedAt createdAt updatedAt } contactRef { contactId contactName contactFirstName contactLastName contactEmail contactPhone address { lines locality administrativeArea postalCode countryCode } } transactionRef invoiceIds invoiceRefs { orderId invoiceId invoiceNumber amount lines { num quantity price productId productSku productName productDescription productImageUrl } billingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } shippingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } } expirationDate paymentId createdAt updatedAt checkoutConfigurationId invoiceTotal brandLogoUrl brandName } }",
    "variables": {
      "input": {
        "orgId": "abc123",
        "id": "abc123"
      }
    }
  }'
const response = await fetch('https://graph.clientloop.com/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <api-key>',
  },
  body: JSON.stringify({
    query: `
      mutation UpdatePaymentSession($input: UpdatePaymentSessionInput!) {
        updatePaymentSession(input: $input) {
          id
          orgId
          status
          amount
          currency
          callbackUrl
          successUrl
          link
          contactId
          contact {
            id
            orgId
            ownerId
            name
            givenName
            familyName
            email
            phone
            deletedAt
            createdAt
            updatedAt
          }
          contactRef {
            contactId
            contactName
            contactFirstName
            contactLastName
            contactEmail
            contactPhone
            address {
              lines
              locality
              administrativeArea
              postalCode
              countryCode
            }
          }
          transactionRef
          invoiceIds
          invoiceRefs {
            orderId
            invoiceId
            invoiceNumber
            amount
            lines {
              num
              quantity
              price
              productId
              productSku
              productName
              productDescription
              productImageUrl
            }
            billingContact {
              contactId
              contactName
              contactFirstName
              contactLastName
              contactEmail
              contactPhone
            }
            shippingContact {
              contactId
              contactName
              contactFirstName
              contactLastName
              contactEmail
              contactPhone
            }
          }
          expirationDate
          paymentId
          createdAt
          updatedAt
          checkoutConfigurationId
          invoiceTotal
          brandLogoUrl
          brandName
        }
      }
    `,
    variables: {
      "input": {
        "orgId": "abc123",
        "id": "abc123"
      }
    },
  }),
});

const { data, errors } = await response.json();
<?php

$body = <<<'JSON'
{
  "query": "mutation UpdatePaymentSession($input: UpdatePaymentSessionInput!) { updatePaymentSession(input: $input) { id orgId status amount currency callbackUrl successUrl link contactId contact { id orgId ownerId name givenName familyName email phone deletedAt createdAt updatedAt } contactRef { contactId contactName contactFirstName contactLastName contactEmail contactPhone address { lines locality administrativeArea postalCode countryCode } } transactionRef invoiceIds invoiceRefs { orderId invoiceId invoiceNumber amount lines { num quantity price productId productSku productName productDescription productImageUrl } billingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } shippingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } } expirationDate paymentId createdAt updatedAt checkoutConfigurationId invoiceTotal brandLogoUrl brandName } }",
  "variables": {
    "input": {
      "orgId": "abc123",
      "id": "abc123"
    }
  }
}
JSON;

$ch = curl_init('https://graph.clientloop.com/');
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Authorization: Bearer <api-key>',
  ],
  CURLOPT_POSTFIELDS => $body,
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var body = """
{
  "query": "mutation UpdatePaymentSession($input: UpdatePaymentSessionInput!) { updatePaymentSession(input: $input) { id orgId status amount currency callbackUrl successUrl link contactId contact { id orgId ownerId name givenName familyName email phone deletedAt createdAt updatedAt } contactRef { contactId contactName contactFirstName contactLastName contactEmail contactPhone address { lines locality administrativeArea postalCode countryCode } } transactionRef invoiceIds invoiceRefs { orderId invoiceId invoiceNumber amount lines { num quantity price productId productSku productName productDescription productImageUrl } billingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } shippingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } } expirationDate paymentId createdAt updatedAt checkoutConfigurationId invoiceTotal brandLogoUrl brandName } }",
  "variables": {
    "input": {
      "orgId": "abc123",
      "id": "abc123"
    }
  }
}
""";

var request = HttpRequest.newBuilder(URI.create("https://graph.clientloop.com/"))
    .header("Content-Type", "application/json")
    .header("Authorization", "Bearer <api-key>")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();

var response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
using System.Net.Http;
using System.Text;

var body = """
{
  "query": "mutation UpdatePaymentSession($input: UpdatePaymentSessionInput!) { updatePaymentSession(input: $input) { id orgId status amount currency callbackUrl successUrl link contactId contact { id orgId ownerId name givenName familyName email phone deletedAt createdAt updatedAt } contactRef { contactId contactName contactFirstName contactLastName contactEmail contactPhone address { lines locality administrativeArea postalCode countryCode } } transactionRef invoiceIds invoiceRefs { orderId invoiceId invoiceNumber amount lines { num quantity price productId productSku productName productDescription productImageUrl } billingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } shippingContact { contactId contactName contactFirstName contactLastName contactEmail contactPhone } } expirationDate paymentId createdAt updatedAt checkoutConfigurationId invoiceTotal brandLogoUrl brandName } }",
  "variables": {
    "input": {
      "orgId": "abc123",
      "id": "abc123"
    }
  }
}
""";

using var client = new HttpClient();
using var content = new StringContent(body, Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Bearer <api-key>");

var response = await client.PostAsync("https://graph.clientloop.com/", content);
var result = await response.Content.ReadAsStringAsync();

Types

input UpdatePaymentSessionInput

FieldTypeDescription
orgIdID!

Organization identifier the payment session belongs to.

idID!

Unique identifier for the payment session.

amountAmount

Total payment amount. Ex. 100.10

currencyCurrency

Three letter ISO currency code. Ex. USD

callbackUrlString

URL to receive payment session events

successUrlString

URL to redirect after a payment session is completed by the customer

contactIdID

Optional contact for which this payment session is attached. You cannot provide both a contactId and a contactRef. Note that some features are unavailable if a contactId or contactRef is not provided.

contactRefPaymentSessionContactRefInput

Optional merchant supplied reference contact information external to the platform. You cannot provide both a contactId and a contactRef. Note that some features are unavailable if a contactId or contactRef is not provided.

transactionRefString

Optional merchant supplied reference ID for the transaction external to the platform.

invoiceIds[String!]

Optional array of invoice IDs which this payment session is attached to. You cannot provide both invoiceIds and invoiceRefs. Note that some feature are unavailable unless at least one invoiceId or invoiceRef is provided.

invoiceRefs[PaymentSessionInvoiceRefInput!]

Optional array of invoice references which this payment session is attached to. You cannot provide both invoiceIds and invoiceRefs. Note that some features are unavailable unless at least one invoiceId or invoiceRef is provided.

expirationDateDateTime

Optional expiration date for the payment session. ISO 8601 format.

statusPaymentSessionStatus

Status of the payment session.

paymentIdID

Payment ID associated with this payment session.

checkoutConfigurationIdID

The checkout configuration ID to be used for this payment session. If a checkout configuration ID is not provided, the default checkout configuration will be used.

brandLogoUrlURL

Optional URL to a logo image to display during checkout, overriding the default branding. The caller supplies a URL that is used to render the logo.

brandNameString

Optional brand or merchant name to display during checkout, overriding the organization name.

type PaymentSession

Represents a payment session a customer can use to make a payment. This session is used to configuration and setup the payment experience for an individual customer's session during checkout.

FieldTypeDescription
idID!

Unique identifier for the payment session.

orgIdID!

Organization identifier the payment session belongs to.

statusPaymentSessionStatus!

Status of the payment session.

amountAmount!

Total payment amount. Ex. 100.10

currencyCurrency!

Three letter ISO currency code. Ex. USD

callbackUrlURL

URL to receive payment session events

successUrlURL

URL to redirect after a payment session is completed by the customer

linkURL

Link to the payment session. This will be null if the session is expired or completed. This link is used to redirect the user to the payment page or may be used to embedded payment flow depending on the configuration provided.

contactIdID

ID for the contact for which this payment session is attached.

contactContact

Contact for which this payment session is attached.

contactRefPaymentSessionContactRef

Optional merchant supplied reference contact information external to the platform.

transactionRefString

Optional merchant supplied reference ID for the transaction external to the platform.

invoiceIds[String!]

Optional array of invoice IDs which this payment session is attached to. You cannot provide both invoiceIds and invoiceRefs. Note that some feature are unavailable unless at least one invoiceId or invoiceRef is provided.

invoiceRefs[PaymentSessionInvoiceRef!]

Optional array of invoice references which this payment session is attached to. You cannot provide both invoiceIds and invoiceRefs. Note that some features are unavailable unless at least one invoiceId or invoiceRef is provided.

expirationDateDateTime

Optional expiration date for the payment session. ISO 8601 format.

paymentIdID

Payment ID associated with this payment session. If the payment session status is completed, this will be populated. It may also be populated if the payment session was attached to a pre-created payment record.

createdAtDateTime!

Date the payment session was created

updatedAtDateTime!

Date the payment session was last updated

checkoutConfigurationIdID

The checkout configuration ID used for this payment session.

invoiceTotalAmount

Optional total amount due across the referenced invoices. When the payment amount exceeds this total (for example because of a surcharge or tip), financing options such as FlexPay are disabled since they cannot finance the additional amount.

brandLogoUrlURL

Optional caller-supplied URL to a logo image to display during checkout, overriding the default branding.

brandNameString

Optional caller-supplied brand or merchant name to display during checkout, overriding the organization name.

scalar Amount

A monetary amount with up to two decimal places. Ex. 111.11

scalar Currency

Three letter ISO 4217 currency code. Ex. USD

input PaymentSessionContactRefInput

Merchant provide contact information to use when creating a payment session.

FieldTypeDescription
contactIdID
contactNameString
contactFirstNameString
contactLastNameString
contactEmailEmail
contactPhonePhone
addressGlobalAddressInput

input PaymentSessionInvoiceRefInput

Merchant provided invoice detail used to create a payment session.

FieldTypeDescription
orderIdString

The merchant provided order identifier.

invoiceIdString

The merchant provided invoice identifier.

invoiceNumberString

The merchant provided invoice number.

amountAmount

The total amount of the invoice. Ex 999.99

lines[PaymentSessionInvoiceLineItemRefInput!]

The line items inside the merchant provided invoice.

billingContactPaymentSessionContactRefInput

Billing contact information associated with the invoice

shippingContactPaymentSessionContactRefInput

Shipping contact information associated with the invoice

scalar DateTime

ISO 8601 formatted date time. Ex. 2023-11-23T14:30:00Z

enum PaymentSessionStatus

  • Expired
  • Active
  • Completed
  • Canceled

scalar URL

A URL with protocol and port. ex. https://example.com

type Contact

FieldTypeDescription
idID!

Unique ID of the contact.

orgIdID!

ID of the organization that owns the contact.

ownerIdID!

Global ID of the owning organization (Org#<id>). Deprecated; use orgId.

Deprecated: Use `orgId` instead.
nameString!

Full name of the contact.

givenNameString

Given name of the contact.

familyNameString

Family name of the contact.

emailEmail

Email address of the contact.

phonePhone

Phone number of the contact. This will be validated and normalized to the E.164 format.

deletedAtString

Set when the contact has been soft-deleted; null for an active contact.

createdAtString!

Date and time when the contact was created.

updatedAtString!

Date and time when the contact was last updated.

type PaymentSessionContactRef

Merchant provide contact information for use during a payment session.

FieldTypeDescription
contactIdID
contactNameString
contactFirstNameString
contactLastNameString
contactEmailEmail
contactPhonePhone
addressGlobalAddress

type PaymentSessionInvoiceRef

Merchant provided invoice information for use during a payment session.

FieldTypeDescription
orderIdString

The merchant provided order identifier.

invoiceIdString

The merchant provided invoice identifier.

invoiceNumberString

The merchant provided invoice number.

amountAmount

The total amount of the invoice. Ex 999.99

lines[PaymentSessionInvoiceLineItemRef!]

The line items inside the merchant provided invoice.

billingContactPaymentSessionContactRef

Billing contact information associated with the invoice

shippingContactPaymentSessionContactRef

Billing contact information associated with the invoice

scalar Email

An email address

scalar Phone

E.164 formatted phone number. Ex. +14155554345

input GlobalAddressInput

Address of a physical location

FieldTypeDescription
lines[String!]!

Street, unit, building number, etc.

localityString

City, town or municipality designation

administrativeAreaString

State, province or area designation

postalCodeString

Postal code or ZIP code

countryCodeString!

2-letter country code. Ex. USA

input PaymentSessionInvoiceLineItemRefInput

Merchant provided invoice line item detail used to create a payment session.

FieldTypeDescription
numInt!

Line number in the invoice. This is used to order the line items for display.

quantityFloat

Number of units of the product.

priceAmount

The price of the product. Ex. 100.10 Note that the currency used is from the PaymentSession.

productIdString

The ID of the product.

productSkuString

The sku of the product.

productNameString

The name of the product. This may or may not be displayed to the customer depending on the layout templated selected and its configuration.

productDescriptionString

The description of the product. This may or may not be displayed to the customer depending on the layout templated selected and its configuration.

productImageUrlURL

The URL to the product image to show to the customer. This may or may not be displayed to the customer depending on the layout templated selected and its configuration.

type GlobalAddress

Address of a physical location

FieldTypeDescription
lines[String!]!

Street, unit, building number, etc.

localityString

City, town or municipality designation

administrativeAreaString

State, province or area designation

postalCodeString

Postal code or ZIP code

countryCodeString!

2-letter country code. Ex. USA

type PaymentSessionInvoiceLineItemRef

Merchant provided invoice line item information for use during a payment session.

FieldTypeDescription
numInt!
quantityFloat
priceAmount
productIdString
productSkuString
productNameString
productDescriptionString
productImageUrlURL