In Sending Invoices with Stripe we explained how to send invoices to customers by combining Stripe and Questetra’s automated processes. [Stripe: Charge by Invoice] allows you to automatically charge a customer’s payment method (credit card) registered in Stripe. This article explains the difference between Stripe: Charge by Invoice] and [Stripe: Send Invoice], their uses, and how automatic billing works with [Stripe: Charge by Invoice].
1. Questetra’s automated processes
Questetra’s workflow can use the following two built-in automated processes for billing and invoicing customers in conjunction with Stripe.
Stripe: Send Invoice

Stripe: Charge by Invoice

2. Settlement method in Stripe
Stripe accepts credit cards, mobile wallets, bank transfer, etc. The Stripe account administrator chooses which of these payment methods he or she wishes to enable and offers them as payment methods to customers.
For payments via credit card, Stripe offers two payment formats: “on-session” and “off-session”.
- On-Session
- A payment is described as on-session if it occurs while the customer is actively in your checkout flow and able to authenticate the payment method.
- Off-Session
- A payment is described as off-session if it occurs without the direct involevement of the customer, using previously-collected payment information.
Stripe provides a mechanism to store payment credentials for future off-session payments. Please see Stripe’s Setup Intents API documentation for more information.
Each of the aforementioned Questetra automated processes supports the Stripe payment format as described below. They are also intended for use in the following scenarios
[Stripe: Send Invoice]- Corresponds on-session payments
- Direct the customer via the invoice email to the Stripe payment page and have them complete the payment process
- The payment page will show the payment methods allowed by the Stripe account administrator
- If you set up the option to reuse card information, the payment method is limited to credit cards only
- In addition to the customer’s card information, authentication information is stored for future off-session payments
- Use this automated processes for one-time payments or to have the customer register his/her card information for the first payment in a subscription
- Corresponds Off-session payments
- The customer is not involved in the payment process (prior agreement is required)
- Charges the customer’s registered payment method (credit card)
- The payment method registered as “default” is used.
- If billing to the default payment method fails, attempts to bill other registered cards
- Payment is made immediately upon billing
- When used with multiple billings or with the second or subsequent payments of a subscription, it reduces the burden on the customer to make each payment.
3. Setting up Stripe and Questetra Integration
Please refer to Sending Invoices with Stripeー2. Stripe and Questetra Integration Settings.
4. Sample Apps

