SAP Concur 图标

SAP Concur 费用、发票与采购申请数据 API

SAP SE · 企业办公

SAP Concur 是 SAP SE 的 Fiori 风格 Android 客户端,面向需要用手机拍收据、填费用报表、订行程、申请备用金并审批发票或采购申请的员工。它是 Concur Expense、Concur Travel、Invoice 与 Request 的移动前端,供把 SAP Concur 作为差旅费用系统的企业差旅人、费用代理人和经理使用,覆盖美国、德国、法国与印度市场。当前 Android 版本为 10.34.2。它与 Expensify、Chrome River、Workday Expenses 同台,是 SAP 技术栈上面向中大型差旅项目的选择。

Omni 报表行把 claimedAmount 钉在 approvedAmount 上,并带上每张差旅周报的 reportId、approvalStatus 与 paymentStatus。备用金浮动给出 cashAdvanceId、requestAmount 与 requestCrnCode;供应商账单带出 vendorInvoiceNo、invoiceAmount 与 poNumber;采购申请审批队列列出 id、total 与 hasExceptions。 行程行再补上 itinLocator、recordLocator 以及酒店 dailyRate 与机票 flightNumber。

关账机器人、资金浮动监控与应付匹配会用这些对象把差旅费用对到总账、收回未结备用金并标出未匹配采购订单。openData Studio 把同一批字段变成可调用的开放数据。

