This document is about long-term storage of Payment Details that can be used any number of times. One example use case for this feature would be building your own subscriptions engine.
The overall flow will be something like:
- Collect customer input.
- Create a Customer object.
- Store Customer ID in your database.
- Some time in the future, retrieve Customer ID and use it to create Payments.
There are a few ways to collect customer input. The specific input you need is our standard Payment Details object.
Our Hosted Page product includes a "customer mode" feature that allows customers to input their payment details on KOMOJU, then KOMOJU will pass you a Customer ID.
This has the added advantage of supporting most mobile app payment methods. If you want to store a long-term token for PayPay, LINE Pay, or auPay, then hosted page is currently the only way.
The same "customer mode" session you'd use for method 1 above can be used with KOMOJU Fields.
See the Hosted Fields customer mode guide for how to get a Customer ID. Then see the next section on this page for how to use it.
You can "convert" a short-term Token into a long-term Customer object by simply passing the Token ID string as
payment_details when calling Customer: Create.
curl -X POST https://komoju.com/api/v1/customers \ --user sk_live_xxxxxxxxxxxxxxxx \ --data payment_details='tok_donqjgn5pzgaeepqztogwdjdu'
This also means you can use Hosted Fields Token Mode to collect a token.
Once you have a Customer ID, you'll want to use it to make payments. Currently, this is only supported on our Payment: Create endpoint.
To pay with Customer payment details, remove the
payment_details request parameter and add a
customer parameter equal to your Customer ID.
curl -X POST https://komoju.com/api/v1/payments \ --user sk_live_xxxxxxxxxxxxxxxx \ --data amount=5000 \ --data currency=JPY \ --data customer=boc2hxvmyl497eekihyrwmmgm
Updated 5 months ago