Sign In

Payment Integrations

Collect one-time payments and subscriptions with Stripe and PayPal directly inside your Buildorado workflows.

Payment integrations embed checkout directly into your Buildorado form flow. Users enter payment details as a step in the form, and the charge is processed before the workflow continues. There is no redirect to an external checkout page -- the entire payment experience happens inside your form. This creates a seamless experience that reduces drop-off and increases conversion rates. All payment credentials are stored with AES-256 encryption through AWS KMS, and payment data is handled in compliance with PCI DSS requirements through Stripe and PayPal's certified payment infrastructure.

Stripe

Stripe is the primary payment integration in Buildorado. It supports one-time payments, recurring subscriptions, and save-card-for-later flows.

Connecting Your Stripe Account

  1. Navigate to Settings > Integrations in your Buildorado dashboard.
  2. Find Stripe and click Connect.
  3. A Stripe authorization popup appears. Sign in with your Stripe account or create a new one.
  4. Review the permissions Buildorado requests and click Allow.
  5. Once authorized, Stripe shows as Connected with your Stripe account name.

You can connect Stripe in test mode for development or live mode for production. Buildorado displays which mode is active on the integration settings page.

Payment Modes

Stripe supports three payment modes in Buildorado, configured per payment field in your form.

One-Time Payments

Charge the customer a single amount when they submit the form. The payment is processed immediately and the workflow continues only after successful payment.

SettingDescription
AmountAmount in cents (e.g., 1000 = $10.00)
CurrencyUSD, EUR, GBP, CAD, AUD, JPY, CHF, INR, BRL, MXN
Product NameName shown above the payment field
Product DescriptionBrief description of what the customer is paying for

Subscriptions

Create a recurring billing relationship. The customer is charged on a schedule starting from the form submission.

SettingDescription
Price IDStripe Price ID for the subscription plan (create in Stripe Dashboard)

For subscriptions, create the product and pricing plan in your Stripe Dashboard first, then reference the Price ID in the Buildorado payment field configuration.

Save Card for Later

Collect and save a customer's card for future charges without charging immediately. Use the setup mode in the payment field configuration.

Payment Field Configuration

When you add a Stripe payment field to your form, you can configure the following settings:

SettingTypeDefaultDescription
Payment Modeselectpaymentpayment (one-time), subscription, or setup (save card)
Product Namestring--Name shown above the payment field
Product Descriptionstring--Brief description
Amount (cents)number--Amount in cents (1000 = $10.00)
CurrencyselectusdCurrency for the payment
Button TextstringPay NowText shown on the payment button
Show Amount on ButtonbooleantrueDisplay the amount on the button
Embedded CheckoutbooleanfalseShow payment form inline instead of redirect
Allow Promotion CodesbooleanfalseEnable promo code entry
Collect Billing AddressbooleanfalseRequire billing address
Collect Shipping AddressbooleanfalseRequire shipping address

Stripe Elements in Forms

Buildorado embeds Stripe Elements directly into the form step. Stripe Elements is a set of pre-built UI components that collect card details securely. The card number, expiration date, and CVC fields are rendered inside a Stripe-hosted iframe, which means:

  • Card details never touch Buildorado's servers -- they go directly to Stripe.
  • The payment form is PCI DSS compliant out of the box.
  • The card input fields automatically validate and format as the user types.
  • 3D Secure (SCA) authentication is handled automatically for cards that require it.

The Stripe Elements appearance adapts to your form's theme, matching fonts, colors, and border styles for a seamless look.

Payment Output Variables

When a Stripe payment is processed, the following output variables are available for use in downstream workflow nodes:

VariableTypeDescription
statusenumPayment status: success, failed, canceled, requires_action, processing
amountnumberAmount charged in cents
currencystringThree-letter currency code
paymentMethodenumPayment method type (e.g., card, bank_transfer, klarna)
cardBrandenumCard brand (e.g., visa, mastercard, amex)
cardLast4stringLast 4 digits of the card
customerEmailstringEmail associated with the payment
errorCodeenumError code if payment failed (e.g., card_declined, insufficient_funds)
errorMessagestringHuman-readable error message

Reference these in downstream nodes:

