Skip to content

Feature Request: Send currencyCode for the Contact when creating Invoices #116

@itscharliecowan

Description

@itscharliecowan

We're creating invoices for clients with varying default currencies (e.g., EUR). The MCP create-invoice tool doesn't pass currencyCode to the Xero API, so invoices default to the organisation's base currency (GBP) rather than the contact's currency.

Current behavior:

Contact is set up with default currency EUR
Invoice created via MCP defaults to GBP

Proposed solution:

Either:

Add currencyCode as an optional parameter to the tool schema
Have the tool look up the contact's DefaultCurrency and pass it automatically

const CreateInvoiceTool = CreateXeroTool(
  "create-invoice",
  "Create an invoice in Xero...",
  {
    contactId: z.string().describe("The ID of the contact..."),
    currencyCode: z.string().describe("Currency code (e.g., EUR, USD). If not specified, could default to contact's currency.").optional(),  // <-- suggested addition
    lineItems: z.array(lineItemSchema),
    type: z.enum(["ACCREC", "ACCPAY"])...,
    // ...
  },

Question: Should the MCP pass this explicitly, or should the Xero API inherit the contact's default currency when CurrencyCode is omitted?

Thanks for a great MCP - loving the progress!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions