Skip to main content
Version: 1.28 (Current)

Stripe Direct Payment (unsafe - obsolete)

Audience: Low-code Engineers

Skill 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.

caution

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.

note

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​

Action NameDescription
Stripe CheckoutThe 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 AccountFinds a seller's connected account ID by email.
Stripe Add SellerConnects a seller's Stripe account to your platform.

Input Parameter Reference​

ParameterDescriptionSupports TokensDefaultRequired
API Secret KeyYour platform's Stripe secret key.Yesempty stringYes
Application Fee PercentageThe fee your platform keeps, as a percentage of Amount. Use a dot for decimals, for example 2.35. Required when Payment To is set.Yesempty stringYes, with Payment To
Application Fee Fixed AmountA fixed fee added to the percentage fee, in the currency's normal units, for example 0.50.Yesempty stringNo
Payee EmailThe payer's email. Stripe sends the receipt to it and saves it on the new customer.Yesempty stringNo
DescriptionA description of the payment, also saved on the new customer.Yesempty stringNo
Payment ToThe seller's connected account ID, for example [SellerAccountId]. If it's empty, the charge is made on your platform account with no fee.Yesempty stringYes
Card NumberThe card number.Yesempty stringYes
Card CVC/CCVThe card's security code.Yesempty stringYes
Card Expiration MonthThe expiry month, as a number from 1 to 12.Yes0Yes
Card Expiration YearThe expiry year, for example 2029.Yes0Yes
Card Owner's NameThe name on the card.Yesempty stringNo
Card Address CityThe card's billing city.Yesempty stringNo
Card Address CountryThe card's billing country.Yesempty stringNo
Card AddressThe card's billing street address.Yesempty stringNo
AmountThe amount to charge, in the currency's normal units, for example 25.50. For zero-decimal currencies like JPY, use whole units.Yesempty stringYes
CurrencyThe three-letter currency code, for example USD.Yesempty stringYes
On SuccessActions that run when the charge succeeds.NoemptyNo
On ErrorActions that run when Stripe returns an error, for example a declined card. The message is in [Stripe:ErrorMessage].NoemptyNo

Output Parameters Reference​

OutputDescription
[Stripe:ChargeId]The ID of the Stripe charge, for example ch_....
[Stripe:ErrorMessage]The Stripe error message. Available in On Error.

How it works​

  1. The action creates a Stripe customer on your platform account, with the card, email and description.
  2. It works out the application fee (see below).
  3. It creates a charge on the seller's account (Payment To), with the fee.
  4. It saves the charge ID in [Stripe:ChargeId] and runs On 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, not 2550, even though the product's help text says cents.
  • Write zero-decimal currency codes in upper case. The action recognizes zero-decimal currencies, like JPY or KRW, 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 Error only runs for Stripe errors. An invalid amount, an empty fee percentage with Payment To, or a charge that isn't paid raises an error that stops the action list. If On Error is empty, Stripe errors stop it too. Use the On Error list 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​

tip

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