Hi @coconutboy,
I see what you are trying to achieve here, taking a deposit upfront and enforcing a no show policy by charging the remaining balance later, and it makes sense to pause and question the risk and compliance side of this.
WooCommerce itself does not store raw card details, and capturing or holding card data directly would indeed violate PCI compliance requirements. What is possible, and commonly used for this type of booking or no show flow, is relying on the payment gateway’s tokenization and authorization features instead of saving card details.
With gateways like Cybersource, the usual approach is one of the following, depending on what the gateway supports in WooCommerce:
• Use tokenization, where the card is saved as a token on the gateway side, not in WooCommerce, and then reused later to charge the remaining balance if the customer does not show up.
• Use an authorization and capture flow, where the card is authorized for the full amount or remaining balance, and only captured later if the no show condition is met.
This keeps you within compliance, as WooCommerce never has access to the actual card details, and all sensitive data is handled by the gateway.
Whether this is possible in your setup depends entirely on Cybersource’s WooCommerce integration and whether it supports saved payment methods, delayed capture, or separate authorization and capture actions. That would be the key thing to confirm with Cybersource or their plugin documentation.
From the WooCommerce side, deposits and booking logic are typically handled using extensions or custom logic, while the payment enforcement relies on the gateway features mentioned above. You may find these guides helpful for understanding how WooCommerce handles payments and tokens at a high level: https://developer.woocommerce.com/docs/features/payments/payment-gateway-api/, https://developer.woocommerce.com/docs/features/payments/payment-token-api/ and https://woocommerce.com/document/subscriptions/payment-gateways/
If Cybersource does not support this workflow in WooCommerce, the only safe alternative would be to use a gateway that explicitly supports tokenization or delayed capture for future charges.
Hope this helps clarify what is and is not possible here, and points you in the right direction for the next step. If you have more details on the Cybersource plugin you are using, feel free to share.