应用截图

  • SAP Concur 应用截图 1
  • SAP Concur 应用截图 2
  • SAP Concur 应用截图 3
  • SAP Concur 应用截图 4
  • SAP Concur 应用截图 5
  • SAP Concur 应用截图 6
  • SAP Concur 应用截图 7
  • SAP Concur 应用截图 8

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 签发 OAuth2 访问令牌

    POST /v1/session/token osint

    用授权码或刷新令牌换取 accessToken、refreshToken 以及租户 dataCenterURL,后续费用、发票与支出调用以 Bearer 携带该令牌。

    认证方式: OAuth2 授权码或刷新授权;携带 clientId、redirectURI 与可选 PKCE code_verifier。无需事先 Bearer。

    • accessToken
    • refreshToken
    • dataCenterURL
    • grant_type
    • client_id
    • code
    • redirect_uri
    • code_verifier
    POST /v1/session/token HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Accept: application/json
    
    grant_type=authorization_code&client_id=<clientId>&code=<authCode>&redirect_uri=concur://oauth2/callback&code_verifier=<pkceVerifier>
    {
      "accessToken": "<accessToken>",
      "refreshToken": "<refreshToken>",
      "dataCenterURL": "https://<tenant-region>"
    }
  • 列出 Omni 费用报表

    POST /v1/spend/reports/query openfinance

    返回差旅人 Omni 报表列表,含 reportId、claimedAmount/approvedAmount、approvalStatus、paymentStatus 以及 AI 辅助费用条数。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • reportId
    • name
    • reportDate
    • hasExceptions
    • hasBlockingExceptions
    • isSubmitted
    • isPaymentConfirmed
    • isSentBack
    • isApproved
    • canAddExpense
    • reportType
    • approvalStatus
    • paymentStatus
    • isReopened
    • isPendingDelegatorReview
    • isPendingApproval
    • claimedAmount
    • approvedAmount
    • currencyCode
    • value
    • assistedExpenseCount
    POST /v1/spend/reports/query HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    Content-Type: application/json
    
    {
      "filterByStatus": "UNSUBMITTED",
      "withAI": true,
      "contextType": "TRAVELER"
    }
    {
      "reports": [
        {
          "reportId": "rpt_8c21aa",
          "name": "Berlin week 38",
          "reportDate": "2026-09-18",
          "hasExceptions": false,
          "hasBlockingExceptions": false,
          "isSubmitted": false,
          "isPaymentConfirmed": false,
          "isSentBack": false,
          "isApproved": false,
          "canAddExpense": true,
          "reportType": "REGULAR",
          "approvalStatus": "Not Submitted",
          "paymentStatus": "Not Paid",
          "isReopened": false,
          "isPendingDelegatorReview": false,
          "isPendingApproval": false,
          "approver": {
            "firstName": "Maria",
            "lastName": "Keller",
            "middleInitial": "",
            "preferredName": "Maria"
          },
          "claimedAmount": {
            "currencyCode": "EUR",
            "value": 842.15
          },
          "approvedAmount": {
            "currencyCode": "EUR",
            "value": 0
          },
          "ai": {
            "assistedExpenseCount": 3,
            "assisted": true
          }
        }
      ]
    }
  • 创建差旅人快捷费用

    POST /v1/spend/entries openfinance

    创建差旅人快捷费用,含 expenseTypeId、transactionDate、entryDetails 与 transactionAmount,供随后移入报表。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • expenseTypeId
    • transactionDate
    • entryDetails
    • transactionAmount
    • currencyCode
    • value
    POST /v1/spend/entries HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    Content-Type: application/json
    
    {
      "expenseTypeId": "EXP_MEALS",
      "transactionDate": "2026-09-17",
      "entryDetails": "Customer dinner Berlin",
      "transactionAmount": {
        "currencyCode": "EUR",
        "value": 64.8
      }
    }
    {
      "expenseTypeId": "EXP_MEALS",
      "transactionDate": "2026-09-17",
      "entryDetails": "Customer dinner Berlin",
      "transactionAmount": {
        "currencyCode": "EUR",
        "value": 64.8
      }
    }
  • 列出待批采购申请

    GET /v1/procurement/requests openfinance

    列出审批人队列中待批采购申请,含 id、description、status、total、hasExceptions 与 requestedDate。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • id
    • description
    • status
    • total
    • hasExceptions
    • requestedDate
    • currencyCode
    GET /v1/procurement/requests?view=pending HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "items": [
        {
          "id": "pr_4412",
          "description": "Q4 laptop refresh",
          "status": "PENDING_APPROVAL",
          "total": 4280.0,
          "hasExceptions": false,
          "requestedDate": "2026-09-12",
          "currencyCode": {
            "code": "USD",
            "symbol": "$"
          }
        }
      ]
    }
  • 读取采购申请详情

    GET /v1/procurement/requests/{requestId} openfinance

    为审批人加载单笔采购申请,含 purchaseRequestNumber、total、status 与 hasExceptions。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • id
    • description
    • status
    • total
    • hasExceptions
    • requestedDate
    • currencyCode
    • purchaseRequestNumber
    GET /v1/procurement/requests/pr_4412 HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "id": "pr_4412",
      "description": "Q4 laptop refresh",
      "status": "PENDING_APPROVAL",
      "total": 4280.0,
      "hasExceptions": false,
      "requestedDate": "2026-09-12",
      "currencyCode": {
        "code": "USD",
        "symbol": "$"
      },
      "purchaseRequestNumber": "PR-4412"
    }
  • 列出采购申请行项目

    GET /v1/procurement/requests/{requestId}/lines openfinance

    返回待审批采购申请的行项目,含 id、expenseName、quantity、unitPrice、total 与 neededByDate。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • id
    • currencyCode
    • description
    • expenseType
    • expenseName
    • vendorAddressId
    • quantity
    • unitPrice
    • total
    • neededByDate
    • totalAllocations
    GET /v1/procurement/requests/pr_4412/lines HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "items": [
        {
          "id": "li_01",
          "currencyCode": "USD",
          "description": "ThinkPad T14s",
          "expenseType": "HARDWARE",
          "expenseName": "Laptop",
          "vendorAddressId": "va_88",
          "quantity": 2.0,
          "unitPrice": 2140.0,
          "total": 4280.0,
          "neededByDate": "2026-10-01",
          "totalAllocations": 1
        }
      ]
    }
  • 列出采购申请评论

    GET /v1/procurement/requests/{requestId}/notes opendata

    返回采购申请评论线程,含 commentId、comment、userFormattedName、creationDate 与 latest。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • purchaseRequestId
    • commentId
    • comment
    • userId
    • userFormattedName
    • creationDate
    • latest
    GET /v1/procurement/requests/pr_4412/notes HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    [
      {
        "purchaseRequestId": "pr_4412",
        "commentId": "cmt_19",
        "comment": "Please confirm docking-station SKU",
        "userId": "emp_88",
        "userFormattedName": "Alex Chen",
        "creationDate": "2026-09-13T09:41:00Z",
        "latest": true
      }
    ]
  • 读取采购申请工作流步骤

    GET /v1/procurement/requests/{requestId}/stages opendata

    返回采购申请审批工作流,含 allowedActions、currentSequence、lastStepSequence 与 workflowSteps。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • allowedActions
    • currentSequence
    • exceptionMessage
    • lastStepSequence
    • workflowSteps
    GET /v1/procurement/requests/pr_4412/stages HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "allowedActions": [
        "APPROVE",
        "SEND_BACK"
      ],
      "currentSequence": 2,
      "exceptionMessage": null,
      "lastStepSequence": 4,
      "workflowSteps": [
        {
          "sequence": 1,
          "status": "COMPLETE"
        },
        {
          "sequence": 2,
          "status": "PENDING"
        }
      ]
    }
  • 按 id 读取备用金

    POST /v1/treasury/advances/lookup openbanking

    按 cashAdvanceId 读取备用金头,返回 requestAmount、requestCrnCode、requestDate 与 statKey。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • action
    • method
    • cashAdvanceId
    • caKey
    • caFormKey
    • arKey
    • name
    • requestAmount
    • requestCrnCode
    • requestCrnKey
    • requestDate
    • crnCode
    • crnKey
    • statKey
    POST /v1/treasury/advances/lookup HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    Content-Type: application/json
    
    {
      "action": "CashAdvance",
      "method": "lookupById",
      "cashAdvanceId": "ca_7701"
    }
    {
      "cashAdvance": {
        "arKey": "ar_12",
        "caFormKey": 4,
        "caKey": 7701,
        "cashAdvanceId": "ca_7701",
        "crnCode": "EUR",
        "crnKey": 32,
        "name": "Berlin trip float",
        "requestAmount": 1500.0,
        "requestCrnCode": "EUR",
        "requestCrnKey": 32,
        "requestDate": "2026-09-10",
        "statKey": "PEND"
      }
    }
  • 列出待批发票付款申请

    GET /v1/payables/invoices openfinance

    返回登录审批人待批发票队列,含 vendorInvoiceNo、vendorName、totalAmountDisplay 与 statusName。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • requestId
    • reqKey
    • title
    • vendorName
    • vendorInvoiceNo
    • invoiceDate
    • submitDate
    • totalAmountDisplay
    • crnCode
    • status
    • statusName
    • visibleExceptionsCount
    • hasAllocations
    • apsKey
    • firstName
    • lastName
    GET /v1/payables/invoices HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "items": [
        {
          "requestId": "INV-90821",
          "reqKey": "rk_90821",
          "title": "September SaaS",
          "vendorName": "Acme Cloud GmbH",
          "vendorInvoiceNo": "AC-44190",
          "invoiceDate": "2026-09-01",
          "submitDate": "2026-09-04",
          "totalAmountDisplay": "12840.00",
          "crnCode": "EUR",
          "status": "PAAP",
          "statusName": "Pending Approval",
          "visibleExceptionsCount": 0,
          "hasAllocations": "Y",
          "apsKey": "aps_12",
          "firstName": "Maria",
          "lastName": "Keller"
        }
      ]
    }
  • 读取发票付款申请详情

    GET /v1/payables/invoices/{invoiceId} openfinance

    加载单张发票的头字段:venInvoiceNumber、invoiceAmount、paymentDueDate、poNumber、buyerCostCenter 与 lineItemTotal。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • requestId
    • title
    • venInvoiceNumber
    • invoiceAmount
    • invoiceDate
    • paymentDueDate
    • lineItemTotal
    • total
    • poNumber
    • buyerCostCenter
    • numLineItems
    • totalApprovedAmount
    • transactionId
    GET /v1/payables/invoices/INV-90821 HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "requestId": "INV-90821",
      "title": "September SaaS",
      "venInvoiceNumber": "AC-44190",
      "invoiceAmount": "12840.00",
      "invoiceDate": "2026-09-01",
      "paymentDueDate": "2026-09-30",
      "lineItemTotal": "12840.00",
      "total": "12840.00",
      "poNumber": "PO-22011",
      "buyerCostCenter": "IT-440",
      "numLineItems": 3,
      "totalApprovedAmount": "0.00",
      "transactionId": "txn_90821"
    }
  • 解析收据图片 URL

    GET /v1/imaging/receipts/{imageId} opendata

    把 ExpenseIt / 收据查看器中的收据图片 id 解析为报表分录可拉取的图片 URL。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • id
    • url
    GET /v1/imaging/receipts/img_9aa01 HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "id": "img_9aa01",
      "url": "https://<receipt-store>/receipts/img_9aa01"
    }
  • 获取费用报表 PDF 地址

    GET /v1/spend/reports/{reportId}/export opendata

    按 reportId 与政策键解析可打印的费用报表 PDF 地址。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • reportId
    • polKey
    • url
    GET /v1/spend/reports/rpt_8c21aa/export?polKey=pol_std HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "reportId": "rpt_8c21aa",
      "polKey": "pol_std",
      "url": "https://<document-store>/reports/rpt_8c21aa.pdf"
    }
  • 列出待入账费用

    GET /v1/spend/inbox openfinance

    列出差旅人待入账费用收件箱(收据、卡交易、里程),含 lik、vendor、amount、currency、expenseType 与 cardType,供移入报表前使用。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • lik
    • breed
    • state
    • sortDate
    • imageId
    • expenseType
    • date
    • vendor
    • currency
    • amount
    • location
    • comment
    • cardType
    • pendingCardUpdate
    • smartExpenseId
    • distance
    • routeId
    • carKey
    GET /v1/spend/inbox HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    [
      {
        "lik": "sel_4419",
        "breed": "EXPENSE",
        "state": "READY",
        "sortDate": "2026-09-17T18:04:00Z",
        "imageId": "img_9aa01",
        "expenseType": "Meals",
        "date": "2026-09-17",
        "vendor": "Café Einstein",
        "currency": "EUR",
        "amount": 64.8,
        "location": "Berlin",
        "comment": "Customer dinner",
        "cardType": "CORP",
        "pendingCardUpdate": false,
        "smartExpenseId": "se_118",
        "distance": null,
        "routeId": null,
        "carKey": null
      }
    ]
  • 列出差旅人费用类型

    GET /v1/config/expense-types opendata

    返回差旅人政策下的费用类型目录,含 expenseTypeId、expenseTypeName、spendCategoryCode、showOnMobile 以及参会人编辑开关,供快捷费用与待入账创建流程使用。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • expenseCode
    • expenseTypeId
    • expenseTypeName
    • parentName
    • visibilityCode
    • spendCategoryCode
    • showOnMobile
    • isActive
    • hasChildren
    • parentExpenseTypeId
    • policyId
    • allowEditAttendeeAmount
    • allowEditAttendeeCount
    • allowNoShows
    • description
    • isCategory
    GET /v1/config/expense-types HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    [
      {
        "expenseCode": "MEALS",
        "expenseTypeId": "EXP_MEALS",
        "expenseTypeName": "Meals",
        "parentName": "Food",
        "visibilityCode": "ALWAYS",
        "spendCategoryCode": "MEALS",
        "showOnMobile": true,
        "isActive": true,
        "hasChildren": false,
        "parentExpenseTypeId": null,
        "policyId": "pol_std",
        "adjustedAmountCalculationMethod": null,
        "allowEditAttendeeAmount": true,
        "allowEditAttendeeCount": true,
        "allowNoShows": false,
        "description": "Business meals",
        "isCategory": false
      }
    ]
  • 列出差旅人费用政策

    GET /v1/config/policies opendata

    返回差旅人费用政策,含 policyId、policyName、默认标记、reportFormId 与 workflowProcessId,用于约束报表创建与提交。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • reportFormId
    • policyId
    • policyName
    • isDefault
    • workflowProcessId
    • receiptImaging
    GET /v1/config/policies HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    [
      {
        "reportFormId": "form_exp",
        "policyId": "pol_std",
        "policyName": "Standard US T&E",
        "isDefault": true,
        "workflowProcessId": "wf_exp_std",
        "receiptImaging": {
          "required": true
        }
      }
    ]
  • 运行差旅人费用助手

    POST /v1/spend/assistant/run opendata

    运行差旅人费用助手(CALENDAR、TRIP 或 PROMPT),返回匹配的 SmartExpense 行,含 creditCardTransactionId、quickExpenseId、isAutoCreated 与关联收据。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • assistant
    • creditCardTransactionId
    • personalCardTransactionId
    • quickExpenseId
    • isAutoCreated
    • trip
    • receipts
    POST /v1/spend/assistant/run HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    Content-Type: application/json
    
    {
      "assistant": "CALENDAR"
    }
    {
      "creditCardTransactionId": "cct_9012",
      "personalCardTransactionId": null,
      "quickExpenseId": "qe_441",
      "isAutoCreated": true,
      "trip": {
        "tripId": "tr_Berlin38"
      },
      "receipts": [
        {
          "imageId": "img_9aa01"
        }
      ]
    }
  • 列出差旅人行程

    GET /v1/travel/trips opendata

    返回差旅人即将出行与历史行程列表,含 tripName、itinLocator、cityCode、recordLocator 以及本地起止日期,供 Fiori 行程列表使用。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • tripName
    • tripStartDate
    • tripEndDate
    • itinLocator
    • tripLocator
    • cliqbookTripId
    • city
    • cityCode
    • recordLocator
    • startDateLocal
    • endDateLocal
    • latitude
    • longitude
    • clientLocator
    GET /v1/travel/trips HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "trips": [
        {
          "tripName": "Berlin week 38",
          "tripStartDate": "2026-09-15",
          "tripEndDate": "2026-09-19",
          "itinLocator": "itin_berlin38",
          "tripLocator": "trl_8c21",
          "cliqbookTripId": "cb_44190",
          "city": "Berlin",
          "cityCode": "BER",
          "recordLocator": "ABC123",
          "startDateLocal": "2026-09-15T08:10:00",
          "endDateLocal": "2026-09-19T18:40:00",
          "latitude": "52.5200",
          "longitude": "13.4050",
          "clientLocator": "cl_berlin38"
        }
      ]
    }
  • 读取单份行程单 V2

    POST /v1/travel/itineraries/lookup opendata

    按 itinLocator/tripLocator 加载单份行程单,含 tripUUID、recordLocator、机票航段(flightNumber、confirmationNumber、seat)与酒店航段(checkin、checkout、dailyRate)。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • itinLocator
    • tripUUID
    • tripName
    • recordLocator
    • cliqbookTripId
    • cityCode
    • state
    • startDateLocal
    • endDateLocal
    • bookings
    • flightNumber
    • confirmationNumber
    • startCityCode
    • endCityCode
    • classOfService
    • seat
    • hotel
    • checkin
    • checkout
    • dailyRate
    POST /v1/travel/itineraries/lookup HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    Content-Type: application/json
    
    {
      "itinLocator": "itin_berlin38",
      "tripLocator": "trl_8c21",
      "t2TripId": "t2_44190",
      "forApprover": false
    }
    {
      "itinLocator": "itin_berlin38",
      "tripUUID": "t2_44190",
      "tripName": "Berlin week 38",
      "recordLocator": "ABC123",
      "cliqbookTripId": "cb_44190",
      "cityCode": "BER",
      "state": "CONFIRMED",
      "startDateLocal": "2026-09-15T08:10:00",
      "endDateLocal": "2026-09-19T18:40:00",
      "bookings": [
        {
          "air": {
            "flightNumber": "LH184",
            "confirmationNumber": "LH-9AA01",
            "startCityCode": "FRA",
            "endCityCode": "BER",
            "classOfService": "Y",
            "seat": "12A",
            "vendorName": "Lufthansa"
          },
          "hotel": {
            "hotel": "Hotel Adlon",
            "confirmationNumber": "ADL-22011",
            "checkin": "2026-09-15",
            "checkout": "2026-09-19",
            "dailyRate": "240.00",
            "vendor": "Kempinski"
          }
        }
      ]
    }
  • 列出待批费用报表

    GET /v1/approvals/reports openfinance

    返回经理待批费用报表队列,含 employeeName、totalClaimedAmount、totalPostedAmount、crnCode、hasException 与 polKey。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • reportName
    • employeeName
    • reportDate
    • submitDate
    • totalClaimedAmount
    • totalPostedAmount
    • crnCode
    • hasException
    • everSentBack
    • polKey
    • purpose
    • receiptImageAvailable
    • pdfUrl
    • apsKey
    • processInstanceKey
    • severityLevel
    GET /v1/approvals/reports HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "items": [
        {
          "reportName": "Berlin week 38",
          "employeeName": "Alex Chen",
          "reportDate": "2026-09-18",
          "submitDate": "2026-09-19",
          "totalClaimedAmount": 842.15,
          "totalPostedAmount": 842.15,
          "crnCode": "EUR",
          "hasException": "N",
          "everSentBack": false,
          "polKey": "pol_std",
          "purpose": "Customer meetings",
          "receiptImageAvailable": true,
          "pdfUrl": "https://<document-store>/reports/rpt_8c21aa.pdf",
          "apsKey": "aps_44",
          "processInstanceKey": "pi_8821",
          "severityLevel": "NONE"
        }
      ]
    }
  • 读取首页待办计数摘要

    GET /v1/home/badges opendata

    返回 Fiori 首页角标计数:登录用户待批的报表/发票/采购申请/行程,以及 unsubmittedReportsTotal 与卡交易条数。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • reportsToApproveCount
    • invoicesToApproveCount
    • purchaseRequestsToApproveCount
    • tripsToApproveCount
    • travelRequestApprovalCount
    • unsubmittedReportsCount
    • unsubmittedReportsTotal
    • unsubmittedReportsCrnCode
    • corporateCardTransactionCount
    • personalCardTransactionCount
    • receiptCaptureCount
    • mobileEntryCount
    • invoicesToSubmitCount
    GET /v1/home/badges?includeSubmitted=true HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "reportsToApproveCount": 4,
      "invoicesToApproveCount": 2,
      "purchaseRequestsToApproveCount": 1,
      "tripsToApproveCount": 1,
      "travelRequestApprovalCount": 0,
      "unsubmittedReportsCount": 3,
      "unsubmittedReportsTotal": 1842.15,
      "unsubmittedReportsCrnCode": "EUR",
      "corporateCardTransactionCount": 7,
      "personalCardTransactionCount": 1,
      "receiptCaptureCount": 5,
      "mobileEntryCount": 2,
      "invoicesToSubmitCount": 0
    }
  • 列出待批行程

    GET /v1/approvals/trips opendata

    返回登录审批人待批行程,含 tripName、travellerName、totalTripCost、approvalStatus、approvalDeadline 与 approvalMode。

    认证方式: 使用会话签发接口返回的 accessToken,以 Bearer 发送;租户路由跟随 dataCenterURL。

    • tripName
    • travellerName
    • totalTripCost
    • approvalRequired
    • approvalStatus
    • approvalDeadline
    • approvalMode
    • approverComments
    • actionedAt
    • itinLocator
    • validApprovers
    • redirectUrl
    GET /v1/approvals/trips HTTP/1.1
    Authorization: Bearer <accessToken>
    Accept: application/json
    {
      "trips": [
        {
          "tripName": "Berlin week 38",
          "travellerName": "Alex Chen",
          "totalTripCost": "1840.00 EUR",
          "approvalRequired": true,
          "approvalStatus": "PENDING",
          "approvalDeadline": "2026-09-12T17:00:00Z",
          "approvalMode": "MANAGER",
          "approverComments": null,
          "actionedAt": null,
          "itinLocator": "itin_berlin38",
          "validApprovers": [
            "mgr_12"
          ],
          "redirectUrl": "https://<tenant-region>/trips/itin_berlin38"
        }
      ]
    }

