Shopify treats numbers with 3 decimal places as int instead of float

Topic summary

A bug in Shopify’s API causes numbers with exactly 3 decimal places to be incorrectly saved as integers instead of floats when creating orders. Numbers with 2, 4, or more decimal places work correctly.

Key Details:

  • Affects the orders endpoint (admin/api/2021-07/orders.json)
  • Issue is specific to the REST API; does not occur in GraphQL or other REST endpoints
  • Example: A price of “10.391” gets saved incorrectly

Status:

  • Initially reported by a user with screenshots and full JSON payload examples
  • Shopify staff confirmed the issue after testing
  • A fix was deployed and confirmed by Shopify support
  • Recent development: Another user reports the bug has returned, observing the same behavior while importing products
  • Awaiting confirmation on whether the issue has regressed
Summarized with AI on November 24. AI used: claude-sonnet-4-5-20250929.

There is a bug with the API call when creating an order, where Shopify treats numbers with 3 decimal places as int instead of float. Note, if the payload contains numbers with 2, 4, or more decimals, it gets correctly saved. The issue is triggered only with 3 decimals.

Endpoint: admin/api/2021-07/orders.json (API version does not matter)

Example POST request with a response:

Example order:


Full body (example raw JSON)

{
    "order": {
        "line_items": [
            {
                "variant_id": "1234530",
                "quantity": "1",
                "price": "10.391",
                "vendor": "shopify-store",
                "title": "A donkey out of stock",
                "grams": 0,
                "sku": ""
            }
        ],
        "customer": {
            "first_name": "Jorge",
            "last_name": "Address",
            "email": "saso@carthook.com"
        },
        "buyer_accepts_marketing": "1",
        "shipping_address": {
            "country": "United States",
            "province": "Oregon",
            "first_name": "Jorge",
            "last_name": "Address",
            "city": "Portland",
            "address1": "1315 NE Fremont St",
            "zip": "97212",
            "phone": "",
            "company": "",
            "address2": ""
        },
        "note": "",
        "note_attributes": [],
        "referring_site": "https:\/\/test.myshopify.com\/cart",
        "billing_address": {
            "country": "United States",
            "province": "Oregon",
            "first_name": "Jorge",
            "last_name": "Address",
            "city": "Portland",
            "address1": "1315 NE Fremont St",
            "zip": "97212",
            "phone": "",
            "company": "",
            "address2": ""
        },
        "email": "saso@carthook.com",
        "transactions": [
            {
                "kind": "sale",
                "status": "success",
                "amount": "10.391"
            }
        ],
        "discount_codes": [],
        "financial_status": "paid",
        "shipping_lines": [
            {
                "code": "FirstPackage",
                "price": 0.00,
                "title": "First Class Package",
                "source": "usps",
                "tax_lines": [],
                "carrier_identifier": null,
                "requested_fulfillment_service_id": null
            }
        ],
        "send_receipt": true,
        "send_fulfillment_receipt": true,
        "inventory_behaviour": "decrement_ignoring_policy",
        "processing_method": "offsite",
        "gateway": "nmi_test",
        "total_weight": 0,
        "total_tax": 0,
        "tags": "test-bla, te_id_Q0AWsQoaYcsKetgpWM7v, 0-4396216362, TEST Checkout, test_FID_test-bla",
        "metafields": [
            {
                "key": "avs_result_code",
                "value": "Y",
                "value_type": "string",
                "namespace": "payment_details"
            },
            {
                "key": "credit_card_bin",
                "value": "453600",
                "value_type": "string",
                "namespace": "payment_details"
            },
            {
                "key": "cvv_result_code",
                "value": "M",
                "value_type": "string",
                "namespace": "payment_details"
            },
            {
                "key": "credit_card_number",
                "value": "•••• •••• •••• 4242",
                "value_type": "string",
                "namespace": "payment_details"
            },
            {
                "key": "credit_card_company",
                "value": "Visa",
                "value_type": "string",
                "namespace": "payment_details"
            }
        ]
    }
}

Response:

