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

Email a confirmed invoice on Stripe to the customer. The customer can pay via the payment link included in the email.

Stripe: Charge by Invoice

Charges the customer based on the confirmed invoice on Stripe. If billing for the default payment method fails, bill the backup payment method (card) associated with the customer. If all billing fails, an error will be the result.

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
[Stripe: Charge by Invoice]
  • 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 NameData TypeField NameRequiredEnter Billing Information stepDescription
TitleEditableProcess Title
Client IDString-type (single line)q_customer_idEditableEnter the customer’s Stripe ID as it appears in Stripe.
Payment dateDatetime-typeq_payment_datetimeEditableEnter the payment due date.
Itemized billing statementTable-typeq_billing_statementEditableTable 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 MemoString-type (multiple lines)q_invoice_noteEditableEnter notes and other information that will appear on the invoice.
Billing MethodSelect-type (radio button)q_charge_typeEditableSpecify the billing method as either [Email invoice] or [Charge by Invoice]. (Referenced by the split condition.)
★ Data items to be added this time
Invoice IDString-type (single line)q_invoice_idOnly displayStores the retrieved ID for the draft invoice created in Stripe.
Invoice URLString-type (single line)q_invoice_urlOnly displayStores the retrieved Stripe page URL where you can view the draft invoice created in Stripe.
Data Item Settings

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 NameRequiredDescription
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 invoicesTurn off.
C4: Email the receipt to the customer when the payment completedTurn off.
[Stripe: Send Invoice] Settings

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 NameRequiredDescription
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 completedTurn on.
[Stripe: Charge by Invoice] settings

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.
Stripe Dashboard

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

    %d bloggers like this: