Skip to main content

Charge Card on File Action

The Charge Card on File action charges a customer's saved payment method for a booking. Use this to automatically process payments for bookings when the customer has a payment method on file.

Jerome Bajou avatar
Written by Jerome Bajou
Updated over a week ago

Overview

The Charge Card on File action charges a customer's saved payment method for a booking. Use this to automatically process payments for bookings when the customer has a payment method on file.


Configuration

Customer ID (Required)

The ID of the customer whose card to charge. The customer must have a payment method on file (pm_id). Supports variables.

Booking ID (Required)

The ID of the booking to charge. Supports variables.

Amount (Required)

The amount to charge. Must be a positive number. Supports variables.

Note: Amount is specified in the tenant's currency units (e.g., 100.00 for $100.00).


Output

Returns a transaction object in the workflow context with payment details:

  • Transaction ID

  • Booking ID

  • Customer ID

  • Amount charged

  • Payment method

  • Charge ID (from payment provider)

  • Currency

  • Payment provider information

Accessing Transaction Data

After this action, you can access:

{transaction.id} 
{transaction.amount}
{transaction.charge_id}
{transaction.payment_method}
{transaction.currency}

Prerequisites

  1. Customer must have payment method on file - Customer must have a pm_id set

  2. Active payment provider - Tenant must have an active Stripe payment provider configured

  3. Valid booking - Booking must exist and belong to the workflow's business unit


Examples

1. Charge Full Booking Amount

Customer ID: {booking.customer_id} 
Booking ID: {booking.id}
Amount: {booking.gross_price}

2. Charge Partial Amount

Customer ID: {customer.id} 
Booking ID: {booking.id}
Amount: 250.00

3. Charge from Webhook

Customer ID: {webhook_payload.customer_id} 
Booking ID: {webhook_payload.booking_id}
Amount: {webhook_payload.amount}

Payment Processing

  • Uses Stripe Payment Intents API

  • Charges are processed off-session (no customer interaction required)

  • Automatically creates a booking transaction record

  • Updates your revenue statistics

  • Handles currency conversion if needed


Error Handling

The action will fail if:

  • Customer doesn't have a payment method on file

  • No active payment provider (stripe only) is found

  • Customer or booking is not found

  • Card charge fails (declined, insufficient funds, etc.)


Best Practices

  1. Verify payment method exists - Check customer has pm_id before charging

  2. Validate amount - Ensure amount is positive and reasonable

  3. Handle card errors - Set up error notifications for failed charges

  4. Log transactions - Transaction is automatically logged in booking transactions

  5. Test with small amounts - Test payment processing before production use


Related Documentation

Did this answer your question?