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 { orgId id name givenName familyName email phone 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 {
            orgId
            id
            name
            givenName
            familyName
            email
            phone
            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 { orgId id name givenName familyName email phone 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 { orgId id name givenName familyName email phone 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 { orgId id name givenName familyName email phone 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.
amountAmountTotal payment amount. Ex. 100.10
currencyCurrencyThree letter ISO currency code. Ex. USD
callbackUrlStringURL to receive payment session events
successUrlStringURL to redirect after a payment session is completed by the customer
contactIdIDOptional 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.
contactRefPaymentSessionContactRefInputOptional 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.
transactionRefStringOptional 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.
expirationDateDateTimeOptional expiration date for the payment session. ISO 8601 format.
statusPaymentSessionStatusStatus of the payment session.
paymentIdIDPayment ID associated with this payment session.
checkoutConfigurationIdIDThe 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.
brandLogoUrlURLOptional 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.
brandNameStringOptional 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
callbackUrlURLURL to receive payment session events
successUrlURLURL to redirect after a payment session is completed by the customer
linkURLLink 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.
contactIdIDID for the contact for which this payment session is attached.
contactContactContact for which this payment session is attached.
contactRefPaymentSessionContactRefOptional merchant supplied reference contact information external to the platform.
transactionRefStringOptional 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.
expirationDateDateTimeOptional expiration date for the payment session. ISO 8601 format.
paymentIdIDPayment 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
checkoutConfigurationIdIDThe checkout configuration ID used for this payment session.
invoiceTotalAmountOptional 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.
brandLogoUrlURLOptional caller-supplied URL to a logo image to display during checkout, overriding the default branding.
brandNameStringOptional 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
orderIdStringThe merchant provided order identifier.
invoiceIdStringThe merchant provided invoice identifier.
invoiceNumberStringThe merchant provided invoice number.
amountAmountThe total amount of the invoice. Ex 999.99
lines[PaymentSessionInvoiceLineItemRefInput!]The line items inside the merchant provided invoice.
billingContactPaymentSessionContactRefInputBilling contact information associated with the invoice
shippingContactPaymentSessionContactRefInputShipping 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
orgIdID!
idID!
nameString!
givenNameString
familyNameString
emailEmail
phonePhone
createdAtString!
updatedAtString!

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
orderIdStringThe merchant provided order identifier.
invoiceIdStringThe merchant provided invoice identifier.
invoiceNumberStringThe merchant provided invoice number.
amountAmountThe total amount of the invoice. Ex 999.99
lines[PaymentSessionInvoiceLineItemRef!]The line items inside the merchant provided invoice.
billingContactPaymentSessionContactRefBilling contact information associated with the invoice
shippingContactPaymentSessionContactRefBilling 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.
localityStringCity, town or municipality designation
administrativeAreaStringState, province or area designation
postalCodeStringPostal 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.
quantityFloatNumber of units of the product.
priceAmountThe price of the product. Ex. 100.10 Note that the currency used is from the PaymentSession.
productIdStringThe ID of the product.
productSkuStringThe sku of the product.
productNameStringThe name of the product. This may or may not be displayed to the customer depending on the layout templated selected and its configuration.
productDescriptionStringThe description of the product. This may or may not be displayed to the customer depending on the layout templated selected and its configuration.
productImageUrlURLThe 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.
localityStringCity, town or municipality designation
administrativeAreaStringState, province or area designation
postalCodeStringPostal 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