{
    "order": {
        "id": 4023770185837,
        "admin_graphql_api_id": "gid://shopify/Order/4023770185837",
        "app_id": 1356615,
        "browser_ip": null,
        "buyer_accepts_marketing": true,
        "cancel_reason": null,
        "cancelled_at": null,
        "cart_token": null,
        "checkout_id": null,
        "checkout_token": null,
        "closed_at": null,
        "confirmed": true,
        "contact_email": "saso@carthook.com",
        "created_at": "2021-08-31T11:11:29+02:00",
        "currency": "USD",
        "current_subtotal_price": "10391.00",
        "current_subtotal_price_set": {
            "shop_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            },
            "presentment_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            }
        },
        "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": "10391.00",
        "current_total_price_set": {
            "shop_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            },
            "presentment_money": {
                "amount": "10391.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": [],
        "email": "saso@carthook.com",
        "financial_status": "paid",
        "fulfillment_status": null,
        "gateway": "nmi_test",
        "landing_site": null,
        "landing_site_ref": null,
        "location_id": null,
        "name": "#483578",
        "note": "",
        "note_attributes": [],
        "number": 482578,
        "order_number": 483578,
        "order_status_url": "https://carthook-production-testing-1.myshopify.com/18821611584/orders/e0988a867248bf31d8564f7e8072d0f4/authenticate?key=c2ffd6892df2a036ba8b36098910592d",
        "original_total_duties_set": null,
        "payment_gateway_names": [
            "nmi_test"
        ],
        "phone": null,
        "presentment_currency": "USD",
        "processed_at": "2021-08-31T11:11:29+02:00",
        "processing_method": "",
        "reference": null,
        "referring_site": "https://test.myshopify.com/cart",
        "source_identifier": null,
        "source_name": "1356615",
        "source_url": null,
        "subtotal_price": "10391.00",
        "subtotal_price_set": {
            "shop_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            },
            "presentment_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            }
        },
        "tags": "0-4396216362, te_id_Q0AWsQoaYcsKetgpWM7v, TEST Checkout, test-bla, test_FID_test-bla",
        "tax_lines": [],
        "taxes_included": false,
        "test": false,
        "token": "e0988a867248bf31d8564f7e8072d0f4",
        "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": "10391.00",
        "total_line_items_price_set": {
            "shop_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            },
            "presentment_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            }
        },
        "total_outstanding": "10380.61",
        "total_price": "10391.00",
        "total_price_set": {
            "shop_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            },
            "presentment_money": {
                "amount": "10391.00",
                "currency_code": "USD"
            }
        },
        "total_price_usd": "10391.00",
        "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": "2021-08-31T11:11:30+02:00",
        "user_id": null,
        "billing_address": {
            "first_name": "Jorge",
            "address1": "1315 NE Fremont St",
            "phone": "",
            "city": "Portland",
            "zip": "97212",
            "province": "Oregon",
            "country": "United States",
            "last_name": "Address",
            "address2": "",
            "company": "",
            "latitude": 45.5483639,
            "longitude": -122.6524147,
            "name": "Jorge Address",
            "country_code": "US",
            "province_code": "OR"
        },
        "customer": {
            "id": 3363283599469,
            "email": "saso@carthook.com",
            "accepts_marketing": true,
            "created_at": "2020-06-17T13:07:52+02:00",
            "updated_at": "2021-08-31T11:11:30+02:00",
            "first_name": "Jorge",
            "last_name": "Address",
            "orders_count": 9,
            "state": "enabled",
            "total_spent": "10518.43",
            "last_order_id": 4023770185837,
            "note": null,
            "verified_email": true,
            "multipass_identifier": null,
            "tax_exempt": false,
            "phone": null,
            "tags": "Inactive Subscriber",
            "last_order_name": "#483578",
            "currency": "USD",
            "accepts_marketing_updated_at": "2020-06-17T13:07:53+02:00",
            "marketing_opt_in_level": "single_opt_in",
            "tax_exemptions": [],
            "admin_graphql_api_id": "gid://shopify/Customer/3363283599469",
            "default_address": {
                "id": 6495281414253,
                "customer_id": 3363283599469,
                "first_name": "Jorge",
                "last_name": "Address",
                "company": "",
                "address1": "1315 NE Fremont St",
                "address2": "",
                "city": "Portland",
                "province": "Oregon",
                "country": "United States",
                "zip": "97212",
                "phone": "",
                "name": "Jorge Address",
                "province_code": "OR",
                "country_code": "US",
                "country_name": "United States",
                "default": true
            }
        },
        "discount_applications": [],
        "fulfillments": [],
        "line_items": [
            {
                "id": 10287198535789,
                "admin_graphql_api_id": "gid://shopify/LineItem/10287198535789",
                "fulfillable_quantity": 1,
                "fulfillment_service": "manual",
                "fulfillment_status": null,
                "gift_card": false,
                "grams": 0,
                "name": "A donkey out of stock",
                "price": "10391.00",
                "price_set": {
                    "shop_money": {
                        "amount": "10391.00",
                        "currency_code": "USD"
                    },
                    "presentment_money": {
                        "amount": "10391.00",
                        "currency_code": "USD"
                    }
                },
                "product_exists": false,
                "product_id": null,
                "properties": [],
                "quantity": 1,
                "requires_shipping": true,
                "sku": "",
                "taxable": true,
                "title": "A donkey out of stock",
                "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": "shopify-store",
                "tax_lines": [],
                "duties": [],
                "discount_allocations": []
            }
        ],
        "refunds": [],
        "shipping_address": {
            "first_name": "Jorge",
            "address1": "1315 NE Fremont St",
            "phone": "",
            "city": "Portland",
            "zip": "97212",
            "province": "Oregon",
            "country": "United States",
            "last_name": "Address",
            "address2": "",
            "company": "",
            "latitude": 45.5483639,
            "longitude": -122.6524147,
            "name": "Jorge Address",
            "country_code": "US",
            "province_code": "OR"
        },
        "shipping_lines": [
            {
                "id": 3439817261165,
                "carrier_identifier": null,
                "code": "FirstPackage",
                "delivery_category": null,
                "discounted_price": "0.00",
                "discounted_price_set": {
                    "shop_money": {
                        "amount": "0.00",
                        "currency_code": "USD"
                    },
                    "presentment_money": {
                        "amount": "0.00",
                        "currency_code": "USD"
                    }
                },
                "phone": null,
                "price": "0.00",
                "price_set": {
                    "shop_money": {
                        "amount": "0.00",
                        "currency_code": "USD"
                    },
                    "presentment_money": {
                        "amount": "0.00",
                        "currency_code": "USD"
                    }
                },
                "requested_fulfillment_service_id": null,
                "source": "usps",
                "title": "First Class Package",
                "tax_lines": [],
                "discount_allocations": []
            }
        ]
    }
}

Hello @saso ,

Thanks for bringing this to our attention. We ran a couple of tests using the payload you provided (you may have received a confirmation email accidentally on the first test - apologies for that!). We noted that this doesn’t happen in GraphQL, nor several other REST endpoints. It seemingly just occurs with the order REST endpoint. We’re confirming this one with the devs to see what might be happening here, and I’ll let you know what comes back.

Best,

Graham

1 Like

Hi @saso

Wanted to follow up with you to let you know that a fix has been put in place, and you shouldn’t see this behaviour going forward.

1 Like

Hi there,

It looks like that this bug is back. We’ve observed the same behaviour while importing the products.

Let us know when this is fixed.

Thanks

1 Like