My feedback on Rapyd APIs

Hey everyone!

Love the work Rapyd is doing to make payments and e-commerce more local. It has enabled me to build PaymentKit with a fraction of the work I’d have to put into building an app of that size.

I’ll be sharing a wishlist and improvements i would like to see after working with multiple Rapyd APIs for the last 4 weeks. But before I get into that, I have to say that my experience has been amazing, I learned a lot and was able to launch my app in record time!

  • Improve API pagination
    Currently there is no way to know if a resource API has more elements available after the returned set. I suggest adding a boolean has_more property that would indicate if there is more data to fetch or if the returned set comprises the end of the list.

  • OAuth authentication flow
    I currently have to ask merchants for their access and secret key to be able to interact with their Rapyd account. It would be a lot easier for merchants to connect 3rd party apps by simply clicking a connect button and accepting the requested permissions, it would also allow them to review which apps have access and revoke permissions for apps they no longer need.

  • Creating webhooks programmatically
    To set up a new webhook, developers need to ask merchants to add a webhook via their Rapyd dashboard, something that requires technical skills to understand and could be ignored in the onboarding process. An API endpoint for managing webhooks would be very helpful in this case.

  • Unify Checkout Toolkit scripts
    Having to use a different script for production/sandbox environments can be tricky, especially in SPAs. I would prefer to use a parameter to specify whether the credentials are for a production account or not when instantiating RapydCheckoutToolkit.

  • Checkout Toolkit reference
    While the current guide is quite comprehensive, a complete reference with all the possible methods and events would be very helpful, since the guide for instance doesn’t talk about the onCheckoutPaymentFailure event which is needed to handle payment failures.

These features/issues didn’t keep me from building my app but they would be really nice to have. The developer experience was great overall, huge thank you to the whole team behind the API!

Happy to chat more about this or anything else if you want. Cheers!


Thanks for the feedback. I will respond to each of your points separately.

API pagination

  • ‘List Countries’ and ‘List Currencies’ provide the entire list all at once.

  • ‘Get Daily Rate’ only produces one item.

  • The various ‘List’ and ‘Get Location’ methods all produce one page at a time - you can get successive pages by setting ‘starting_after’ to be the ID of the location at the end of the previous page. Your suggestion is a good one - I will pass it on to the product managers.

The list of subscription items inside a subscription entry uses the has_more feature. When there are more than 3 items, you get a URL where you can download the entire list.