Join us for an upcoming Shopify Partner webinar on February 27, 2024. Discover the latest Checkout Extensibility features, and deep dive on improvements to Shopify Functions and Web Pixels. Register now for either the 10am EST or 2pm EST sessions.

[REST API] Unable to create an one time application charge in Euro after setting currency to euro.

Shopify Partner
4 1 1


I'm attempting to create an application charge using the REST Admin API against my development store which is based in Ireland and has euro as it's currency.


The following code works in so far as it creates the charge successfully, has a working confirmation URL and will send the client back to the return URL with the correct charge ID.




const euroCurrency = await new{ session: session });
			euroCurrency.currency = 'EUR';

			const application_charge = new{ session: session }); = `Payment for WAZP+ Invoice Number: ${invoice.invoice_number}`;
			application_charge.currency = euroCurrency;
			application_charge.price = invoice.total_price;
			let returnURL = `${event.url.origin}/billing/return/${returnID}`;
			returnURL = returnURL.replace('http://', 'https://');
			application_charge.return_url = returnURL;
			application_charge.test = true;

				update: true




Before I call, the value of application_charge is: "NewResource {currency: 'EUR'}" and afterwards it updates to: "Currency {0: 'U', 1: 'S', 2: 'D'}".


I've tried setting it to just the string 'EUR' but it's also ignored and the charge comes in as USD, in the price set on the application_charge.


When I fetch the shop's resource, the listed base currency is 'EUR'.


I've attached screenshot of how the charge appears to the merchant and the development store's currency setting.

Screenshot from 2024-01-17 14-42-12.pngScreenshot from 2024-01-17 14-42-59.png


Am I not setting the currency correctly on the application_charge object before saving it? Is this functionality not supported through the REST API and I need to use GraphQL? The docs only mention GraphQL, but the rest API endpoints are there and work to a certain extent. Anyone got any experience or ideas with this?

Replies 2 (2)

Shopify Partner
4 1 1

I found a solution of sorts for my problem. I was able to get the graph QL interface to work to make a charge in EUR. The following code works, this is typescript using the node js client library:


const client = new shopify.clients.Graphql({ session });
			const data = await client.query({
				data: {
					query: `mutation AppPurchaseOneTimeCreate($name: String!, $price: MoneyInput!, $returnUrl: URL!, $test: Boolean) {
                            appPurchaseOneTimeCreate(name: $name, returnUrl: $returnUrl, price: $price, test: $test) {
                                userErrors {
                                appPurchaseOneTime {
					variables: {
						name: `Payment for WAZP+ Invoice Number: ${invoice.invoice_number}`,
						price: {
							amount: invoice.total_price,
							currencyCode: 'EUR'
						returnUrl: returnURL,
						test: true


The other gotcha you need to pass is you need to go to the partner dashboard, select your app > distribution and make it a public app. This wasn't a required step in for the REST API call to work in USD. I'll leave this as unsolved in case someone else has a solution on how to get the REST API to work with EUR currency.

Shopify Staff
2681 288 737

Hi Barry - glad to hear you've found a partial solution, and thanks for coming back to post it! 

Liam | Developer Advocate @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit or the Shopify Web Design and Development Blog