You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于通过Xero API指定模板发送带PDF附件发票邮件的问询

问题

我尝试用POST端点 https://api.xero.com/api.xro/2.0/Invoices/aa682059-c8ec-44b9-bc7f-344c94e1ffae/Email 发送指定发票的邮件,但这个端点不支持设置邮件模板、attachPDF等参数。我想知道能不能通过API实现以下请求载荷里的需求:

{
  "attachPDF": true,
  "includeFiles": false,
  "message": "message",
  "selectedTemplateID": "c650159c-aa16-44a8-a17f-74f9ec3da916",
  "sendMeACopy": false,
  "subject": "Invoice INV-0047",
  "to": [{ "address": "email@demo.com", "name": "DEMO" }]
}
解决方案

你用的这个直接发送发票邮件的端点确实不支持这些参数,但可以通过组合Xero的其他API操作来实现需求:

步骤1:获取发票PDF文件

调用GET /Invoices/{InvoiceID}/PDF端点获取目标发票的PDF二进制数据,保存为临时文件。请求示例:

GET https://api.xero.com/api.xro/2.0/Invoices/aa682059-c8ec-44b9-bc7f-344c94e1ffae/PDF
Authorization: Bearer [你的访问令牌]
Accept: application/pdf

步骤2:使用EmailMessages API发送带模板和附件的邮件

通过POST /EmailMessages端点构建并发送邮件,这里可以指定邮件模板ID、附加刚才获取的PDF、设置收件人、主题和邮件内容等参数。请求载荷需要调整为符合该端点的格式,大致示例:

{
  "To": [
    {
      "Address": "email@demo.com",
      "Name": "DEMO"
    }
  ],
  "Subject": "Invoice INV-0047",
  "Body": "message",
  "BrandingThemeID": "c650159c-aa16-44a8-a17f-74f9ec3da916",
  "Attachments": [
    {
      "FileName": "Invoice-INV-0047.pdf",
      "MimeType": "application/pdf",
      "Content": "[Base64编码的PDF文件内容]"
    }
  ],
  "SendMeACopy": false,
  "LinkedTransactions": [
    {
      "TransactionID": "aa682059-c8ec-44b9-bc7f-344c94e1ffae",
      "TransactionType": "ACCREC"
    }
  ]
}

关键注意点:

  • BrandingThemeID对应你原来的selectedTemplateID,需确保该ID是有效的品牌模板ID
  • 附件内容必须转成Base64编码后填入Content字段
  • LinkedTransactions用来关联邮件与目标发票,确保两者关联关系正确

额外说明

如果需要更贴近原需求的简化操作,也可以先创建邮件草稿(调用POST /EmailMessages时不立即发送),确认后再触发发送,但核心逻辑还是通过EmailMessages API实现模板和附件的配置。

内容的提问来源于stack exchange,提问作者Martin Zhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:42:28