# CreatePayPalOneTimePaymentInput

Input · GraphQL API

Top-level input field for creating a PayPal One-Time Payment.

## Fields

- `clientMutationId` (`String`): An identifier used to reconcile requests and responses. 255 characters maximum.
- `merchantAccountId` (`ID`): Braintree merchant account ID associated with the PayPal account to be used for the One-Time payment creation.
- `amount` (`MonetaryAmountInput!`) — required: Total amount for payment to be charged to consumer.
- `cancelUrl` (`URL!`) — required: URL for redirect back to merchant app on the client indicating unsuccessful approval.
- `email` (`EmailAddress`) — deprecated since 2024-12-17: Email of the payer. This will prepopulate the input field in the PayPal approval login page.
- `intent` (`PayPalIntent!`) — required: The payment intent.
- `lineItems` (`[PayPalLineItemInput!]`): The line items for this transaction. Maximum 249 line items.
- `offerPayLater` (`Boolean`): Indicates whether PayPal Pay Later should be offered in the PayPal approval flow.
- `offerPayPalCredit` (`Boolean`): Indicates whether PayPal Credit should be offered in the PayPal approval flow.
- `payerEmail` (`EmailAddress`): Email of the payer. This will prepopulate the input field in the PayPal approval login page.
- `paypalRiskCorrelationId` (`ID`): PayPal Risk correlation ID (also known as the Client Metadata ID).
- `paypalExperienceProfile` (`PayPalExperienceProfileInput`): Defines the experience profile used to render the approval flow.
- `requestBillingAgreement` (`Boolean`): Indicates whether this payment uses the [Billing Agreement with Purchase flow](https://developers.braintreepayments.com/guides/paypal/checkout-with-paypal/javascript/v3#checkout-using-paypal-billing-agreement-with-purchase-flow). This will request Billing Agreement approval from the customer, and a multi-use PayPal payment method will be created alongside the transaction.
- `billingAgreementDescription` (`String`): A description of the Billing Agreement being requested. This is displayed to the customer on paypal.com when `requestBillingAgreement` is true. Maximum 127 characters.
- `recipientEmail` (`EmailAddress`): Recipient email address. This field is used when the buyer is different from the recipient of the product.
- `returnUrl` (`URL!`) — required: URL for redirect back to merchant app on the client indicating successful approval.
- `shippingAddress` (`AddressInput`): Merchant-provided shipping address. If passing a shipping address, fields addressLine1, adminArea2, and countryCode are required.
- `shippingOptions` (`[PayPalShippingOptionInput!]`): List of shipping options offered by the payee or merchant to the payer to ship or pick up their items. **Note:** `shippingOptions` may not be passed with intent `ORDER` payments.
- `shippingCallbackUrl` (`URL`): URL for redirecting back to the merchant app to update a customer shipping address.
- `customerSessionId` (`String`): A unique identifier which can be used to manage shopper context across merchant's shopping pages.
- `appSwitchContext` (`PayPalAppSwitchContextInput`): Context information for enabling app switch to the PayPal app during checkout.
- `amountBreakDown` (`PayPalAmountBreakDownInput`): The amount breakdown for this transaction.
- `recurringBillingPlan` (`PayPalRecurringBillingPlanInput`): Billing plan for recurring payments.

## Used by

- [createPayPalOneTimePayment](/braintree/graphql/reference/mutations/create-pay-pal-one-time-payment) — Mutation; input

## GraphQL definition

```graphql
input CreatePayPalOneTimePaymentInput {
  clientMutationId: String
  merchantAccountId: ID
  amount: MonetaryAmountInput!
  cancelUrl: URL!
  email: EmailAddress @deprecated(reason: "Use payerEmail field instead.")
  intent: PayPalIntent!
  lineItems: [PayPalLineItemInput!]
  offerPayLater: Boolean
  offerPayPalCredit: Boolean
  payerEmail: EmailAddress
  paypalRiskCorrelationId: ID
  paypalExperienceProfile: PayPalExperienceProfileInput
  requestBillingAgreement: Boolean
  billingAgreementDescription: String
  recipientEmail: EmailAddress
  returnUrl: URL!
  shippingAddress: AddressInput
  shippingOptions: [PayPalShippingOptionInput!]
  shippingCallbackUrl: URL
  customerSessionId: String
  appSwitchContext: PayPalAppSwitchContextInput
  amountBreakDown: PayPalAmountBreakDownInput
  recurringBillingPlan: PayPalRecurringBillingPlanInput
}
```

---

[View the complete GraphQL schema on GitHub](https://raw.githubusercontent.com/braintree/graphql-api/refs/heads/master/schema.graphql)