#stripe

/

      • orlondow
        RahulAxcel: I just did, if you want to charge $4.60, you pass 460 to the amount in the API
      • if you want to charge $4, you'd pass 400
      • the value is always in cents
      • RahulAxcel
        whats the max value?
      • amout
      • amount
      • orlondow
        (unless it's a zero decimal currency but let's not go too far)
      • RahulAxcel
        suppose I want to change $333 then is 33300?
      • orlondow
        RahulAxcel: you're unlikely to reach the max value
      • and yes that's right
      • RahulAxcel
        499 means user is going to pay $4.99
      • orlondow
        yes
      • RahulAxcel
        again I have query for apple using stripe
      • apple pay
      • how to check Apple Pay on device in india
      • embero
        Is there any option to validate a credit card before charging it?
      • Or should we charge 1 cent to validate a CC when Stripe doesn't update or flags credit cards when they expire or becomes un-usable.
      • RahulAxcel
        ?
      • irctc603 has quit
      • embero
        We're developing software for the hotel business. So we can't charge a customer when he / she has booked a reservation. We can only charge when the customer has checked out.
      • orlondow
        RahulAxcel: I don't think Apple Pay is available in India yet
      • embero: if you're using tokens the card will be validated when added to a customer object
      • RahulAxcel
        any else option to beta test?
      • orlondow
        RahulAxcel: I meant I don't think Apple released it yet
      • embero
        Sure, we're already doing this @orlondow. But we have to check multiple times if a credit card is valid. (1) when creating a reservation and (2) change of reservation (3) before checkout
      • On iOS side we're adding credit cards via Stripe's API / ephemeralKey (Backend) so when the are added they'll be validated.
      • orlondow
        embero: there is no way to do that outside of the customer creation
      • embero
        But in the hotel business a charge is made after the stay is over and not upfront.
      • gotcha @orlondow
      • orlondow
        but knowing the card is still valid would not really help you as it would not protect against declines or insufficient funds
      • embero
        Good point @orlondow.
      • orlondow
        embero: you could use auth and capture but this would only work for trips less than 7 days
      • embero
        So in the worst case a customers books something in a hotel and afterwards he can't pay it / cc is declined.
      • reservations are usually booked more than 7 days ahead, more like weeks / months.
      • There is no way to capture the charge for more than 7 days?
      • orlondow
        embero: yeah it's more if you want to check when the check in starts for example
      • embero
        got it. is it possible to alter / change the capture?
      • when a guest books some additional services the final amount will raise, it's a dynamic price structure.
      • orlondow
        embero: no you'd need a new charge to raise the amount
      • since the funds were "blocked" on the auth creation
      • ftknox joined the channel
      • ashd joined the channel
      • JDHawke has quit
      • embero
        thx for the info
      • agitator joined the channel
      • ashd joined the channel
      • RahulAxcel has quit
      • Abot9 joined the channel
      • kanja joined the channel
      • Abot9 has quit
      • AK_ has quit
      • zxed joined the channel
      • zxed
        Hi again - I am back to ask about Idempotency for use with a transaction - "Keys for idempotent requests can only be used with the same parameters they were first used with. Try using a key other than ....." is thrown even though its a new transaction (but a key that was used before)
      • _AK_ joined the channel
      • ywain
        Hi zxed. if it's a new transaction, then you need to use a different key
      • zxed
        i.e. to guarantee that someone is paid just once for a transfer, we use lets say, user id.. 5 - transaction id 1; works., userid 5 transaction id 2., doesnt.
      • how would someone prevent "double clicks" for connect payouts against transactions?
      • Squared joined the channel
      • ywain
        zxed: you could use idempotency keys for this, but why would the parameters be different if it's the same transaction?
      • _AK_ has quit
      • AK_ joined the channel
      • zxed
        its a new transaction - same user
      • Squared
        Hello all. Is there any way to move a credit card to a different customer? A customer record was tied to an incorrect currency, and I would like to recreate the customer object without having to ask the user to re-enter their card details. Is this possible?
      • ywain
        Hi Squared. Unfortunately, no, that's not possible
      • AK_ has quit
      • zxed
        i..e var transferService = new StripeTransferService(ConfigurationManager.AppSettings["apiStripeSecret"]); var tr = transferService.Create(new StripeTransferCreateOptions() { Amount = .., Destination = user.connect.id, Currency = "usd", TransferGroup = transfergroupid, }, new StripeRequestOptions() { IdempotencyKey = userid });
      • Squared
        And per the docs, and just to confirm, it is not possible to change a users currency once they are created and charged in a specific currency, correct?
      • ywain
        zxed: but if it's a double click, the parameters shouldn't change, right? same amount etc.
      • Squared: correct, though the restriction only applies to invoices/subscriptions, not one-off charges
      • zxed
        k., lets remove idempotency keys first.,
      • stripe187 joined the channel
      • double click - 2 new transactions are created., user is paid twice
      • Squared
        I see, yeah, I'm trying to create a subscription object. Well, dang.
      • ywain
        Squared: yeah, sorry :( It's a known limitation that we'd love to get rid of in the future
      • zxed
        im using TransferGroup = transfergroupid,
      • so the group id, amount and userid will be same
      • they will get paid twice on a double click
      • was told that idempotency should resolve this
      • so
      • Squared
        Dont be sorry, you guys are doing amazing work. Best platform on the market. The multiple currency options are limited, but nothing to apologize for. My bug that made the issue, regardless. Thank you!
      • Markus_ joined the channel
      • zxed
        so adding idempotency to transfergroup - would solve thsi
      • Markus_ has quit
      • stripe187
        Hey everyone. Is it possible for a platform to payout to it's connected accounts directly to their bank account like SEPA but for payouts?
      • zxed
        so: yesterday, transfergroup 1, idempotency 1 - worked
      • today, transfergroup 2, idempotency 1 - doesnt work.
      • ywain
        zxed: ah, right, you might want to tie the transfer_group with the idempotency key then
      • zxed
        as in idempotency = transfergroup + idempotenceykey ?
      • ywain
        stripe187: yep. In Europe, payouts can only be done to bank accounts actually
      • zxed: wait, I'm not sure I follow. You're creating transfers, not payouts (i.e. moving funds from your platform's Stripe account to the seller's Stripe account, not from the seller's Stripe account to their bank account)
      • zxed
        yes
      • ywain
        zxed: why would this be done as a result of a seller's action? don't you know the seller's split of the funds when you create the charge?
      • agitator joined the channel
      • zxed
        Charge a customer 1 month ago - customer uses contractor today
      • the seller is paid when the service is complete.
      • ywain
        zxed: ok, but why are the `transfer_group`s different then? shouldn't they have the same value as the one you used when you charged the customer?
      • stripe187
        Thanks ywain. Is there also a way to payout or pay a customer(not a tripe user) manually right to there bank account?
      • zxed
        customer a - group a; customer b - group b; customer c; group c; seller ends up getting assignedment for customer A and C
      • dionysus69 has quit
      • seller completes A; group A used; seller completes B; group B used
      • (they are the same when we charged the customer)
      • when we did group A; idempotency 1 (lets say thats the id for seller) - it worked
      • when we did group B (for the second customer payout) ; idempotency 1 - it threw the error
      • looks like it expect idempotency to be unique regardless of transfer group.
      • ywain
        zxed: ah, ok. sorry for all the questions -- I wanted to know if there was a simpler way of doing what you're after but it doesn't sound like it as you have relatively complex payment flows. Indeed, idempotency keys expect _all_ parameters to be the same -- they're actually blind to what each parameter "means"
      • zxed
        :) yup. when I showed up here last, thats what I had in question - support said "use it in a transaction" but when you look at the c# lib - its not of the transfer class....
      • so my q was to verify code, and ask why it wasnt in transfer -
      • ywain
        zxed: so in your case I think you'd have to add some safeguards on your end to prevent double transfers, e.g. keep track of transfers on your end, and only generate a new idempotency key 1 minute after the last one
      • zxed
        but now that you clarified that its across ALL - it makes sense
      • couldnt I simply use transfergroup + "_" + userid ?
      • that should be unique across all - if the goal is to pay just once per transfer per user
      • ywain
        zxed: that could work, except that if the transfer creation request fails for some reason, you'd need to generate a new key if you wanted to retry it. it's definitely an edge case -- transfers being internal to Stripe, there's no reason a request would fail provided all the parameters are valid
      • zxed
        so - insufficient funds - would result in the request to error out
      • correct?
      • ywain
        zxed: yep
      • zxed: so you'd need to either generate a new key, or wait 24 hours (idempotency keys expire after 24 hours)
      • zxed
        got it
      • 24 hours is good enough if the failure is due to insufficient funds.
      • thanks - Ill give it a go
      • ywain
        zxed: maybe do something like transfergroup_userid_attemptnumber. or just wait 24 hours if that's acceptable for you :)
      • sbailliez has quit
      • zxed
        attemptnumber will auto inc on double click
      • :)
      • other option would be to use hour - but 24 hours is acceptable
      • ywain
        zxed: all good then!
      • zxed
        thanks!
      • zxed has quit
      • ywain
        stripe187: sorry, totally missed your question! You can't send funds to customers other than refunding past charges. If you want to accept payments on their behalf, you'd need to use Connect and create a Stripe account for them. If you use Connect with custom accounts, they'd only ever interact with you and not with Stripe directly
      • stripe187: if your users can be both buyers and sellers, then you'd need to create two entities for each of them: a customer object (for when they act as a buyer) and an account (for when they act as a seller)
      • _AK_ joined the channel
      • sbailliez joined the channel
      • SK_ joined the channel
      • SK_ is now known as Guest73940
      • Guest73940
        Hello all, I want a urgent help.... I am creating charge via desitnation method but the fund is not giving to avaialbe balance its going to pending balance stripe show a date which stiripe will transfer the fund from pendign to available?
      • But I want this fund immediate in user availble blance
      • Anyone have idea about his?
      • JamesMcDuffy joined the channel
      • _AK_ has quit
      • JamesMcDuffy
        Hello! Quick question, is there a way to test the ACH micro-deposits using the test key?
      • danielg__ joined the channel
      • ywain
        Hi Guest73940. In live mode, there is always a delay before funds are available. In test mode, you can by pass the delay using the 4000000000000077 test number: https://stripe.com/docs/testing#cards-responses
      • _AK_ joined the channel
      • JamesMcDuffy
        Ah great @ywain; exactly what I was trying to find. Thank you!!
      • newman joined the channel
      • Guest73940
        @ywain: Actually my clients are charged by destination method and same time user will call the payout api..but users are receing the insufficnet error because the funds are in pending ?
      • danielglh
        Hi team, I need some help from you guys. I've submitted a ticket but still no luck.
      • Guest73940
        @ywain : there is no way for to transfer the immediate
      • ywain
        Guest73940: not in live mode, no.
      • Hi danielglh. This IRC channel is mostly for programming issues, but feel free to ask