#weretaco-migrations-declines

1 messages · Page 1 of 1 (latest)

wanton kayak
#

hello,

I get a declined error.

can you grab a request ID for that?

timid zenith
#

yup

#

so the cdode is

#

req_MHTGoE1nGyXKDr

#

i was having another issue recently where the stripe dashboard was refusing a known good card number with the same error

gloomy snow
#

taking over, let me have a look

timid zenith
#

sure

gloomy snow
#

The decline is not on clone, it's when you attach that PaymentMethod. This leads to a $0/$1 authorization with the bank and the bank here is declining it

#

Why are you attaching it on the connected account exactly?

timid zenith
#

i need to bill it under the connected account and not the platform so my understanding is i would need to create a new customer under the connected account and clone+attach the payment to it

gloomy snow
#

not really, that's only if you need to save the card for later.

timid zenith
#

will do, but as a quickie can i just keep it on the platform, clone during payment using that id and never attach to the connect customer?

gloomy snow
#

yes!

timid zenith
#

thanks i'll watch and try it out

#

is it common for banks to reject those attach calls?

gloomy snow
#

hard to say it could be anything. Really there's no reason for you to do an attach here, especially on a card you might not have charged for a while since you just migrated

timid zenith
#

if i don't need to charge the connect customer method and can just keep using our imported platform pm IDs i think i'm fine. for customers we don't import we'll be sending an invoice for first payment and then can just re-use that payment method at the connect level indefinitely since we can't clone back to platform (as far as I know)

#

might need to review your video more

#

since i get this in test

gloomy snow
#

1/ Clone
2/ Charge that clone

not
1/ Clone
2/ Attach that clone
3/ Charge that clone

#

you still need to clone

timid zenith
#
            var cOpts = new PaymentMethodCreateOptions();
            cOpts.Customer = platformCustomer;
            cOpts.PaymentMethod = paymentMethodId;
            var pm = await pService.CreateAsync(cOpts, requestOptions: reqOptions);
            return pm.Id;```
#

so my original platform one is

gloomy snow
#

hum okay sorry

timid zenith
#

and that's the clone

gloomy snow
#

What do Invoices have to do with any of this

timid zenith
#

i'm using invoices for billing this

#

so i'm setting the invoice customer to the connected account ID, then the invoiceOptions.DefaultPaymentMethod = RequestData.paymentMethodID;

gloomy snow
#

Ah then ignore everything I said, if you are using Invoicing yourself for one-off payments, none of what I said works sadly

#

So yeah okay what you need to do is disable the card authorization on attachment

#

it's undocumented but you can pass validate: false to that API to skip the authorization and avoid the problem

timid zenith
#

just as an extra param?

#

options.ExtraParams.Add("validate", false);

#

?

gloomy snow
#

yes

timid zenith
#

appears to have worked in test

#

thanks

#

got an invalid account back on the customer from before.. so i assume something probably went wrong with the import.

#

The bank returned the decline code invalid_account.

gloomy snow
#

nothing went wrong, it's just a simple decline

timid zenith
#

would there be a different with debit vs credit?

#

as it imported as funding: debit

gloomy snow
#

usually means the card was lost/renewed or they changed their account.

timid zenith
#

i'm canadian so US debit is odd to me vs interac debit we do

gloomy snow
#

yeah it really doesn't matter/is not relevant here

timid zenith
#

ok

#

i'll have our group reach out to the customer to see if there's a new card or see what the bank says

#

thanks for all your help today