PayPal Payment
An embedded PayPal checkout field for collecting payments with customizable button appearance and funding sources.
The PayPal Payment field embeds a PayPal checkout experience directly inside your form. It supports both capture and authorize payment intents, configurable button styling, and funding source controls. The field requires a connected PayPal credential and produces structured output data for use in workflow conditions.
Configuration
| Property | Type | Default | Description |
|---|---|---|---|
| label | string | -- | Label text displayed above the payment field |
| width | LayoutWidth | "full" | Horizontal space the field occupies |
| credentialId | string | -- | ID of the connected PayPal credential |
| merchantId | string | -- | PayPal merchant account ID |
| clientId | string | -- | PayPal client ID (for SDK initialization) |
| amount | number | -- | Payment amount |
| dynamicAmount | string | -- | Expression for computing the amount dynamically from other field values |
| currency | string | -- | Three-letter currency code (e.g. "USD", "EUR") |
| productName | string | -- | Name of the product or service being purchased |
| productDescription | string | -- | Description shown during checkout |
| intent | string | -- | Payment intent: "capture" (charge immediately) or "authorize" (hold funds) |
| enableFunding | string[] | -- | Funding sources to enable (e.g. ["venmo", "paylater"]) |
| disableFunding | string[] | -- | Funding sources to disable |
| buttonText | string | -- | Custom text for the payment button |
| buttonColor | string | -- | Button color: "gold", "blue", "silver", "white", or "black" |
| buttonShape | string | -- | Button shape: "rect" or "pill" |
| buttonLayout | string | -- | Button layout: "vertical" or "horizontal" |
| showAmount | boolean | -- | Whether to display the payment amount on the button |
| onComplete | OnCompleteAction | "auto" | Action after payment completes: "auto", "next", "submit", or "none" |
Payout Settings
| Property | Type | Description |
|---|---|---|
| payeeEmail | string | Email address of the payment recipient |
| platformFeePercent | number | Platform fee as a percentage of the payment amount |
| platformFeeFixed | number | Fixed platform fee amount |
Payment Intents
- capture -- The customer is charged immediately when payment is authorized.
- authorize -- Funds are held on the customer's account but not captured until you explicitly capture them.
Output Data
After a payment attempt, the field produces structured output:
| Output Key | Type | Description |
|---|---|---|
| status | enum | Payment result: "success", "failed", "canceled", or "pending" |
| orderId | string | PayPal order ID |
| transactionId | string | PayPal transaction ID |
| amount | number | Charged amount |
| currency | string | Three-letter currency code |
| payerEmail | string | Payer's email address |
| payerId | string | PayPal payer ID |
| errorMessage | string | Human-readable error description on failure |
Example Usage
A PayPal payment button with gold styling:
{
"type": "paypalPayment",
"label": "Pay with PayPal",
"amount": 49.99,
"currency": "USD",
"productName": "Premium Membership",
"intent": "capture",
"buttonColor": "gold",
"buttonShape": "pill",
"buttonLayout": "horizontal",
"showAmount": true,
"onComplete": "submit"
}