Start a new topic

How do I return from custom endpoint?

I am processing a stripe payment in a custom endpoint which means I have to create a REST request, I am doing something like this:

req.request({uri: '' + + '/subscription',

method: 'POST',

form: {

plan: request.body.plan,

prorate: true



Authorization:"Bearer " + secret


function(error, res, body){

if (error){

response.body = {error: error.message};


} else {


.update({"username": request.username},

{ $set: {

"plan": {id:request.body.plan},

"stripeCustomer": JSON.parse(body)







The problem is that it times out when I call it on the client. I can fix this by adding a response.complete(200) but then I will lose any returned values from the stripe API. How do I make the endpoint wait for the stripe api call to wait before I can return?

Can you run some timing tests to Stripe outside of Kinvey to determine the typical amount of time for a request to be processed?
@caroline you are right but I wish there was an easier way to do this. I guess one work around is to add some sort of loop in my code to keep hitting kinvey until I get a success. something like

call kinvey to process payment

kinvey returns right away but keeps running the stripe call

my code checks once a second for 5 seconds

is stripe call successful, if yes proceed

if no, try again until 5 seconds elapsed, then assume failure

this is pretty bad and will probably end up adding more strain on your servers than the 2-second limit. not to mention all the extra code i have to write just to make it work and it won't be perfect.

What is the reasoning behind the 2 second limit and why 2 seconds? Do you have other customers integrating with stripe that are having this issues?

Any other suggestions?
The problem is that there are a couple time consuming processes going on here. If the Stripe API is taking more than 2 seconds, it simply won't work.

Otherwise, you could separate out the processes, have the first request you're making return something that your collectionAccess uses to then update.
Login or Signup to post a comment