DraftOrderCalculate with a currency different from shop currency produces wrong fixed discount values due to 1.5% fee

Hi, I am currently working with markets with different currencies and running into issues with the calculations of fixed discounts. Is it intended that the discounts also have a 1.5% conversion fee? It is resulting in higher discounts than desired so would love some insights in if this is intended behavior for discounts because it seems counterintuitive to me. This fee is always applied if the “presentmentCurrencyCode“ is different from the shop currency, even if the “presentmentCurrencyCode“ and “currencyCode“ (of the “AmountWithCurrency” are the same

This is the simplified mutation

mutation ($input: DraftOrderInput!) {
  draftOrderCalculate(input: $input) {
    calculatedDraftOrder {
	  appliedDiscount {
        amountSet {
          presentmentMoney {
            amount
            currencyCode
          }
          shopMoney {
            amount
            currencyCode
          }
        }
      }
    }
  }
}

When I run it with this input (placeholder lineitem id in this example)

{"input": { 
  "lineItems": [{
  "variantId": "gid://shopify/ProductVariant/123456789", 
    "quantity": 1
}],
  "presentmentCurrencyCode": "USD", 
  "appliedDiscount": {
    "amountWithCurrency": {
      "amount": "10.00",
      "currencyCode": "USD"
    },
    "value": 10,
    "valueType": "FIXED_AMOUNT"
}}}

I get a logical response

  "data": {
    "draftOrderCalculate": {
      "calculatedDraftOrder": {
        "appliedDiscount": {
          "value": 10,
          "amountSet": {
            "presentmentMoney": {
              "amount": "10.0",
              "currencyCode": "USD"
            },
            "shopMoney": {
              "amount": "10.0",
              "currencyCode": "USD"
            }
          }
        }
      }
    }
  },

But when I use a currency different from my shop currency (I swapped USD to CAD):

{"input": { 
  "lineItems": [{
  "variantId": "gid://shopify/ProductVariant/123456789", 
    "quantity": 1
}],
  "presentmentCurrencyCode": "CAD", 
  "appliedDiscount": {
    "amountWithCurrency": {
      "amount": "10.00",
      "currencyCode": "CAD"
    },
    "value": 10,
    "valueType": "FIXED_AMOUNT"
}}}

I get amounts that add the 1.5% conversion fee:

  "data": {
    "draftOrderCalculate": {
      "calculatedDraftOrder": {
        "appliedDiscount": {
          "value": 7.36,
          "amountSet": {
            "presentmentMoney": {
              "amount": "10.15",
              "currencyCode": "CAD"
            },
            "shopMoney": {
              "amount": "7.47",
              "currencyCode": "USD"
            }
          }
        }
      }
    }
  },
1 Like

Attaching a video highlighting other issues with discrepancies between discount currency and order presentment currency: