Adobe Commerce 2.3 reached end of support in September 2022.

createPaypalExpressToken mutation

The createPaypalExpressToken mutation begins the authorization process for the following payment methods:

  • PayPal Express Checkout
  • PayPal Payflow Pro with Express Checkout
  • PayPal Payflow Link with Express Checkout

The input includes the cart ID, the payment method code, and a set of URLs that PayPal uses to respond to the token request. If the request is successful, PayPal returns a token. The setPaymentMethodOnCart mutation uses this token later in the authorization process.

Syntax

1
2
3
4
5
6
7
mutation {
  createPaypalExpressToken(
    input: PaypalExpressTokenInput!
  ) {
    PaypalExpressTokenOutput
  }
}

Example usage

Request:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mutation {
  createPaypalExpressToken(
    input: {
      cart_id: "rMQdWEecBZr4SVWZwj2AF6y0dNCKQ8uH"
      code: "paypal_express"
      express_button: true
      urls: {
        return_url: "paypal/action/return.html"
        cancel_url: "paypal/action/cancel.html"
      }
    }
  ) {
    token
    paypal_urls {
      start
      edit
    }
  }
}

Response:

1
2
3
4
5
6
7
8
9
10
11
{
  "data": {
    "createPaypalExpressToken": {
      "token": "<PayPal_Token>",
      "paypal_urls": {
        "start": "https://www.sandbox.paypal.com/checkoutnow?token=<PayPal_Token>",
        "edit": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=continue&token=<PayPal_Token>"
      }
    }
  }
}

Input attributes

PaypalExpressTokenInput

The PaypalExpressTokenInput object defines the attributes required to receive a payment token from PayPal.

Attribute Data Type Description
cart_id String! The unique ID that identifies the customer’s cart
code String! Payment method code
express_button Boolean Indicates whether the buyer selected the PayPal Express Checkout button. The default value is false
urls PaypalExpressUrlsInput! A set of relative URLs that PayPal will use in response to various actions during the authorization process.
use_paypal_credit Boolean Indicates whether the buyer clicked the PayPal credit button. The default value is false

PaypalExpressUrlsInput

The PaypalExpressUrlsInput object contains a set of relative URLs that PayPal will use in response to various actions during the authorization process. Magento prepends the base URL to this value to create a full URL. For example, if the full URL is https://www.example.com/path/to/page.html, the relative URL is path/to/page.html. Use this input for Express Checkout and Payments Standard payment methods.

Attribute Data Type Description
cancel_url String! The relative URL of the page that PayPal will redirect to when the buyer cancels the transaction in order to choose a different payment method. If the full URL to this page is https://www.example.com/paypal/action/cancel.html, the relative URL is paypal/action/cancel.html.
pending_url String The relative URL of the page that PayPal will redirect to when the payment has been put on hold for additional review. This condition mostly applies to ACH transactions, and is not applicable to most PayPal solutions. If the full URL to this page is https://www.example.com/paypal/action/success_pending.html, the relative URL is paypal/action/success_pending.html.
return_url String! The relative URL of the final confirmation page that PayPal will redirect to upon payment success. If the full URL is https://www.example.com/paypal/action/success_review.html, the relative URL is paypal/action/success_review.html.
success_url String The relative URL of the order confirmation page that PayPal will redirect to when the payment is successful and additional confirmation is not needed. Not applicable to most PayPal solutions. If the full URL to this page is https://www.example.com/paypal/action/success.html, the relative URL is paypal/action/success.html.

Output attributes

The createPaypalExpressToken mutation previously returned a PaypalExpressToken object, which has been deprecated. The mutation now returns a PaypalExpressTokenOutput object. The contents of these objects are identical.

PaypalExpressTokenOutput

The PaypalExpressToken object contains a token returned by PayPal and a set of URLs that allow the buyer to authorize payment and adjust checkout details.

Attribute Data Type Description
paypal_urls PaypalExpressUrlList A set of URLs that allow the buyer to authorize payment and adjust checkout details
token String The token returned by PayPal

PaypalExpressUrlList

The PaypalExpressUrlList object defines a set of URLs that allow the buyer to authorize payment and adjust checkout details.

Attribute Data Type Description
edit String The PayPal URL that allows the buyer to edit their checkout details
start String The URL to the PayPal login page

Errors

Error Description
Required parameter "cart_id" is missing The mutation does not contain a cart_id argument.
Could not find a cart with ID "XXX" The specified cart_id value does not exist in the quote_id_mask table.
Field PaypalExpressTokenInput.code of required type String! was not provided. The required attribute code is missing.
The requested Payment Method is not available. The payment method is not configured.
Field PaypalExpressUrlsInput.cancel_url of required type String! was not provided. The required attribute cancel_url is missing.
Field PaypalExpressUrlsInput.return_url of required type String! was not provided. The required attribute return_url is missing.