Order financial status is still 'paid' after order is cancelled

Hi there, I am trying to make sure that the order financial status is ‘voided’

I have already,

However, the order financial status is still paid. How do I make the order financial status voided ?

Order is https://maxim-khanate.myshopify.com/admin/orders/4331616370752.json

{"id":4331616370752,"admin_graphql_api_id":"gid://shopify/Order/4331616370752","app_id":78460452865,"browser_ip":null,"buyer_accepts_marketing":false,"cancel_reason":"other","cancelled_at":"2025-05-19T14:33:49-04:00","cart_token":null,"checkout_id":null,"checkout_token":null,"client_details":null,"closed_at":"2025-05-19T14:33:49-04:00","company":null,"confirmation_number":"U6G4K1GYE","confirmed":true,"created_at":"2025-05-05T18:20:25-04:00","currency":"USD","current_subtotal_price":"0.00","current_subtotal_price_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"current_total_additional_fees_set":null,"current_total_discounts":"0.00","current_total_discounts_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"current_total_duties_set":null,"current_total_price":"0.00","current_total_price_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"current_total_tax":"0.00","current_total_tax_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"customer_locale":null,"device_id":null,"discount_codes":[],"estimated_taxes":false,"financial_status":"paid","fulfillment_status":null,"landing_site":null,"landing_site_ref":null,"location_id":null,"merchant_of_record_app_id":null,"name":"#1245","note":"TEST NOTE","note_attributes":[],"number":245,"order_number":1245,"original_total_additional_fees_set":null,"original_total_duties_set":null,"payment_gateway_names":[],"po_number":null,"presentment_currency":"USD","processed_at":"2025-05-05T18:20:25-04:00","reference":null,"referring_site":null,"source_identifier":null,"source_name":"tiktok","source_url":null,"subtotal_price":"100.00","subtotal_price_set":{"shop_money":{"amount":"100.00","currency_code":"USD"},"presentment_money":{"amount":"100.00","currency_code":"USD"}},"tags":"TAG, TEST","tax_exempt":false,"tax_lines":[],"taxes_included":false,"test":false,"token":"f9235edac08d547f7c4a02c8324b5ffc","total_discounts":"0.00","total_discounts_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"total_line_items_price":"100.00","total_line_items_price_set":{"shop_money":{"amount":"100.00","currency_code":"USD"},"presentment_money":{"amount":"100.00","currency_code":"USD"}},"total_outstanding":"0.00","total_price":"100.00","total_price_set":{"shop_money":{"amount":"100.00","currency_code":"USD"},"presentment_money":{"amount":"100.00","currency_code":"USD"}},"total_shipping_price_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"total_tax":"0.00","total_tax_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"total_tip_received":"0.00","total_weight":0,"updated_at":"2025-05-19T14:33:49-04:00","user_id":null,"billing_address":null,"customer":null,"discount_applications":[],"fulfillments":[],"line_items":[{"id":10986196631616,"admin_graphql_api_id":"gid://shopify/LineItem/10986196631616","current_quantity":0,"fulfillable_quantity":0,"fulfillment_service":"manual","fulfillment_status":null,"gift_card":false,"grams":0,"name":"TEST LINE ITEM","price":"100.00","price_set":{"shop_money":{"amount":"100.00","currency_code":"USD"},"presentment_money":{"amount":"100.00","currency_code":"USD"}},"product_exists":false,"product_id":null,"properties":[],"quantity":1,"requires_shipping":true,"sku":null,"taxable":true,"title":"TEST LINE ITEM","total_discount":"0.00","total_discount_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"variant_id":null,"variant_inventory_management":null,"variant_title":null,"vendor":null,"tax_lines":[],"duties":[],"discount_allocations":[]}],"payment_terms":null,"refunds":[{"id":845096321088,"admin_graphql_api_id":"gid://shopify/Refund/845096321088","created_at":"2025-05-19T14:33:48-04:00","note":null,"processed_at":"2025-05-19T14:33:48-04:00","restock":true,"total_duties_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"user_id":null,"order_adjustments":[],"transactions":[],"refund_line_items":[{"id":345519587392,"line_item_id":10986196631616,"location_id":12507971648,"quantity":1,"restock_type":"no_restock","subtotal":100.0,"subtotal_set":{"shop_money":{"amount":"100.00","currency_code":"USD"},"presentment_money":{"amount":"100.00","currency_code":"USD"}},"total_tax":0.0,"total_tax_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"line_item":{"id":10986196631616,"admin_graphql_api_id":"gid://shopify/LineItem/10986196631616","current_quantity":0,"fulfillable_quantity":0,"fulfillment_service":"manual","fulfillment_status":null,"gift_card":false,"grams":0,"name":"TEST LINE ITEM","price":"100.00","price_set":{"shop_money":{"amount":"100.00","currency_code":"USD"},"presentment_money":{"amount":"100.00","currency_code":"USD"}},"product_exists":false,"product_id":null,"properties":[],"quantity":1,"requires_shipping":true,"sku":null,"taxable":true,"title":"TEST LINE ITEM","total_discount":"0.00","total_discount_set":{"shop_money":{"amount":"0.00","currency_code":"USD"},"presentment_money":{"amount":"0.00","currency_code":"USD"}},"variant_id":null,"variant_inventory_management":null,"variant_title":null,"vendor":null,"tax_lines":[],"duties":[],"discount_allocations":[]}}],"duties":[]}],"shipping_address":null,"shipping_lines":[]}

I used to be able to void the order by voiding the successful transactions for an order. However, for this order there are 0 transactions.

https://maxim-khanate.myshopify.com:443/admin/api/2024-07/orders/4331616370752/transactions.json

returns nothing

the financial status is also paid (instead of void) if I cancel the order with graphql orderCancel.

https://maxim-khanate.myshopify.com/admin/orders/4331615780928.json

with

mutation($orderId: ID!, $restock: Boolean!) {
  orderCancel(
    orderId: $orderId
    restock: $restock
    reason: OTHER
    refund: true
  ) {
    job {
      id
      done
    }
    orderCancelUserErrors {
      code
      field
      message
    }
  }
}

1 Like

Hey @sengming :waving_hand: - the order’s fulfillment status should flip to “refunded” if refund is set to true in the orderCancel mutation.

Did you create the order via the API as well (or was it created by another app)? Happy to see if I can try to replicate this on my end and look into this a bit further for sure.

thanks @Alan_G !

Just to be clear I am more concerned with the financial status here not the fulfillment status (though that is good information!)

And yes I did create this order with the API. Please go ahead and try to replicate this.

If you’ve issued a refund, the financial status will be “refunded”. Void is only relevant for uncaptured authorizations.

thanks @JosephNorth ! I am also ok with having the financial status be “refunded”. Unfortunately it is still at still “paid” which is so weird.

Hey @sengming - thanks for confirming. I was able to replicate the behaviour on my test shop.

I’ll do some more digging into this to see if we can confirm expected behaviour or if this is an issue on our end - thanks for flagging this!

Hi there, do you have any updates on this?

Hey @sengming :waving_hand: - thanks for following up and waiting on my response. I don’t currently have any updates on a fix, but I can share that this has been escalated to the right product team on our end and I’m still keeping tabs on this.

I’ll update you here when we have a fix or more info to share!

thanks for the update!

Hi @Alan_G , do you have any updates on this?

Hey @sengming thanks for following up :wave: - no new updates to share just yet, but I can confirm this is still being looked at by the product team. I’ll keep an eye on this and will definitely circle back here once I have more info to share.

Definitely understand it’s not ideal to not have a timeline, but I really appreciate your patience on this one.

thanks for the update I really appreciate it!

Hi Is there any update on this?
Im facing the similar issue with one of the shopify site.
We have a delayed refund process, and it was working fine for some time.
Recently started noticing that after refund api call the financial_status is not changing from paid to any other status.
Also in the shopify admin panel the order is not shown as refunded either.

Hi folks - no update to share as of yet, however I’m digging into this on my side to get clarification on the expected behaviour.

thanks @Liam-Shopify !