数据类别

  • 费用报表
  • 备用金
  • 发票
  • 采购申请
  • 采购申请评论
  • 审批工作流
  • 收据
  • 待入账费用
  • 费用类型
  • 费用政策
  • 费用助手
  • 行程
  • 行程单
  • 待批费用报表
  • 首页待办计数

数据使用场景与案例

  • 差旅费用关账对总账

    夜间作业按 reportId 拉取 Omni 报表的 claimedAmount.value、approvedAmount.value、approvalStatus 与 paymentStatus,再按差旅人与 reportDate 匹配到 SAP 或 Oracle 凭证行。

  • 备用金浮动监控

    资金部门跟踪 cashAdvanceId 行的 requestAmount、requestCrnCode 与 statKey,在对应费用报表支付后收回未结浮动。

  • 应付发票与采购订单匹配

    应付会计读取 vendorInvoiceNo、vendorName、invoiceAmount、paymentDueDate、poNumber 与 lineItemTotal,在付款前标出未匹配的供应商账单。

  • 采购申请审批台

    采购机器人按 id、total、hasExceptions 与 purchaseRequestNumber 翻阅 PURCH_APRVR 队列,把笔记本与服务申请从手机队列清入采购订单系统。

常见问题

SAP Concur 暴露哪些费用报表字段?

