#unibit - error
1 messages · Page 1 of 1 (latest)
Can you share the details of that error?
An example request ID? https://stripe.com/docs/api/request_ids
like req_123
pi_3KcGQ6LoffM3pbuK0uFRnsZI
we are trying to transfer funds from our account to a valid connected account
as you can see the status is incomplete with the reason of customer has not enter their payment method
Yes, you haven't completed the payment
what does that mean?
just that the customer never paid
You need to collect payment details to actually take payment: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements#web-submit-payment
we are totaly lost
Are you the developer writing the code?
yesx
Okay. So right now, you create a PaymentIntent. That means you intend to take a payment from a customer. That's step 1. You never collected any information from your customer like their card details or their email or anything. You stopped at the first step
we have just received a payment from client with id card_1KcGNVLoffM3pbuKb3bV5mLW
we need to transfer these funds to one of our connected accounts
you have not though
maybe you're mixing things up?
That PaymentIntent was never completed
the card you mentioned is in Test mode paid with the fake test card 4242424242424242
so?
so what?
Ah sorry it's all test mode
The way you were explaining it I thought it was Live mode. Okay I'm sorry I worry you have mixed up a lot of concepts
the fact that you get a card_123 tells me you are not following the official docs (since this is a >3 years old flow you're using)
all are in test mode
Okay so you have a PaymentIntent. Your code is supposed to use Stripe.js to confirm the PaymentIntent client-side
But instead, you wrote completely different code that collects card details and just creates a one-time charge, entirely separtate from the PI
https://dashboard.stripe.com/test/logs/req_7t3YqB5aQcrUNh this is your payment creation
so what is the problem here, the funds are in our account
we are using legacy checkout to collect payments
Legacy Checkout has been deprecated for over 3 years though
yes but it works
not really, it can't handle 3D Secure for example
which is more and more common even in the US
I'm sorry, you're asking for help, I'm trying to help you. Legacy Checkout has been deprecated for years now. All our docs clearly cover this and end to end flow to accept payments.
It's fine if you want to use Checkout, totally your business decision, but then your code can not use PaymentIntents, it's entirely incompatible. So creating a PaymentIntent really doesn't work here.
You need to change your code so that when it creates the Charge it properly uses transfer_data, like you did in that PI
please explain it with more details
this is the code we are using to create a charge
var customers = new CustomerService();
var charges = new ChargeService();
var customer = customers.Create(new CustomerCreateOptions
{
Email = Request.Form["email"],
Source = Request.Form["stripeToken"]
});
var charge = charges.Create(new ChargeCreateOptions
{
Amount = Convert.ToInt32(Request.Form["item_fee"]) * 100,
Description = Request.Form["email"],
Currency = "sek",
Customer = customer.Id
});
You need to pass this parameter: https://stripe.com/docs/api/charges/create#create_charge-transfer_data
the same way you do on the PaymentIntent. Except you should never use a PaymentIntent
you mean, we need to set our stripe account id in transfer_data ?
I am so sorry, I am really trying to help, but you seem completely lost
You created a PaymentIntent. When you did, you set transfer_data with the id of a connected account. Why did you do that part?
if we are so lost how did we manage to create all these payments ?
and anyway, all these payments we have created, arent they are in our stripe account ?
Let's pause for a second
Can you explain why you are creating a PaymentIntent?
That's the part that doesn't add up for me
2:01 PM] unibit: pi_3KcGQ6LoffM3pbuK0uFRnsZI
that's the first example you gave us, that's where it all started
yes ok
we where trying to move funds from our stripe account to one of our connected accounts
Ah perfect
Okay so you just used the wrong API, and that's the confusion (PaymentIntents are a new way to accept money, a way better way I may add)
So what you want is to create a Transfer instead: https://stripe.com/docs/api/transfers/create
yes i think that was the confusion, let us try this and i let you know
Are you explicitly trying to use "separate charges and transfers"?
yes
Gotcha so you want this doc: https://stripe.com/docs/connect/charges-transfers
Except that you are not doing the first part (PaymentIntent) since you prefer Charges (which you really should move away from, but that's up to you)
i know we have to move, but at the moment we do not have the time to implement it from scratch
i think now it worked, can you please check tr_1KcHlSLoffM3pbuKL2c7hCVv
yep you transferred 4SEK to a connected account