Add a [Charge by Invoice] step to the app created/tested in Sending Invoices with Stripe. Add a Select-type Data item “Billing Method” so that the result of the selection is referenced in the split condition.
Workflow App Settings
Data Items
Data Item Name | Data Type | Field Name | Required | Enter Billing Information step | Description |
Title | – | – | – | Editable | Process Title |
Client ID | String-type (single line) | q_customer_id | – | Editable | Enter the customer’s Stripe ID as it appears in Stripe. |
Payment date | Datetime-type | q_payment_datetime | – | Editable | Enter the payment due date. |
Itemized billing statement | Table-type | q_billing_statement | – | Editable | Table items (column settings) should be, from left to right, string (“Product Name”), numeric (“Unit Price”), and numeric (“Quantity”). (If the third column from the left is not set as above, an error will occur during automated processing.) |
Invoice Memo | String-type (multiple lines) | q_invoice_note | – | Editable | Enter notes and other information that will appear on the invoice. |
Billing Method | Select-type (radio button) | q_charge_type | – | Editable | Specify the billing method as either [Email invoice] or [Charge by Invoice]. (Referenced by the split condition.) ★ Data items to be added this time |
Invoice ID | String-type (single line) | q_invoice_id | – | Only display | Stores the retrieved ID for the draft invoice created in Stripe. |
Invoice URL | String-type (single line) | q_invoice_url | – | Only display | Stores the retrieved Stripe page URL where you can view the draft invoice created in Stripe. |
Draft Invoice step
At the “Draft Invoice” step, Stripe creates a draft invoice based on the information entered in the Data Item.
The setup is the same as in Sending Invoices with Stripe.
Finalize Invoice Draft step
The “Finalize Invoice Draft” step changes the created invoice from draft status to final status, and Stripe generates a payment page for the finalized invoice.
The setup is the same as in Sending Invoices with Stripe.
The “Send Invoice” step
The “Send Invoice” step instructs Stripe to send the invoice to the customer’s registered address. (In the Stripe test environment, no emailing is performed.)
Item Name | Required | Description |
C1: Authorization Setting in which API Secret Key is set * | ✓ | Specify the HTTP authentication settings used to connect to Stripe by name. (See Stripe and Questetra Integration Settings) |
C2: Finalized Invoice ID * | ✓ | Specify the data item “Invoice ID”. |
C3: Not reuse the customer’s card details for future invoices | – | Turn off. |
C4: Email the receipt to the customer when the payment completed | – | Turn off. |
The invoice email will contain a link to the Stripe payment page. The recipient of the email (the customer) is taken to the payment page from the link to make the payment.
The payment method set by the Stripe account administrator will be offered to the customer. However, if the option “C3: Not reuse the customer’s card details for future invoices” is turned off in the [Stripe: Send Invoice] settings, then only credit card payments will be accepted.
When a payment is made by credit card, Stripe registers the card information associating with the customer information. It will also be registered as the default payment method if no other payment methods are registered. The payment method will be saved with the credentials if it was set to be reused during registration.
- For billing a regular (one-time) payment, set the “C3: Not reuse the customer’s card details for future invoices” option to On.
- Set this option to Off to bills for the first time of a subscription if you want to bill automatically using [Stripe: Charge by Invoice] for subsequent payments.
Charge by Invoice step
Item Name | Required | Description |
C1: Authorization Setting in which API Secret Key is set * | ✓ | Specify the HTTP authentication settings used to connect to Stripe by name. (See Stripe and Questetra Integration Settings) |
C2: Finalized Invoice ID * | ✓ | Specify the data item “Invoice ID”. |
C3: Email the receipt to the customer when the charge completed | – | Turn on. |
Billing is done directly to the customer’s payment method (registered credit card) registered with Stripe. The billing is done without prior notification or approval from the customer, so it is assumed that a separate billing agreement has been obtained. (“Getting permission to save a payment method” Stripe Documentation)
Stripe will attempt to charge the default payment method. If the default payment method fails, Stripe will attempt to charge all other registered payment methods until it succeeds. The payment methods that are saved with authentication information have a higher probability of billing success.
If billing fails for all registered payment methods, the process ends in error.
Operation Check
The App should be tested after it has been released. The scenario is to bill for subscription payments, with the first billing done via [Stripe: Send Invoice], and subsequent billings automatically billed via [Stripe: Charge by Invoice].
Start a new process and enter the required fields, referring to Sending Invoices with Stripe. For the added Billing Method Data Item, select Email Invoice initially. Once you have completed the Enter step, it goes to the Email Invoice step, where Stripe will send the customer (you)an email.
From the invoice email sent to you, go to the Stripe payment page and complete the payment using the “test card” information provided by Stripe.
(How to use test cards)
Once you have completed this far, check the operation in the Stripe dashboard.
- [Payments] tab
- [Succeeded✓] payments are added to the list
- Click to see the details
- [Customer] tab
- Open the details of the customer you have selected to bill from the list of customers
- In the Payment Method section, the test card you used has been added
- [Billing] tab → [Invoice]
- The invoices sent are added to the list of invoices
- Click to see the details
Start a new process again and run the test with the same customer, specifying the billing method item as “Charge by Invoice”. Complete the input process, wait a few moments, and check the success or failure of the invoice in the Stripe dashboard. You will see that a new successful payment has been added to the Payments tab and that the payment has been completed using the registered payment method.
- If you only have a Stripe test environment (no production environment), you can test customers who have registered with the Stripe account owner’s registered email address and name.
- Customers registered with an email address other than the Stripe account owner’s email address will not receive the email.
- Stripe test cards include “Failed Payment Cards,” “By Country,” “By Card Brand,” etc.

Appendix
By combining the auto-steps [Send Invoice] and [Charge by Invoice] it is possible to create a recurring billing structure for subscription contracts. For example, the billing schedule can be managed by Google Calendar, and the billing process can be started automatically using the [Start: Google Calendar: Event Started] step. (This is an advanced setup and is not explained here.)