Stripe Direct Payment (unsafe - obsolete)
Audience:
Low-code EngineersSkill Prerequisites:
Actions,Tokens
Charges a credit card directly on a seller's connected Stripe account. The payment belongs to the seller, and your platform keeps an application fee. Refunds must be made by the seller's account.
This action is obsolete and unsafe. Don't use it in new applications.
- The card number, CVC and expiry pass through your server as plain values. This puts your site in scope for PCI card-data rules.
- It uses Stripe's older Charges API, without 3D Secure. Many European cards and banks decline these payments under Strong Customer Authentication (SCA) rules.
Use Stripe Checkout instead. Card details stay on Stripe's page, and its Transfer Destination and Application Fee Amount send the payment to a seller and keep a fee.
This action is part of the Stripe add-on (DnnSharp.Stripe). The add-on is installed separately and needs the STRIPE feature in your license. If it isn't licensed, the action fails with a "not licensed" error. If you don't see the Stripe actions, the add-on isn't installed.
Typical Use Cases
- Keep an existing application working while you move it to Stripe Checkout
Don't use it to
- Build a new payment form. Use Stripe Checkout instead.
- Charge through the platform and then transfer to the seller. That's Stripe Payment through the platform (unsafe - obsolete), which is also obsolete.
Related Actions
| Action Name | Description |
|---|---|
| Stripe Checkout | The recommended way to take payments, including payments to sellers. |
| Stripe Payment through the platform (unsafe - obsolete) | Charges on the platform and transfers the money to a seller. |
| Stripe Payment with Token (not SCA compliant) | Charges a card token instead of raw card details. |
| Get Stripe User Account | Finds a seller's connected account ID by email. |
| Stripe Add Seller | Connects a seller's Stripe account to your platform. |
Input Parameter Reference
| Parameter | Description | Supports Tokens | Default | Required |
|---|---|---|---|---|
| API Secret Key | Your platform's Stripe secret key. | Yes | empty string | Yes |
| Application Fee Percentage | The fee your platform keeps, as a percentage of Amount. Use a dot for decimals, for example 2.35. Required when Payment To is set. | Yes | empty string | Yes, with Payment To |
| Application Fee Fixed Amount | A fixed fee added to the percentage fee, in the currency's normal units, for example 0.50. | Yes | empty string | No |
| Payee Email | The payer's email. Stripe sends the receipt to it and saves it on the new customer. | Yes | empty string | No |
| Description | A description of the payment, also saved on the new customer. | Yes | empty string | No |
| Payment To | The seller's connected account ID, for example [SellerAccountId]. If it's empty, the charge is made on your platform account with no fee. | Yes | empty string | Yes |
| Card Number | The card number. | Yes | empty string | Yes |
| Card CVC/CCV | The card's security code. | Yes | empty string | Yes |
| Card Expiration Month | The expiry month, as a number from 1 to 12. | Yes | 0 | Yes |
| Card Expiration Year | The expiry year, for example 2029. | Yes | 0 | Yes |
| Card Owner's Name | The name on the card. | Yes | empty string | No |
| Card Address City | The card's billing city. | Yes | empty string | No |
| Card Address Country | The card's billing country. | Yes | empty string | No |
| Card Address | The card's billing street address. | Yes | empty string | No |
| Amount | The amount to charge, in the currency's normal units, for example 25.50. For zero-decimal currencies like JPY, use whole units. | Yes | empty string | Yes |
| Currency | The three-letter currency code, for example USD. | Yes | empty string | Yes |
| On Success | Actions that run when the charge succeeds. | No | empty | No |
| On Error | Actions that run when Stripe returns an error, for example a declined card. The message is in [Stripe:ErrorMessage]. | No | empty | No |
Output Parameters Reference
| Output | Description |
|---|---|
[Stripe:ChargeId] | The ID of the Stripe charge, for example ch_.... |
[Stripe:ErrorMessage] | The Stripe error message. Available in On Error. |
How it works
- The action creates a Stripe customer on your platform account, with the card, email and description.
- It works out the application fee (see below).
- It creates a charge on the seller's account (
Payment To), with the fee. - It saves the charge ID in
[Stripe:ChargeId]and runsOn Success.
The fee is Amount × Application Fee Percentage ÷ 100, rounded down, plus Application Fee Fixed Amount. For example, 100.00 with 2.35 and 0.50 gives a fee of 2.85.
Considerations
- Amounts are in normal units, not cents. The action converts them for you. Enter
25.50, not2550, even though the product's help text says cents. - Write zero-decimal currency codes in upper case. The action recognizes zero-decimal currencies, like
JPYorKRW, only in upper case. In lower case, the amount is multiplied by 100. - Test before relying on it. The customer is created on your platform account, but the charge is made on the seller's account. Stripe may reject a customer that doesn't exist on the seller's account.
- Not every error runs On Error.
On Erroronly runs for Stripe errors. An invalid amount, an empty fee percentage withPayment To, or a charge that isn't paid raises an error that stops the action list. IfOn Erroris empty, Stripe errors stop it too. Use theOn Errorlist of Execute Actions to catch them. - Numbers depend on the server's culture. Amounts and fees are read with the server's number format. Use a dot for decimals on an English server.
Examples
To understand how to use the below examples, please see Running Examples.
1. Charge a card for a seller and keep a fee
This action charges [Total] USD on the seller's account and keeps 2.5% plus 0.30 for the platform. The card fields come from the form.
{
"Title": "Stripe Direct Payment (unsafe - obsolete)",
"ActionType": "StripeChargeDirectly",
"Description": "Charge the card on the seller's account",
"Parameters": {
"APISecretKey": "[StripeSecretKey]",
"ApplicationFee": "2.5",
"ApplicationFeeFixedAmount": "0.30",
"PayeeEmail": "[Email]",
"Description": "Order [OrderId]",
"PaymentTo": "[SellerAccountId]",
"CardNumber": "[CardNumber]",
"CardCvc": "[CardCvc]",
"CardExpirationMonth": "[CardMonth]",
"CardExpirationYear": "[CardYear]",
"CardName": "[CardName]",
"CardAddressCity": "[City]",
"CardAddressCountry": "[Country]",
"CardAddressLine": "[Address]",
"Amount": "[Total]",
"Currency": "USD",
"OnSuccess": [],
"OnError": []
}
}
Revised 09/27/2026