SAP Concur Imaging Web服务允许客户端管理附加到费用报告的收据图像和附加到发票的图像。客户端可以通过reporttid、图像ID或invoiceID检索现有图像,并将新图像上载到用户、费用条目、报告或发票。

Imaging web服务支持以下图像格式:

  • 应用程序/ pdf没有加密或密码保护。
  • 图像/ jpg
  • 图像/ jpeg
  • / png图像

最大文件大小为10mb。

使用范围

的名字 描述 端点
图像 添加或检索报告和行项目图像。 GET、POST

产品的限制

SAP Concur产品是高度可配置的,并不是所有客户都可以访问所有特性。

在评审过程之前,合作开发人员必须确定他们的解决方案需要哪些配置。

现有客户端可以使用SAP Concur Advantage Technical Services创建使用其配置的自定义应用程序。

发布一个图像

请求

URI

模板
https://www.concursolutions.com/api/image/v1.0/receipt https://www.concursolutions.com/api/image/v1.0/expenseentry/entryIdhttps://www.concursolutions.com/api/image/v1.0/invoice/requestIdhttps://www.concursolutions.com/api/image/v1.0/report/reportId
参数

要求:这些参数中的一个总是必需的。

的名字 类型 格式 描述
收据 字符串 - 上传收据图像并将其与OAuth消费者关联。用户可以在SAP Concur的收款管理部分查看图像。
entryReceiptID / {entryReceiptID} 字符串 - 获取一个短时间的URL(15分钟ttl),可以通过渲染该URL来获取收据图像。
expenseentry / {entryID} 字符串 - 上传收据图像,并将其与与提供的条目ID匹配的费用条目关联起来。一旦将图像附加到条目,就不能追加其他图像。
发票/ {requestID} 字符串 - 上传发票图像,并将其与与提供的请求ID匹配的发票相关联。每个发票都由请求ID值惟一地标识。一旦将图像附加到发票上,就不能再附加其他图像。使用此端点需要Concur Invoice产品。目前,您必须使用Invoice用户界面来获取请求ID值。
报告/ {reportID} 字符串 - 上传收据图像,并将其与与提供的报告ID匹配的报告关联。如果报表映像已经存在,则新映像将附加到现有映像。

  • RFC 7235授权(必选)-有效的SAP Concur用户的授权头带有OAuth令牌。在此请求的OAuth过程中进行身份验证的SAP Concur用户必须是与此映像相关联的用户,或者在SAP Concur中具有以下用户角色之一:Professional的Company Administrator或Web Services Administrator,或者Standard的Can Administrator。这些管理角色允许用户管理整个公司的数据。
  • RFC 7231内容类型
    • 应用程序/ pdf图像/ jpg图像/ jpeg/ png图像
  • 内容长度RFC 7230

有效载荷

包含图像数据的字节数组。

响应

状态码

有效载荷

例子

请求

此示例包含图像的截断(请参阅省略号)64位编码字符串表示,仅用于演示目的。这个例子演示了一个可用的端点。

POST https://www.concursolutions.com/api/image/v1.0/receipt授权:OAuth令牌内容长度:65536内容类型:图像/jpeg
/ 9 j / 4 aaqskzjrgabaqeayadiaad / 2 wbdaaggbgcgbqghbwcjcqgkdbqndasldbksew8uhrofhh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL / 2 wbdaqkjcqwldbgndrgyirwhmjiymjiy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL / wAARCAkiBqQDASIA AhEBAxEB / 8 qahwaaaqubaqebaqeaaaaaaaaaaaecawqfbgcicqol / 8 qatraaagedawieawufbaqaAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4 + Tl5ufo6erx8vP09fb3 + Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL / 8 qatreaagecbaqdbacfbaqaaqj3aaecaxee……

响应

HTTP/1.1 201创建的内容类型:应用程序/xml
<图片xmlns =“http://www.concursolutions.com/api/image/2011/02”xmlns:我=“http://www.w3.org/2001/XMLSchema-instance”><标识>aBcDeMwbl34xnwdkUw5ZjDsggDl2 pyoy31 pnGaHAywmPrpbAmE美元< / Id >< Url/>> < /形象

获取图像URL

检索到以下图像的URL:

  • 收据
  • 费用条目
  • 发票
  • 费用报告(PDF)
    • 如果收据已上传到特定的费用分录,它们将在报告级别上被打包成一个PDF。

该URL在请求后的15分钟内有效。

请求

URI

模板
https://www.concursolutions.com/api/image/v1.0/receipt/imageIdhttps://www.concursolutions.com/api/image/v1.0/expenseentry/entryIdhttps://www.concursolutions.com/api/image/v1.0/invoice/requestIdhttps://www.concursolutions.com/api/image/v1.0/report/imageId
参数
的名字 类型 格式 描述
收据/ {imageId} 字符串 - 所需的接收的{关键字}/{标识符}。
expenseentry / {entryID} 字符串 - 所需费用条目的{关键字}/{标识符}。中的entryId返回RpeKeyExpenseEntry部分来自费用报告详细内容v1.1API。
发票/ {requestID} 字符串 - 所需支付请求的{关键字}/{标识符}。使用此端点需要Concur Invoice产品。目前,您必须使用Invoice用户界面来获取请求ID值。
报告/ {imageId} 字符串 - 需要的报告的{关键字}/{标识符}。

  • RFC 7235授权包含有效SAP Concur用户的OAuth令牌。OAuth消费者必须是附加图像的报告的所有者。
  • RFC 7231接受应用程序/ xml

有效载荷

没有一个

响应

状态码

有效载荷

例子

请求

这个例子演示了一个可用的端点。

GET /api/image/v1.0/expenseentry/A2C40CEE415B43B2A0BE授权:OAuth令牌接受:application / xml

响应

内容类型:application/xml
<图片xmlns =“http://www.concursolutions.com/api/image/2011/02”xmlns:我=“http://www.w3.org/2001/XMLSchema-instance”><标识>A2C40CEE415B43B2A0BE< / Id >< Url >https://api.example.com/getImage?cid=able999999,val = F9B35244G86< / Url >> < /形象

模式

图像

Image模式提供关于系统内映像的元数据。

的名字 类型 格式 描述
Id 字符串 - 图像的唯一标识符。
Url 字符串 - 图像的URL。注意,特殊字符是xml编码的。在使用链接之前,您需要对任何特殊字符进行解码。该元素在上传图片时为空。

c#代码示例

下面的c#示例演示了如何将源图像文件作为字节数组读取,并将该数据传递到请求中。

HttpWebRequest请求HttpWebRequestWebRequest创建url);请求方法“职位”请求ContentType“应用程序/ pdf”请求添加“授权”签名);使用文件流fs文件流pathToImageFileFileMode开放FileAccess))使用主题br主题fs))字节[]图像brReadBytes((intfs长度);请求ContentLength图像长度ds请求GetRequestStream();ds图像0图像长度);ds关闭();HttpWebResponsewebresponse请求GetResponse();