I'm trying to create a stripe usage record for a customer on a metered plan.
When I'm using timestamp Date.now() in my request. The error I'm receiving is
"Cannot create the usage record with this timestamp because timestamps must be before the subscription's current period end time"
This seems self-explanatory. But given the subscription's current period end time isn't for another 14 days, how can Date.now() not be before this.
await stripe.usageRecords.create(
'si_EwzQ....',
{
quantity: 2,
timestamp: Date.now(),
action: 'set'
}
)
Is this because the current subscription period is a trial? Or have I misunderstood something here?
3 Answers 3
Stripe is using a slightly different timestamp here. It's the number of seconds. You must divide it by 1000.
- So
Date.now() / 1000shall work. - However, Stripe APIs expects a whole number so
Math.ceil(Date.now() / 1000)or(Date.now() / 1000).toFixed(0)should work. (@William's comment, verified)
1 Comment
1570202647.927. To avoid this just do Math.ceil(Date.now() / 1000)Node.JS uses millisecond timescales, so you are saying the current time is 1000 times more seconds than it currently is.
Just do this first var currentTimestamp = Date.now()/1000
1 Comment
Use Math.ceil(Date.now() / 1000) instead as Stripe uses a different format (without decimals).
Comments
Explore related questions
See similar questions with these tags.