#stripe

/

      • tr12
        the point of making a token is that you don't want to send unredacted card data to your server
      • so sending card data to your server to make a token there mostly defeats the point
      • dee
        tr12: Thanks a bunch. I'll look into that. Totally makes sense. My form would only submit the fields that have a name to the server, the fields that are nameless (provided I use stripe.js) would be used to generate the token. Then I can do whatever with the other fields.
      • mcwendy has quit
      • tr12
        yeah, that sounds correct
      • stpaulti_ has quit
      • paulleephp has quit
      • dee
        tr12: Well, thanks! Much appreciated. Have a good one.
      • tr12
        dee: cheers, you too!
      • Peder_ has quit
      • SL_ has quit
      • irctc679 has quit
      • T1m0thy joined the channel
      • irctc692 has quit
      • dee
        tr12: One more q for ya. I see there are options to capture billing address and such. What does Stripe actually store? Are these billing details just something my server would capture? Or are they sent to Stripe?
      • dpg_ joined the channel
      • stpaultim joined the channel
      • avstar joined the channel
      • avstar
        with auth and capture, can I auth $1 and then capture $2. how about auth $2 and capture $1?
      • Can I verify if a card is valid without making a charge?
      • avstar has quit
      • thebaer joined the channel
      • Freak4Dell joined the channel
      • dee has quit
      • thinkxl joined the channel
      • nemothekid joined the channel
      • flippyhead joined the channel
      • thebaer
        Hi, I'm having some trouble figuring out which webhooks I should be capturing for certain scenarios.. My app is storing the validity period for users' subscriptions, so when a user is charged for subsequent months, should I just listen for invoice.payment_succeeded to update my local value? Or is there a better event for this case?
      • flippyhead has quit
      • tictacjoe has quit
      • tr12
        thebaer: invoice.payment_succeeded, or customer.subscription.updated would both be correct
      • jakeonrails joined the channel
      • patrx__ joined the channel
      • patrx_ has quit
      • thebaer
        tr12: cool, thanks. I take it payment_succeeded would fire every time, including when the subscription is first created?
      • s3shs joined the channel
      • and not so for subscription.updated?
      • jakeonrails
        hey folks, I'm testing an integration where I have an ACH Charge, and then a Transfer to a Managed Account, where the source is the ACH Charge. When I try to do the transfer, for 7000 cents, I get an error that the Balance is too low.
      • tr12
        thebaer: correct
      • jakeonrails
        When I run Stripe::Balance.retrieve, my balance is 151992, which should cover the 7000 transfer
      • vincentcr joined the channel
      • tr12
        jakeonrails: you're making the transfer from the platform -> managed account?
      • or managed account -> bank account?
      • jakeonrails
        the managed account has a bank account attached to it, via Plaid Link
      • thebaer
        cool, I'll use the latter then. thanks
      • jakeonrails
        the situation is I have a Company, who I charge on behalf of Vendors, and then I want to pay each Vendor using the Charge to the Company as the source
      • ByteBits joined the channel
      • tr12
        jakeonrails: so, internally, stripe maintains multiple different balances, one for each source_type
      • jakeonrails
        this is the use case I'm trying to build (https://stripe.com/docs/connect/special-case-tr...)
      • ByteBits
        hi, i typically sell items on a forum and im looking to replace paypal (as it fucking sucks.) how reasonable is the buyer protection as most of my buyers REFUSE to use anything apart from paypal because paypal sides with everyone all the time
      • tr12
        jakeonrails: if you make manual transfers from the managed account's balance, this comes from a particular balance source type
      • jakeonrails: by default, this is the card type
      • jakeonrails
        tr12 i see, so the balance object I am getting from stripe says card: 0, bank_account: 151992
      • tr12
        jakeonrails: if you're mixing payment types, you'll need to transfer from the right balance
      • yeah
      • jakeonrails
        hmm
      • tr12
        ByteBits: so, to be clear, the situation here is a bit different than with paypal
      • jakeonrails
        so when I execute the charge, against a company's ACH bank account, and save the charge id, then set the transfers source to that charge id, shouldn't it be creating a new pending transaction, which waits for the charge to clear?
      • tr12^
      • tr12
        ByteBits: paypal is a payment method unto itself, so paypal is going to be the thing arbitrating disputes for transactions made with *paypal*
      • ByteBits
        Okay, so at the core of it. I still have to say "you'd have to dispute any transactions with your card issuer"
      • jakeonrails
        I wouldn't expect it to be looking at my platform's bank account - since the source is a pending transaction
      • tr12
        ByteBits: whereas stripe isn't a payment mechanism - it just lets you accept credit card, ach, bitcoin, etc. payments
      • ByteBits: for credit card in particular, there is a dispute system that lets customers dispute charges that they think are fraudulent, where the product was damaged, didn't arrive, etc.
      • ByteBits: correct
      • ByteBits
        Okay, that's not what I wanted to hear but what I expected.
      • there really doesn't seem to be a viable payment method like paypal that offers strong customer protection
      • tr12
        ByteBits: I mean, obviously you'd want to settle disagreements amicably with your customers
      • jakeonrails
        oh, so looking at the Charge response, I see a `balance_transaction` with a value like `txn_8Bdiz5wTrMzEB7`. Should I be using that as the source_transaction instead of the charge ID (`py_8BdiSI39sWwMLq`)?
      • tr12
        ie: refund them if they think something's wrong with the product
      • ByteBits
        honestly, I have no real concern of a charge back. It's more so that the customer is straight up refusing to use anything but paypal
      • I've lost a few sales now due to me not wanting to stay in the paypal ecosystem due to major issues i've been having with them
      • tr12
        ByteBits: I mean, there are absolutely tradeoffs there
      • ByteBits
        I would go to GWallet but they offer 0 payment protection within the UK for some stupid reason
      • tr12
        ByteBits: the anecdata that I've heard is that paypal conversion rates are a fair bit lower those of a processor where the customer stays on the business's webpage
      • but your results may vary
      • jakeonrails: no, the source transaction should be the py_**** id
      • ByteBits
        It's not so much the conversion rates (which are awful). It's that they've started holding my money for a period of up to 21 days which as a small business owner is really damaging my ability to trade
      • if I sell two items, that can be my entire months budget on stock gone for 21 days
      • jakeonrails
        tr12: ok. that's what I thought, and I just tried the other way and it failed
      • tr12
        ByteBits: when you talk about losing sales, though, you're talking about conversion rate, no?
      • ByteBits
        no as in, directly losing sales as customers won't trade with people who don't use paypal
      • tr12
        ByteBits: no, I get that
      • ByteBits: this is one way that people drop out of the funnel
      • ByteBits
        I mean, the conversion rate is pretty ass but I wouldn't say it's enough to cause me damage
      • tr12
        "what this isn't paypal unacceptable" -> drop out
      • ByteBits
        I've been trying to leave the paypal ecosystem for since I can remember but there just isn't a viable method as not all payment gateways are "customer is 100% right all the time"
      • I've also lost around £1k from paypal being up right buffoons and siding with a buyer who was obviously lying
      • I'm in the process of taking that through small claims
      • tr12
        oh boy
      • yeah, that's no fun
      • jakeonrails
        tr12: the specific error I'm seeing now is that my card balance is too low. Is there a way to specify which balance I would like to draw from? I thought the transfer would not require a balance in the platform account, but it appears that the charge "succeeded", so it will pull from my balance.
      • tr12
        full disclosure - issuing banks do take a similarly one-sided approach for disputes
      • ByteBits
        Yeah but I would prefer to deal with a bank than satanpal
      • tr12
        I don't have enough context to compare that vs paypal's dispute process
      • ByteBits
        oh well, thank you for answering my question. Sorry for taking your time up and I'll carry on searching for the perfect payment gateway :p
      • (stripe looks awesome btw)
      • jakeonrails
        tr12: looks like it's ridiculously simple - i just have to specify source_type
      • tr12
        ByteBits: I don't have any win/loss stats to hand (and those would vary a fair bit from business to business)
      • jakeonrails
        tr12: except it wont let me send source_type and source_transaction at the same time! :(
      • ByteBits
        it's okay man, once I find a payment provider that stops holding my money for no reason I'll be happy haha
      • tr12
        ByteBits: but it definitely won't be like 0/100 (in either direction)
      • tictacjoe joined the channel
      • the banks do the best they can, but it's hard to perfectly arbitrate a dispute for $15 worth of labour
      • jakeonrails: to back up a bit, why are you passing source_transaction?
      • jakeonrails
        because I have a Company, who is paying a Vendor on my platform. I am trying to charge the company, and then do a transfer to the vendor for the vendor's portion of the fee I charge the company
      • TheAdversary joined the channel
      • tr12
        understood, but if you create transfers like this, you're going to wind up with one transfer to the vendor's bank for every charge they accept
      • Hasimir joined the channel
      • jakeonrails
        that is ok. The volume for our vendors is low, like max 5-10 orders per month.
      • and they probably would like to see each order as a separate transaction on their bank statements
      • bhsiao joined the channel
      • tr12: essentially, we're charging a single company let's say $10,000, and then doing payouts to 100 vendors for $100 each
      • tr12
        jakeonrails: ooh
      • you're going to have problems with that
      • this is explicitly a flow of funds that stripe cannot support
      • jakeonrails
        uh oh
      • bhsiao
        is there a way to hold deposits on the platform with connect?
      • e.g. for something like airbnb
      • jakeonrails
        i see. we were told by our rep at Stripe that this is the flow we should be using
      • tr12
        jakeonrails: you can't split charges up like that - you need to have 1 charge to the company for each vendor you're paying out. you can't make 1 charge for 10K, then split this among 100 vendors
      • bhsiao
        like renter pays 1k, we hold for 30 days, then release to host
      • prgmmr has quit
      • jakeonrails
        on this page, it says that we can do multiple transfers as long as they don't exceed the source charge amount: https://stripe.com/docs/connect/special-case-tr...
      • tr12
        jakeonrails: stripe can sometimes support charge splitting in certain cases, but this seems way, way outside of those cases
      • jakeonrails
        am i misunderstanding?
      • tr12
        jakeonrails: to be clear, this is not a technical restriction
      • the technical rails to split charges are there
      • it's a question of whether it's a compliant flow of funds
      • this isn't my area of expertise, so it's possible that stripe can support the flow of funds you're describing
      • but I'd find this pretty surprising / inconsistent with how I understand how this works
      • jakeonrails
        i see - that's what that part about attributing the source transaction to the platform and not to the "Company"
      • (in that page that i linked to)
      • tr12
        jakeonrails: if you go to the top of that page, here: https://stripe.com/docs/connect/special-case-tr...
      • jakeonrails: "For compliance reasons, the vast majority of money moving around must be directly linked to an incoming charge"
      • jakeonrails
        tr12: thank you for linking that - reading now
      • tr12
        jakeonrails: you can do occasional special case transfers, but it's got to be a relatively small portion of your volume
      • bhsiao: you can do this with managed accounts, by putting them on a manual transfer schedule
      • bhsiao: you can hold funds in the balance of the managed account for up to 30 days before you're required to initiate a transfer
      • bhsiao: you can't hold money on the platform balance though
      • bhsiao: because the only way of getting it off of the platform is to use special-case transfers, and you can't use these for any significant volume of funds
      • bhsiao: (even for small volumes of funds, using the platform as a holding point is, as I understand it, not a compliant use case)
      • jakeonrails
        tr12: so I think we discussed this with our rep, and got special approval for this use case.
      • tr12
        ah, fascinating
      • colour me surprised ;)
      • grun has quit
      • bhsiao
        transfers are not tied to charges, right? so to release individual payments i would have to track them internally
      • thinkxl has quit
      • mark them 'paid,' release the right amount manually, etc.
      • T1m0thy has quit