Episode 556: Stripe API for End-of-Month Billing Flow

Monday, October 9, 2017

Operation: Monthly Credit Card Charging

Great labor-saving has done on the billing operation at the end of the month!

In the new Workflow application, "credit card charging" is automatically carried out as the department manager approves "Billing amount of this month" registered by the sales representative. There is no necessary for the Accounting side to do work such as "printing / signing / mailing of invoices". Of course, you don't need the work of "bank payment confirmation", either. Stripe, bravo! API economy, bravo! Questetra, bravo!
Incidentally, it gains favorable reputation also among customers.

They say it is good with that the expense details can be confirmed in "notification email", not to mention that the actual work such as "approval on invoice" and "procedure of bank transfer" has gone away. (Paperless)

(I wish "bank APIs" to be opened soon, as well...)

Challenge: Who is not charged?

However, it is hard to confirm "if I charged all the customers or not" at present condition.

Certainly, it is simply to Start (reuse start) the Workflow manually from "1r". However, relying on "manual" for its start, it would be hard to realize, for example, "to charge all the customers who billed in the previous month without oversight".

When the number of billing increases, "billing mistake" may incur, one day...

[Credit Card Charging - Recursive call]



Solution: Automatically Start the Next Billing

For the cases where "monthly processing" such as "billing to a regular customer" occurs, you"d better incorporate a mechanism that automatically Starts "next billing" so that "oversight and omission" can be prevented. (recursive call)

Specifically, by arranging
  • A)[Throwing Message Intermediated Event] at the most downstream
  • B)[Message Start Event] at the most upstream
"processing of the next time" will be started when processing of an Issue reaches to the most downstream.

With this setting, for example, suppose if your company carries out charging at the end of months, a large number of "1 rr. Charging amount entry" will appear in the [Offered] of Sales team at the beginning of the month. It is very easy to realize that multiple workers cooperate to handle "next billing" without any oversight. (In addition, it will become more convenient with a deadline setting of "30 days After this Task created".)

Discussion: Data not to be Carried Over to Next Time

Certainly, regarding "customer information" in among data of an Issue, it'd better be copied totally.

That is, data such as "Name" "Email" "Stripe CustomerID" should be reused as it is. (As a matter of course, cases such as "email address has been changed", you must correspond flexibly.)

However, it is controversial regarding "billing information".

That is, if it is started with the value of the last time has been input into the Data Item of "Billing amount", the person in charge may misunderstand it as "he / she entered". For "a business type in which the monthly billing amount fluctuates greatly", it may be better not to take over data concerning "billing amount".

[Credit Card Charging - Reservation:"1rr. Charging amount entry" screen]

[Data Items list]


[Free download]
<Similar Models>
<<Related Articles>>


[Japanese Entry (ε’Œζ–‡θ¨˜δΊ‹)]