Incorrect country code format in shippingAddress.phone returned by Admin API and webhooks

Hi everyone,

I’m encountering an issue with the shippingAddress.phone field when retrieving order data via both webhooks and the Shopify Admin GraphQL API.

What I observed

  • From webhook / GraphQL API response:00420xxxxxxx

  • From Shopify Admin UI (Order details page): +420 xxxxxxx

Issue

The phone number returned by the API appears to have an incorrect country code format:

  • The country code is represented as 00420 instead of +420

  • This differs from what is displayed in the Admin UI

My questions

  1. Is the 00420 prefix considered a valid/expected format in Shopify API responses?

  2. Why does the API return a different country code format compared to the Admin UI?

  3. Is there any official standard or documentation describing how phone numbers are formatted in Shopify APIs

PS:

  1. webhook details

topic: orders/updated 
version: 2025-04 
eventId: c93e2c51-bee9-4c99-92fe-8d8505b9b544 
eventTime: 2026-03-27T07:21:14.007283172Z 
webhookId: 801d7cbd-959e-5ef8-9520-a66b0b53418d 

{
  "id": 7359889146197,
  "shipping_address": {
    "phone": "0042060593****",     // To prevent privacy leakage, I covered the end of the number
  }
}

2. Graphql Admin Api

{
    "data": {
        "order": {
            "note": null,
            "shippingAddress": {
                "phone": "0042060593****"
            }
        }
    },
    "extensions": {
        "cost": {
            "requestedQueryCost": 2,
            "actualQueryCost": 2,
            "throttleStatus": {
                "maximumAvailable": 2000.0,
                "currentlyAvailable": 1998,
                "restoreRate": 100.0
            }
        }
    }
}
  1. Admin UI

How did this number get into your system? Was it from a Shopify checkout page or something else?

If you parse the number using Google’s libphonenumber: https://libphonenumber.appspot.com/ it comes back correctly as a CZ number.

In certain areas Shopify does validate the field itself, checkout, for example, but within GraphQL it is a String with no defined format so I think the behavior you’re seeing is is defined and expected.

Thanks for your reply, but what’s strange is that the phone number in the order details on Shopify’s Admin page is correct (you can see in the screenshot above).

This is the embarrassing part; the merchant insists that our system entered the wrong phone number.

I’ll try Google’s libphonenumber too. Thx again for the suggestions.