[Payment Step]
  -- [Email: Send receipt]
    to: "{{form.email}}"
    subject: "Payment confirmed"
    body: "Thank you! Your payment of ${{stripe_1.amount}} has been processed."
  -- [Google Sheets: Log payment]
    values: {"Name": "{{form.name}}", "Amount": "{{stripe_1.amount}}", "Method": "{{stripe_1.paymentMethod}}", "Date": "{{submission.createdAt}}"}
  -- [Slack: #payments "Payment received: {{stripe_1.amount}} cents from {{stripe_1.customerEmail}}"]

Workflow Operations

In addition to the payment form field, Stripe provides workflow action operations:

createCheckoutSession

Create a Stripe Checkout session programmatically.

FieldTypeRequiredDescription
successUrlstringYesURL to redirect after successful payment
cancelUrlstringYesURL to redirect if payment is canceled
modeselectNopayment, subscription, or setup (default: payment)
lineItemsJSONYesArray of line items with price_id or price_data
customerEmailstringNoPre-fill customer email

Output:

FieldTypeDescription
sessionIdstringCheckout session ID
urlstringCheckout URL
expiresAtstringSession expiration timestamp

createPaymentIntent

Create a Payment Intent for server-side payment processing.

FieldTypeRequiredDescription
amountnumberYesAmount in cents (minimum 50)
currencystringYesCurrency code (default: usd)
descriptionstringNoPayment description
receiptEmailstringNoEmail to send receipt to

Output:

FieldTypeDescription
paymentIntentIdstringPayment Intent ID
clientSecretstringClient secret for frontend
statusstringPayment status
amountnumberAmount in cents
currencystringCurrency code

getPaymentIntent

Retrieve the status of a Payment Intent.

FieldTypeRequiredDescription
paymentIntentIdstringYesPayment Intent ID (e.g., pi_xxx)

Output:

FieldTypeDescription
paymentIntentIdstringPayment Intent ID
statusstringPayment status
amountnumberAmount in cents
currencystringCurrency code
paymentMethodstringPayment method used
receiptEmailstringReceipt email

Failed Payment Handling

If a payment fails (declined card, insufficient funds, authentication failure), the form shows an error message to the user and allows them to retry with different payment details. The workflow does not continue until payment succeeds.

For webhook-triggered payment failures (e.g., a subscription payment fails on renewal), configure a Stripe webhook endpoint in your Stripe Dashboard pointing to a Buildorado incoming webhook to handle the failure event.

Testing with Stripe Test Mode

Stripe provides a test mode for development and testing. When your Stripe integration is connected in test mode:

  • Use Stripe's test card numbers to simulate payments:
Card NumberResult
4242 4242 4242 4242Successful payment
4000 0000 0000 0002Card declined
4000 0025 0000 3155Requires 3D Secure authentication
4000 0000 0000 9995Insufficient funds
  • No real charges are made. Test transactions appear in Stripe's test mode dashboard.
  • Use any future expiration date and any 3-digit CVC.
  • Switch to live mode by reconnecting with your live Stripe account when you are ready to accept real payments.

Tips for Stripe

  • Always test your payment flow in Stripe test mode before going live. Verify the amount, currency, and receipt email are correct.
  • Stripe processes amounts in the smallest currency unit (cents for USD). The amount field and output values are always in cents.
  • Enable Stripe Radar for fraud protection. Buildorado does not provide its own fraud detection.
  • For subscription plans, create the products and prices in the Stripe Dashboard. Buildorado references these by Price ID rather than creating them dynamically.
  • Refunds must be processed directly in the Stripe Dashboard or via the Stripe API. Buildorado does not currently support automated refunds from workflows.

PayPal

PayPal integration provides an alternative payment method for customers who prefer PayPal checkout over credit card payments.

Connecting Your PayPal Account

  1. Navigate to Settings > Integrations and click Connect next to PayPal.
  2. Sign in with your PayPal Business account in the authorization popup.
  3. Grant the requested permissions for payment processing.
  4. Once authorized, PayPal shows as Connected with your PayPal email.

A PayPal Business account is required. Personal PayPal accounts cannot accept payments through integrations.

Payment Field Configuration

When you add a PayPal payment field to your form, you can configure the following settings:

SettingTypeDefaultDescription
Product Namestring--Name shown for the payment
Product Descriptionstring--Brief description
Amount (cents)number--Amount in cents (1000 = $10.00)
CurrencyselectusdUSD, EUR, GBP, CAD, or AUD
Button Colorselectgoldgold, blue, silver, white, or black
Button Shapeselectrectrect (rectangle) or pill
Button Layoutselectverticalvertical (stacked) or horizontal (side by side)
Payment Intentselectcapturecapture (immediate) or authorize (manual capture)

Checkout Experience

When a user reaches the PayPal payment step in your form:

  1. The PayPal button is displayed within the form.
  2. Clicking the button opens the PayPal checkout window.
  3. The user signs in to PayPal (or pays as a guest with a card).
  4. After payment approval, the checkout window closes and the form continues.
  5. The payment is captured and the workflow proceeds.

Payment Output Variables

VariableTypeDescription
statusenumPayment status: success, failed, canceled, pending
amountnumberAmount charged in cents
currencystringCurrency code
orderIdstringPayPal order ID
payerEmailstringPayPal payer email address
errorMessagestringError message if payment failed

Workflow Operations

In addition to the payment form field, PayPal provides workflow action operations:

createOrder

Create a PayPal order programmatically.

FieldTypeRequiredDescription
amountstringYesOrder amount (e.g., 10.00)
currencystringYesCurrency code (default: USD)
descriptionstringNoOrder description
returnUrlstringNoURL to redirect after approval
cancelUrlstringNoURL to redirect if canceled

Output:

FieldTypeDescription
orderIdstringPayPal order ID
statusstringOrder status
approvalUrlstringURL for the customer to approve payment

captureOrder

Capture payment for an approved PayPal order.

FieldTypeRequiredDescription
orderIdstringYesOrder ID to capture

Output:

FieldTypeDescription
orderIdstringOrder ID
statusstringCapture status
captureIdstringCapture transaction ID
amountstringAmount captured
currencystringCurrency code
payerEmailstringPayer's email address

getOrder

Retrieve details of a PayPal order.

FieldTypeRequiredDescription
orderIdstringYesOrder ID to retrieve

Output:

FieldTypeDescription
orderIdstringOrder ID
statusstringOrder status
amountstringOrder amount
currencystringCurrency code
payerEmailstringPayer's email address
createTimestringWhen the order was created

Tips for PayPal

  • PayPal Business accounts have different fee structures by country. Check PayPal's fee schedule for your region.
  • PayPal supports guest checkout, allowing customers to pay with a credit or debit card without a PayPal account.
  • For testing, use PayPal's sandbox environment with sandbox buyer and seller accounts.
  • PayPal disputes and refunds are managed through the PayPal Resolution Center, not through Buildorado.

Choosing Between Stripe and PayPal

FeatureStripePayPal
Payment methodsCredit/debit cards, Apple Pay, Google PayPayPal balance, credit/debit cards, bank transfer
SubscriptionsFull subscription managementLimited
Embedded experienceInline card fields (no redirect)PayPal button + popup window
Test modeFull test environment with test cardsSandbox environment
3D Secure / SCAAutomaticHandled by PayPal
Payout speed2 business days (standard)Instant to PayPal balance

For most Buildorado workflows, Stripe is the recommended payment integration because it provides a fully embedded checkout experience without redirects and supports advanced features like subscriptions and save-card-for-later. PayPal is a valuable addition for customers who prefer paying with their PayPal balance or in regions where PayPal adoption is higher than credit card usage.

Common Payment Patterns

Order Form with Dynamic Total

[Form: Product Order]
  Step 1: Select products (checkboxes with prices)
  Step 2: Quantity and shipping
  Step 3: Payment (dynamic pricing = sum of selected products * quantities)
  -- [Email: Order confirmation with receipt link]
  -- [Google Sheets: Log order details]
  -- [Slack: #orders "New order {{stripe_1.amount}} cents from {{stripe_1.customerEmail}}"]

Consultation Booking with Payment

[Form: Book Consultation]
  Step 1: Select service type and duration
  Step 2: Pick date and time
  Step 3: Payment (price based on service type and duration)
  -- [Google Calendar: Create event]
  -- [Email: Confirmation with calendar invite]

Donation Form with Custom Amount

[Form: Donation]
  Step 1: Select or enter donation amount
  Step 2: Donor information
  Step 3: Payment
  -- [Email: Thank you and tax receipt]

Security and Compliance

PCI DSS Compliance

Buildorado achieves PCI compliance by using Stripe Elements and PayPal's checkout components. Card details are entered directly into Stripe or PayPal hosted fields and never pass through Buildorado's servers. This means:

  • Buildorado is not in scope for PCI DSS audits for card data.
  • Card numbers, CVCs, and expiration dates are never stored, logged, or transmitted by Buildorado.
  • All payment processing happens on Stripe's or PayPal's PCI-certified infrastructure.

Credential Security

  • Stripe API keys and PayPal OAuth tokens are encrypted with AES-256 using AWS KMS.
  • Credentials are never exposed in API responses, logs, or the dashboard UI.
  • Token refresh is handled automatically by Buildorado.

Fraud Protection

  • Stripe Radar provides machine-learning-based fraud detection for Stripe payments.
  • PayPal provides built-in buyer and seller protection.
  • Buildorado does not provide its own fraud detection layer; it relies on the payment provider's fraud tools.

For additional security guidance, see the credential security section on the integrations overview page.

On this page

Payment Integrations | Buildorado