Hey guys! How are you tonight? I have a question. My company is registered and based in Slovenia (not currently supported). But I can open a bank account in Austria. Is that OK with Stripe, that I have my business in Slovenia but a bank account in Austria for Stripe support?
markin
Guest27015: your business would have to be legally operating out of Austria
Guest27015
:\
Guest27015 has quit
brockhaywood has quit
brockhaywood joined the channel
another_greg joined the channel
vmayoral joined the channel
vmayoral has quit
poolet08 joined the channel
_Eric_
markin, or anyone else, know why I'm getting this error when I'm using Stripe Connect? It happens after a person clicks the 'register with stripe' button, gets sent over to Stripe Connect (which works), but the error happens after being sent back to my site. http://pastebin.com/Y6tPW2qm
cannatown joined the channel
cannatown
hello?
_Eric_
Hello cannatown
cannatown
how are you
is this an online chatroom for programmers?
_Eric_
Yep.
markin
cannatown: this is an online chatroom for stripe.com
cannatown
ok awesome phew
this has made my life 100 times easier
markin
_Eric_: so its an authorization error which tends to mean your api key isn't right
cannatown
I was wondering if you guys could help me with this:
_Eric_
markin, yes but I've triple-checked the api key and it's correct.
cannatown
I want to make a stripe authorisation only transaction, and if it is successful I want to issue a legitimate transaction. If the authorisation transaction wasnt successful, I want to return an error saying "insufficient funds"
markin
_Eric_: it could be some bug with the plugin you're using though
cannatown
i will send you guys a pastebin as an example
markin
cannatown: how do you know the authorization wasn't successful because of insufficient funds. Or why even do an authorization if you're going to do the actual charge immediately after?
thomasreggi joined the channel
cannatown
I'm not sure how i know if the authorisation was declined to due to insufficient funds, which is why i need help :)
and also i need to do the authorisation due to the way my system is structured.
I've asked people on StackOverflow, and ive also contacted stripe but no one has been able to help me, which is why i am here
markin
cannatown: its impossible to know why the authorization declined
Luke has quit
cannatown: all you can tell them is that it declined
cannatown
oh ok, well in that situation i guess you can just do that
markin
it could decline because the expiration was wrong, the cvc was wrong, the zip code, etc
_Eric_
markin, thanks. The OAuth within WordPress seems to be fidgety. Granted, this plugin was taken down a while ago and I happen to found the repository on GitHub.
cannatown
to fix those things you can use validation on the client-side to make sure their credit card details were correct
markin
cannatown: how can you validate it client side? just because the expiration is in the future doesn't mean its valid
drale2k joined the channel
cannatown
but do you know how i can actually a real transaction occur if the authorisation transaction was successful?
markin
cannatown: so using stripe you would create a charge where capture=false, and then you'd call the capture charge api
so if im making 2 transactions, can i make them both automatic?
_Eric_
Here's a proposal workaround (typing)...
cannatown, exactly.
So, what you could do is have the high dollar amount and if it returns failure, you could do a $1 amount. If the $1 is successful, you could return an 'Insufficient Fuinds'
cannatown
You know how when you go to purchase something using stripe, it has a form? If im using 2 transactions will i need to make 2 forms? or can i make it so that the user only enters one form (the authorisation transaction form), and if that was successful it makes an automatic legitimate transaction?
sorry, what is a 'high dollar amount'? im unfamiliar with all of this
markin
cannatown: the authorization transaction is the same transaction as the legitimate one
_Eric_
+2 on markin
markin
So you ask Visa does this card have $40, they say yes, you respond back saying "okay charge that $40"
cannatown
ok
I will explain what I'm doing:
_Eric_
So lets say you have a $100 product. You could charge $100 to see if it's successful, if it's declined you then could charge $3 (whatever the minimum is) to see if it's successful. If the $3 is successful but the $100 is not, then it would display a, 'Insufficient Funds'
cannatown
i see
markin
_Eric_: yeah, but still not always the case, the risk profile for a $100 txn is different than a $.50
_Eric_
markin, definitely.
cannatown
whats a txn?
markin
txn short for transaction
cannatown
oh ok thanks
i have a couple of questions:
You know where you said "you could charge $100 to see if it's successful"? Is that an authorisation transaction?
markin
in his case it wasn't. doing an authorization, voiding it and creating a new charge seconds later is stupid
authorizations are really for cases where there is a decent amount of time between when someone orders something and when you actually want to collect funds for it
flippyhead joined the channel
cannatown
_Eric_: thanks, ive seen that before but im still really confused for the whole process, it doesnt really explain much
markin
cannatown: the authorization is the same charge as the actual charge
_Eric_
cannatown, how about you explain your business?
arimus joined the channel
flippyhead has quit
arimus
I could use an assist on determining the source of my error trying to capture funds. Basically, we're 1) connecting a stripe account using the connect flow 2) using the token sent to our
+callback URI to fetch the account details and storing 3) when user tries to pay (donate), using the pk we stored 4) taking the tok returned from stripe to then do the charge/capture.
markin
arimus: whats the error?
cannatown
markin: i know it sounds really unneccessary, but i need it due to the way my payment system is structured
markin
cannatown: doing a completely seperate authorization and charge will likely lead to a higher decline rate
arimus
this last step, we create a stripe object with our sk (platform), call stripe.charges.create (node.js) with token as source, a destination of the stripe account id previously stored, an app fee, amount, etc. but this just results in an error with message "There is no token with ID XXXXXXX"
cannatown
by decline rate do you mean conversion rate for sales?
_Eric_
cannatown, decline rate means - the percentage rate of credit card decline
markin
arimus: so the publishable key you use needs to be the pk you get from connect and you also have to pass their access_token when you make the charge
cannatown
ok thanks. why do credit cards get declined?
markin
cannatown: by doing two separate charges, an authorization and a capture that doesn't reference the authorization, its two seperate charges happening for the same amount in close time periods, so to a bank that can look like possible fraud
cannatown
i see
markin
cannatown: tons of reasons, the bank thinks its fraudulent, not a typical purchase for the customer, incorrect verification data (billing address, zip code, cvc, expiration, etc)
matin joined the channel
another_greg has quit
cannatown
ok well what is the best way to do this. basically i need to check if the user has sufficient funds for a product. if they do, it will issue a transaction
markin
cannatown: the proper/best way is to just do the transaction
arimus
markin: using the Charging through the Platform section on https://stripe.com/docs/connect/payments-fees as a reference. For CONNECTED_STRIPE_ACCOUNT_ID, I'm passing in the stripe account id acct_15kptm...
cannatown
i know, but i have to actually check if the user has sufficient funds due to my system
markin
cannatown: there is no way to check that
cannatown
so basically, its pretty much impossible to do what im saying
markin
arimus: so you're passing that header, and you're sure you're using the publishable key for acct_15kptm?
cannatown: you can do an authorization, void the authorization and do a second transaction, but there is now no guarantee that second transaction will work
cannatown
markin: is there any way to do this at all? is there any similar methods i could use to achieve similar results?
ok
markin
cannatown: you can create an authorization, see if it was successful and capture that same authrorization, but in reality that is just creating a single charge
cannatown: I don't understand why you cannot just make a charge and not deal with the authorization
cannatown
why do you have to void the authorisation? cant you just let it go through
markin
cannatown: if you don't void the authorization, now your customer has two charges on their bill
you could capture it, but you said you can't do that
cannatown
so even though the authorisation isnt actually buying anything, you still have to pay for the processing fees etc?
markin
you only pay the processing fee for captured charges
cannatown
ok, then why is it a concern if the user receives a bill with an authorisation transaction?
because it amounts to nothing
markin
because the authorization will affect their available balance
an authorization is really "put a hold on $40 because I might want to collect it in the next 7 days"
cannatown
ok thanks
well how about this:
(forgive me if i made some mistakes, im slightly confused) make the full authorisation transaction without voiding it, and make a legitimate payment after
aracodex123 joined the channel
markin
cannatown: from what it sounds like, your payment system won't allow that
how soon after are you making the legitimate payment?
cannatown
why ?
pretty much instantly
straight after
markin
then why doesn't your system support making the charge directly?
if your system doesn't support making the charge directly, I don't see how it would support capturing an authorization
cannatown
the authorisation payment is checking to see if the user has an amount in their bank (e.g $100), and the legitimate payment is less than this (e.g $60). i could just charge $60 directly, but due to my system i cant do that
markin
how can you not charge $60 directly?
arimus
markin: and yes, the PK we're sending is the one that's returned from the connect flow for the new account. just verified again
markin
arimus: and you're sure the stripe account header is being set?
cannatown
because they need to have $40 extra in their account for my system to work
markin
cannatown: how and why?
cannatown
i would tell you but its confidential, sorry
markin
cannatown: are you ever going to charge that extra $40?
_Eric_
cannatown, let me understand this - you more or less want to provide a service with 60% down deposit and the rest deposited after completion of work?
cannatown
markin: no, its just a check to see if the user actually has $100 in their account
_Eric_: yes very similar to that
markin
well then you need to have two transactions, once for the deposit and the other for the rest of the work
cannatown
hmm
_Eric_
cannatown, yes that might be the way to go
arimus
markin: as for the header, we're just using the node.js library and using it as per the example http://pastebin.com/gEa4uSHZ
markin
as soon as you do the captureing of a lesser amount, there is no guarantee the rest will be available.
Just have two transactions one where you have one authorised and one captured. When work is completed, then capture that authorized charge cannatown. That said, it may look suspicious to the credit card companies.