FAQ
Where do I start?
Use Swagger-UI to get familiar with this api. If you already have the test client credentials you can call the real endpoints and it is very convenient from there. We can arrange a quick demo if needed.
When/How often should I send (POST) my customers?
We recommend sending new or updated customers once a day. It does not mean that you have to send them in one request, you can send multiple HTTP requests. Loading all the existing customers is usually needed only once. Consider using batch endpoints for larger customer collections - it is a bit harder to use (you have to check the response to see which customers persisted and which were rejected) but is a faster process.
When/How often should I fetch (GET) customers and their channels?
It depends on your needs. There are two endpoints at your disposal:
-
fetch collection of customers - If you need to update your internal database of customers with the available payment channels. This endpoint uses cursor-based-pagination to limit number of customers returned at once.
-
fetch single customer ad-hoc - If you need to know which channels/consents certain customer(s) i.e right before creating an invoice.
How to fetch changes incrementally (using cursor-based-pagination works)?
-
Fetch-collection-type endpoints return customers sorted by updated_at field (older first). This way we can make sure no updated customers are skipped.
-
First time you send GET/api/v1/people request you do not need to specify the cursor parameter. You will get a page of updated customers, along with next_cursor field.
-
next_cursor should be persisted on your side and used for the next GET request as cursor parameter.
-
You should keep sending requests until customer’s list in the response is empty. It means you have fetched all the changes.
-
From time to time (i.e once a day) you should check if there are no further changes, to keep your system updated.
When/How often should I delete (DELETE) customers?
Once you are pretty sure you will not need channels information anymore, for specific customer, it should be deleted from the CDC database.
I keep getting HTTP 429 (Too Many Requests) response for some of my requests. Why?
Your client may get throttled if you call get-customers-type endpoints with the same cursor value or without cursor at all. Throttling is not fired if cursor value changes for consecutive requests.
- First, it usually does not make sense to send same requests multiple times, hence it is an indication of possible error on the client side.
- Secondly, it can be expensive to handle such requests in our service, so we have introduced requests limit.