#josula_api
1 messages · Page 1 of 1 (latest)
👋 Welcome to your new thread!
⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
🔗 This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1509521763573432431
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
hey there, if you want all invoices for this customer to have the same IBAN for bank transfers, then it sounds like it would make sense for you to have one customer object for the company overall
you could then add each employee's email address to the customer object's email recipients: https://support.stripe.com/questions/can-i-specify-additional-recipients-or-add-cc-email-addresses-to-billing-emails
Ok i tried this
but then this happens:
the customers "overwrite" each other?
plus: The Stripe API doesn’t support adding recipients to Billing emails. Similarly, viewing or retrieving these through the API or Stripe Sigma is unsupported at this time.
so its useless imo
also the addresses and names are different on each order
Its crazy that stripe has no solution for this
yeah additional email recipients are a dashboard-only feature
how do you mean they "overwrite" each other?
or that I can at least add N addresses to a customer
what happens if customer A orders to address X and customer B orders to address Y?
with different billing and shipping addresses
how would that work if they order at the same time with overlapping invoice finalisation time frames?
customers only have one billing and shipping address in stripe
I mean i could of course overwrite the customer every time I make an api call to stripe but thats set up to fail at some point
yeah if you need to support multiple billing and shipping addresses, and those are unique to each employee, then I can see why using one customer isn't really feasible for your use case
in that case multiple customers would be necessary, like you suggested, but as you mentioned, this will result in different IBANs for each invoice
I don't think we have a neat solution for this exact scenario I'm afraid
mhmm ok. Can I just lock the IBAN on account level to One iban in general?
I mean every B2B business has this requirement that doesnt sell SaaS subscriptions. I dont quite understand how this is not a huge issue for your customers
not by default anyway, but let me take a look internally to see if there's any beta feature or manual action we can take to support this
this would be highly appreciated
its one of our biggest pain points right now in our team
totally understand, but I'm afraid there's no mechanism in our system to support sharing VBANs across customers
I can confirm that the '1 customer = 1 VBAN' convention is core to our bank transfers product (it's necessary for reconciliation)
sorry I couldn't suggest a solution to meet both of your requirements! I'm happy to share the feedback and feature request internally
ok
Is there a way to "freeze" the customer for an invoice? e.g. create a draft invoice and freeze the current customer snapshot for that invoice?
Hey! Taking over for my colleague. What you mean exactly by "freeze" ?
Is there a way to make "transactional Api calls" e.g. i want to update a customer and then finalise an invoice. I dont want to run into raceconditions. For example if i upadte the customer and before i finalise the invoice some other call updates the customer again in a different way (for whatever reason) i would finalise an invoice with wrong customer data
I am talking about transactianoal api calls in stripe basically
No you can't do this with Stripe APIs, you need to make this transactional aspect in your integration (implement a mutex for example...)
do you have an example for something like that?
I am not quite sure how we could ensure that sort of integrity on the client
No sorry, you need to design something from scratch I think (create a mutex on a customer in order to make sure that only one action is done on it, others should wait)
what is crazy though that if I OPEN a quote and then update the customer, the quote updates as well
how does that make any sense?
even on the quote PDF
it changes
e.g. the email address
mhmm
isnt it "finalised" (=open) for a good reason?
what is crazy though that if I OPEN a quote and then update the customer, the quote updates as well
Can you provide some concrete examples ?
yes
company A has worker B who requests a quote. we send him the quote and wait for 2 weeks for their response
in the meantime, worker C from the same company A (=same stripe customer) sends us another request and we issue another quote for them.
If worker B now donloads their Quote from stripe he will see the email address from worker C on his quote because the customer was updated in the meantime.
And no, we cannot use different stripe customers for different workers because the IBAN would then change for the same company depending on which of their workers orders
its a mind fuck
Sorry but I already read this from your thread (first messages)
yes so what example do you need then?
what is crazy though that if I OPEN a quote and then update the customer, the quote updates as well
I meant this
Stripe object Ids, request Ids ...
qt_1Tc2y0QWc5EeQut9dG1f1130
qt_1Tc2usQWc5EeQut9x4szBIjG
And then the customer:
cus_SK0JFHO7kODraJ
If I e.g. change the email of the customer now, the quotes will have that updated email in the PDF..
Can you share one example please.
- First action => request Id
- Second action => object Id
- what happens and what was expected instead
4....
ok
req_Z0XPofF2Y0s1km => finalised an quote with say worker A
2. req_6RDxEDR9cX927g => created a new quote with say worker B (different email address and address)
3. Downloaded the quote from 1. (so worker A). It now has the email from 2. (worker B) on it. because the customer was updated in between 1 and 2
Quote IDs would be:
qt_1Tc2y0QWc5EeQut9dG1f1130 (for 1)
qt_1Tc3GzQWc5EeQut98IHqA6KX (for 2)
I would have expected for the quote from 1 once I finalised it (so its in state "open") to not be influenced by changes in the customer object (happening at 2).
but they are clearly connected in real time
which is wild
I would have expected that finalisng a quote takes a snapshot of the customer at the time, since its "finalised" then
I would have expected for the quote from 1 once I finalised it (so its in state "open") to not be influenced by changes in the customer object (happening at 2).
I see what you mean. No actually this is not the case because you are using the same Customer here. You need to not create any additional quotes for the customer unless previous quote is accepted.
yeah but that is not how a business works...
we send out so many quotes every day to the same customer. sometimes up to 5 per customer per day for different requets
and they are all not related but different items, different projects etc
Can you think of any out of the box solution we could implement? This is really a deal breaker for us
Why not creating separate customers for each new demand and once the quote is accepted, you create an invoice with the accepted price and details for the target customer ?
because the iban would change every time...
Like you keep using 1 single customer for invoicing and share its VBAN, and for the quotes you use different temporarly stripe customers...
every customer has a different iban in stripe. yet they are all from the same company
ok that sounds like an interesting idea
but what about invoices? do they also change once finalised?
I mean we would have the same problem, would we not, because on the invoice there would be a different name of the customer and even a different email address depending on which customer in the company would have made the order?
Plus the addresses would change for every invoice because our customers order to so many different locations. Think about a large company like Apple ordering hardware. They have hundreds of facilities they could order anywhere.
No, in this case as you need 1 single VBAN, then you need to have one single customer with one email
yeah but thats the problem. invoices can again go to many different people in the same org
its not guaranteed that they have a single company invoice email like invoice@mycompany.de
You said you have 1 company with multiple workers, so all invoices will be addressed for one single company (with one email)
its often not the case
does an invoice also take the address from the customer at RUNTIME? or is this "baked" into the invoice once finalised?
i cannot recall right now
i am talking baout shipping and billing address right now
not email
because we could work around email tbh. just not show it on the invoice. but we cannot NOT show billing and shipping address
It will be taken from the Customer object
yes but does it tak e snapshot? Or does it take the address point in time once we FINALISE the invoice once?
If the org wants one single VBAN then there should be one single customer that will gets all the invoices
You can't get the money from an entity(org) and invoice to another entity (worker)
So you need to have one single customer for the org
and invoice to every workers
That's the only possible flow.
You can't get the money from an entity(org) and invoice to another entity (worker)
This is the key thing here... you can't bypass it, even in accountant point of view
Yes that is why we are planning on using one Stripe customer account but to use it more as a pass-through customer so it's constantly updated. One way would have been to always sync the current quoting data to the stripe customer then finalize the quote and then be done with it. The problem is that the data can change for the customer in the future and that is also reflected on quotes and invoices. There are multiple parallel problems right now.
customer so it's constantly updated
No you can't update it per workers...
I am not talking about your approach
the approach does not work
as you said, I cannot take money from one customer to pay for another one
so it has to go through ONE customer
and then we are back at the beginning
you can't have one VBAN for multiple customers too.
Yes
but that seems ridicolous despite that its not working reliably as discussed above
I don't see another option honestly
yeah me neither. will look into adyen and mollie then
Also as you are using bank transfer, you may want to do manual reconciliation:
https://docs.stripe.com/invoicing/bank-transfer#manual-reconciliation
You mean we would route it through our actual bank account and then just mark it as paid in Stripe, or what?
That's antoher path, you reconcilaite bank transfer manually from your bank account and then you mark the Stripe invoice paid out of band
https://support.stripe.com/questions/marking-an-invoice-paid-out-of-band
seems too complicated tbh
Yes agree
but what I meant is to use the shared ONE customer, disbale autoamtic reconciliation given you'll get multiple bank tranfers. Then you reconciliate invoice by invoice manually.
It's not another option, just a way to give you more flexibility once you designed your integration (one or multiple customers...)
Sorry, can you just verify something for me? For quotes, we know that they rely on the real-time customer object. Is it the same for invoices? So when I finalize an invoice and send it out to a customer and then change the customer email address, for example, would the invoice that I sent out also reflect this change in the customer object?
cant do it manually. sorry, its not going to work
Hi taking over as os3m37 had to step away
No the updates on the customer would apply to future invoices
Once an invoice has been finalized and sent out, it's details have been frozen
Actually wait that's true of most fields but not email
So the new email will be reflected on the invoice pdf and hosted invoice page
Can I turn off emails to be shown on invoice pdf?
what about the customers addresses? are they frozen?
anything else that is "dynamic" on invoices except the email?
There's stuff like branding, status, credit notes
yeah ok thats not important
But not any other customer detail fields
ok
stripe could own a huge part of the b2b invoicing market if it made the software more B2B like not just direct purchase etc.. just saying .its such a bottleneck
Yeah there's some b2b billing betas: https://docs.stripe.com/billing/subscriptions/sales-led-billing
Not sure if that's the kind of thing you're looking for
We don't know much about betas in here though