Omni 报表调用返回 reportId、name、reportDate、claimedAmount 与 approvedAmount(各含 currencyCode 与 value),以及 approvalStatus、paymentStatus、hasExceptions 与 isSubmitted。待入账收件箱行在入表前还提供 lik、vendor、amount 与 cardType。

发票与采购申请有哪些字段?

发票审批列表含 vendorInvoiceNo、vendorName、totalAmountDisplay、invoiceDate 与 statusName;详情头补充 venInvoiceNumber、invoiceAmount、paymentDueDate、poNumber 与 buyerCostCenter。审批人队列中的待批采购申请带 id、total、hasExceptions、requestedDate 与 purchaseRequestNumber。

备用金金额在哪里?

备用金查询返回单笔备用金的 cashAdvanceId、requestAmount、requestCrnCode、requestDate、name 与 statKey。

行程与行程单有哪些字段?

行程列表返回 tripName、itinLocator、cityCode 与 recordLocator。行程单详情补充 tripUUID、机票 flightNumber/confirmationNumber/seat 以及酒店 checkin、checkout 与 dailyRate。行程审批队列列出待批行程的 travellerName、totalTripCost 与 approvalDeadline。

与 SAP Concur 相似的应用

  • Expensify — Expensify 是波特兰的费用管理公司,产品覆盖收据采集、费用报表、报销、应用内差旅预订以及企业卡。
  • Workday — Workday Travel & Expenses 让员工在同一套 Workday 人事与财务平台上采集收据、预订行程并提交费用报表。
  • Navan — Navan(原 TripActions)是帕洛阿尔托的企业差旅公司,平台把行程预订、企业卡、费用报销与分析合在一起。
  • Emburse Enterprise — Emburse Enterprise(原 Chrome River)面向大型企业,用来跨主体、地区和系统管理费用与发票工作流。
  • Ramp — Ramp 是支出管理软件,发放带政策控制的企业卡,刷卡时采集收据,并自动生成费用报表与报销。
  • Zoho Expense — Zoho Expense 是 Zoho 的差旅费用产品,可采集收据、生成报表、走审批,并在同一系统内按政策预订行程。
  • Rydoo — Rydoo 是欧洲费用管理软件,提供收据扫描、按政策审批、卡对账与报销,并公布了与 SAP 的对接。
  • Brex — Brex 是费用管理软件,在企业卡、账单支付、差旅与报销上自动执行额度,并为每笔交易生成收据和备注。

相关主题

  • SAP Concur API
  • Concur 费用 reportId
  • Concur claimedAmount
  • Concur cashAdvanceId
  • Concur vendorInvoiceNo
  • Concur 采购申请 total
  • Concur expenseTypeId
  • Concur 待入账 lik
  • Concur itinLocator
  • Concur recordLocator
  • Concur flightNumber

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价