order.financial_status

Jason_Roberts
Explorer
63 1 51

When using Shopify Payments, at what point does an order's financial status go from "authorized" to "paid"?

We're executing a script on the final page of the Shopify checkout process. We want it to be conditional so that it only runs when a payment doesn't go through (i.e. != 'paid'), but we're finding that all Shopify orders have a status of authorized at the time the final page is generated. If I look at the order page immediately after the order, though, it says paid. So when does it go from authorized to paid?

Is there anything else we can make conditional so this text shows up only when the payment doesn't go through?

Replies 4 (4)
Anders3
Shopify Staff (Retired)
224 1 41

Hi, Jason!
 
Anders from the Shopify Social Care team here. Thanks for reaching out today!

That's certainly a good question! If you have automatic capture enabled in your store's settings (Settings > Payment Providers > Payment Authorization) then the process you've explained here is actually expected. Once an order is placed, it will first show as 'authorized' on the 'thank you' page. If auto-capture is enabled, then the payment will be automatically accepted and the order status will change to 'paid' almost instantly after the order is completed. The closest analogy would be when you are paying in-person using a debit/credit card. The payment is first authorized and then the transaction is approved by the bank after a few seconds. 

May I ask what you're trying to achieve with your script? Right now, I believe a possible solution would be to set your payment authorization settings to manually capture payment. This way you will know for sure the order will remain as 'authorized' on the final page of the checkout until you manually capture the payment in the order's detail page. But, if you can provide me a bit more info on your script, I can see if there might be another option. 

Cheers!

Anders3 | Social Care @ Shopify
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Jason_Roberts
Explorer
63 1 51

Hey, Anders. Thanks for the explanation.

I'm trying to modify a script that is being used for fraud prevention. Currently we have our capture set to manual, so everything gets authorized after which it goes through FraudLabs Pro's app. If it passes their scan, FraudLabs Pro sets the status to paid; if not, it remains as authorized so we can choose whether to process the charge or not.

FraudLabs has added a great SMS verification feature, which is the script I'm attempting to modify. The script is written is such a way that it is only supposed to run if the order.financial_status does NOT equal paid. In other words, those who get to the paid status aren't bothered by this step. Unfortunately, at the final order page, every order has the status of authorized, nobody makes it to paid before that page appears, so every customer is having to go through this SMS verification.

I know a moment later, the order status will show up as paid for those orders that make it through FraudLabs Pro unflagged, but apparently it's not quick enough to show up during the order process. 

FraudLabs appears to have accepted that this cannot be done, and they're likely correct, but I was hoping to find a work-around. TPTB on my end do not want to inconvenience every customer with the SMS verification, so I have to pull the script if I can't get it to work, and while I understand their position this little script has saved us a lot of manual work. I can't help but feel that if we could just grab the order's financial status just one second later, it would work as desired.

 

Anders3
Shopify Staff (Retired)
224 1 41

Thanks for those insights, Jason!

Ah, that's a bit unfortunate to hear that FraudLabs won't be able to support that script change. I understand the need to try and eliminate unnecessary steps for your customers but that script does sound very handy. I've spoken with our technical team on our end and they have informed me that the 'additional scripts' section in the admin can only grab events up to the 'Thank You' page. Since the 'paid' status change happens after the 'Thank You' page, the remaining option would have been to see if FraudLabs had any other options - which it sounds like is not possible.

Have you tried looking to any of the other anti-fraud apps in our App Store? Personally, I've heard from other shop owners that Signifyd is another feature-rich service and comparable to FraudLabs. One other option would be to work with a Shopify Development Expert to have something custom built for the shop. But, perhaps someone from our community might have a possible workaround!

If there's anything else I can do for you Jason, don't hesitate to follow back up.

Anders3 | Social Care @ Shopify
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Jason_Roberts
Explorer
63 1 51

Thank you for a definitive explanation, Anders. I do appreciate your time.

What we may do is have it skip the validation based on whether the customer has a history with us.