Information on Recurring Payments / Subscriptions missing
Closed this issue · 7 comments
As SaaS business I need more information on recurring payments.
How do I enable a recurring MID and is this only available for credit card payments or can I also issue subscriptions for bank payments (e.g. via debit advice procedures)?
Hi @philippzentner Recurring MID is activated depends on Business agreement, and if the bank issued recurring MID to your business.
Recurring capability for now is limited to card transaction only (credit/debit). Not all bank/payment provider have standardized auto-debit procedure unfortunately in Indonesia.
For more detail it's better to consult with our business team at activation[at]midtrans.com
Hey @rizdaprasetya,
thanks for your reply.
I still struggle to implement the subscription/recurring payment flow.
Right now we're doing this:
-
We let the user choose to pay "comfortably" via credit card or with something else
-
Generate a Snap Token. If they chose credit card the transaction details contain credit_card.save and credit_card.secure and a unique and never publicly exposed 16-digit user_id.
-
We then use SnapJS to display the payment form
-
We're waiting for the notification webhook to confirm the payment and set the payment status in our database accordingly
-
Now I would like to make a subscription request!? Not sure how and when to turn it into a real subscription if the user chose credit card.
For the subscription-create request I need a "saved_token_id" but when I use SnapJS, I only get order_id, transaction_status and status_code.
I like that you seperated the Snap-Documentation and the API documentation but please make sure that the topic "subscription" is handled appropriately.
Our goal is:
- People who are willing to pay by credit card can do so and get a real recurring subscription.
- People who are not willing to pay by credit card get frequent reminders that their subscription is soon running out and needs to be renewed.
Hi @philippzentner
Agree that we could do better on documenting this use case, we are planning major docs revamp which planned to also include this specific section of recurring/subscription transaction.
Thanks for explaining your current flow, your flow is correct, until this:
- Now I would like to make a subscription request!? Not sure how and when to turn it into a real subscription if the user chose credit card. For the subscription-create request I need a "saved_token_id" but when I use SnapJS, I only get order_id, transaction_status and status_code.
SnapJS will not return saved_token_id
on the frontend JS callback, because it's should not be accessible from frontend (user should not be able to retrieve it). The saved_token_id
will be returned on the HTTP notification (or webhook), your notification url
(configured on Midtrans dashboard) will receive HTTP notification call, the JSON will contains saved_token_id
. So that's where you will be able to find it.
After that, you'll need to use Core API to trigger the next-transaction charge process.
The API is /charge
expalined here:
https://api-docs.midtrans.com/#charge-features
We have flow diagram, (but this diagram does not specifically explain Snap as first-transaction source, you can still refer to step after trigger backend notification from Midtrans
)
Hi @rizdaprasetya
thanks a lot! That helped me. I can then also make use of /subscription correct?
Yes /subscription
endpoint is also available on Core API. But it is recommended if you have your own schedule to charge your customer, to use the API /charge
to trigger transaction based on transaction schedule you need.
Keeping this issue open as reminder of
TODO:
- Add proper Recurring documentation for Core API
- Add proper Subscription documentation for Core API (once product team confirmed the spec is Final)
Added to future docs. Check this beta docs link if anyone interested:
https://beta-docs.midtrans.com/en/core-api/advanced-features?id=recurringone-click-transaction
Future docs will use that docs.
Issue will be closed for now.