Missing Customer Email in Shipping Carrier Service API Request

Hello,

I’m using the Shipping Carrier Service API to calculate shipping rates during checkout. According to the API documentation, the request payload includes the email field. However, in practice, this field is always returned empty—even when the customer clearly enters their email during the checkout process.

Could you please confirm whether this is expected behavior?

Is there any way to retrieve the customer email within the context of the Carrier Service API, or is this data intentionally omitted due to Shopify’s privacy or security policies?

Thank you in advance for your assistance.

Hi, there
In your app setttings. have you request the customer access? like below

Hi @Eric_Han
Thank you for your response! I requested customer data access already.


Hi @Alan_G ,
Sorry to tag you here, just wondering if you’ve come across this issue before? The email is empty on all shipping carrier requests.

Thank you in advanced!

Hey @smartive :waving_hand: - I have seen a similar issue pop up before, but not this specific one with the email field returning null. Happy to look into this for sure.

Would you be able to share your app ID and a shop ID/myshopify.com URL for where you’re seeing this happen? If your app does have the right protected access scopes, it does seem odd that this is popping up.

hi @Alan_G
Thank you for responding to the message.
My App ID is: 188132294657
Our shop is: quickstart-06b9258e.myshopify.com

You can see the image as below:

I input email information already. However, the shipping carrier service that Shopify sent to our application includes email is null.

Here is the request:

{
    "_id": {"$oid": "111111111111"},
    "__v": 0,
    "body": {
      "rate": {
        "origin": {
          "country": "VN",
          "postal_code": "10000",
          "province": null,
          "city": "Hanoi",
          "name": null,
          "address1": "Hanoi",
          "address2": "",
          "address3": null,
          "latitude": 14.058324,
          "longitude": 108.277199,
          "phone": "",
          "fax": null,
          "email": null,
          "address_type": null,
          "company_name": "Quickstart (06b9258e)"
        },
        "destination": {
          "country": "VN",
          "postal_code": "100000",
          "province": null,
          "city": "Hanoi",
          "name": "Exampl Name",
          "address1": "Street 1",
          "address2": null,
          "address3": null,
          "latitude": null,
          "longitude": null,
          "phone": null,
          "fax": null,
          "email": null,
          "address_type": null,
          "company_name": null
        },
        "items": [
          {
            "name": "The 3p Fulfilled Snowboard - Profile1",
            "sku": "sku-hosted-1",
            "quantity": 2,
            "grams": 1000,
            "price": 150000000,
            "vendor": "Quickstart (06b9258e)",
            "requires_shipping": true,
            "taxable": true,
            "fulfillment_service": "manual",
            "product_id": 8281414336668,
            "variant_id": 44520766308508
          }
        ],
        "currency": "VND",
        "locale": "en-VN"
      }
    },
    "created_at": {"$date": "2025-05-16T13:28:10.297Z"},
    "endpoint": "xxxxxxxx",
    "header": {
      "host": "xxxxxxxx,
      "x-real-ip": "xxxxxx",
      "x-forwarded-for": "xxxxx,
      "x-forwarded-proto": "http",
      "connection": "close",
      "content-length": "891",
      "traceparent": "00-xxxxxxx",
      "tracestate": "ot=p:0;r:1",
      "x-shopify-trace-hint": "true",
      "x-shopify-trace-context": "2e69363d2fff4c4f7444efff600bb3b2/788411760269345200;o=1",
      "cf-ray": "940b37780fca53b5-ATL",
      "x-cloud-trace-context": "2e69363d2fff4c4f7444efff600bb3b2/788411760269345200;o=1",
      "cf-visitor": "{\"scheme\":\"https\"}",
      "content-type": "application/json",
      "x-shopify-hmac-sha256": "xxxxxx",
      "x-shopify-shop-domain": "quickstart-06b9258e.myshopify.com",
      "x-shopify-timeout": "10000",
      "accept-encoding": "gzip, br",
      "accept": "*/*",
      "user-agent": "Ruby",
      "cdn-loop": "cloudflare; loops=1",
      "cf-connecting-ip": "34.148.6.59",
      "cf-ipcountry": "US"
    },
    "method": "POST",
    "prefix": "",
    "response_code": "",
    "shop": "quickstart-06b9258e.myshopify.com",
    "type": "request"
  }

Thanks @smartive - I’ll do some digging into this and loop back with you in this thread when I have some more info/next steps to share. Appreciate you sharing all of the info here. :slight_smile:

Thanks for the update! I appreciate your support and will wait to hear back from you.