From 19494592fed380fee7e14310edda2e6d229d264e Mon Sep 17 00:00:00 2001
From: RoseWyatt <157659310+RoseWyatt@users.noreply.github.com>
Date: Sun, 13 Apr 2025 19:19:13 -0700
Subject: [PATCH 1/7] Update v4.expense-events.md
---
src/event-topics/expense/v4.expense-events.md | 234 +++++++++++++-----
1 file changed, 169 insertions(+), 65 deletions(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index 0b562643cf..bd3c290f59 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -28,6 +28,14 @@ This section lists all the publicly available events.
The `reportCreated` event is intended to be published when a new expense report has been created.
+### Report Updated Event
+
+The `reportUpdated` event is published when an expense report is updated.
+
+### Report Deleted Event
+
+The `reportDeleted` event is published when an expense report is deleted.
+
### Report Status Changed Event
The `statusChanged` event is intended to publish a message whenever the status of an expense report changes as it traverses the approval workflow during its life cycle. Subscribers of the event are able to leverage the data in the message to perform synchronous or asynchronous actions depending on their business processes. For example, this could trigger an application to make API calls to Concur Expense or start of a process in a third party application.
@@ -53,70 +61,117 @@ In addition to the above, any workflow step configured for notifications by the
## Schema
-### reportCreated Event Schema
-
-Name|Type|Format|Description
----|---|---|---
-`id`|`UUID`|RFC 4122|**Required** Randomly generated unique identifier of this event.
-`correlationId`|`UUID`|RFC 4122|**Required** Unique identifier used for logging/traceability.
-`topic`|`String`|`Enum`|**Required** Identifies the topic that the event belongs to `public.concur.expense.report`.
-`eventType`|`String`|`String`|**Required** Event Type: `reportCreated` - Identifies the event type on the topic.
-`subtopic`|`String`|`Alphanumeric`|**Required** Unique identifier of the expense report whose status has changed. Maximum characters: 20, which is also populated as `reportId`.
-`timeStamp`|`timeStamp`|RFC 3339|**Required** Current system time (UTC) when the event notification is issued.
-`route`|`String`|`String`|For internal use. This will be set to stable.
-`facts`|`Map`| [facts schema](#report-created-event-payload-facts-schema) |**Required** Key-value pairs providing the content of the event.
-
-### reportCreated Facts Schema
-
-Name|Type|Format|Description
----|---|---|---
-`companyId`|`UUID`| RFC 4122| **Required** Company unique identifier from profile service.
-`userId`|`UUID` | RFC 4122| The unique identifier of the report creator unless a delegate or proxy is involved. In these instances, it will be the user for which the report is being created (i.e., the report owner).
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details.
-`actingUserId`|`UUID`| RFC 4122| User unique identifier. If a delegate or expense proxy created the report on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details.
-`reportId`| `String` | `Alphanumeric` | **Required** Unique identifier of the newly created expense report. Maximum characters: 20
-`reportType`| `String` | `Enum`| **Required** This value identifies the method used to create the report. Supported values:
Regular,
Reconciliation,
Statement,
AutoCreated|
-`href`| `string` | RFC 3986| URI of the report resource that can be called via the Expense v4 API.
-`lastModifiedDate`| `timeStamp` | RFC 3339 |**Required** Current system time (UTC) when the event notification is issued.
-
-
-### statusChanged Event Schema
-
-Name|Type|Format|Description
----|---|---|---
-`id`|`UUID`|RFC 4122|**Required** Randomly generated unique identifier of this event.
-`correlationId`|`UUID`|RFC 4122|**Required** Unique identifier used for logging/traceability.
-`topic`|`String`|`Enum`|**Required** Identifies the topic that the event belongs to `public.concur.expense.report`.
-`eventType`|`String`|`String`|**Required** Event Type: `statusChanged` - Identifies the event type on the topic.
-`subtopic`|`String`|`Alphanumeric`|**Required** Unique identifier of the expense report whose status has changed. Maximum characters: 20, which is also populated as `reportId`.
-`timeStamp`|`timeStamp`|RFC 3339|**Required** Current system time (UTC) when the event notification is issued.
-`route`|`String`|`String`|For internal use. This will be set to stable.
-`facts`|`Map`| [facts schema](#status-changed-event-payload-facts-schema) |**Required** Key-value pairs providing the content of the event.
-
-### statusChanged Facts Schema
-
-Name|Type|Format|Description
----|---|---|---
-`companyId`|`UUID`| RFC 4122| **Required** Company unique identifier from profile service.
-`userId`|`UUID` | RFC 4122| The unique identifier of the focus SAP Concur user in the change action. In the case of a report submittal, then this will be the report owner. In the case of any other workflow action, then this will be the appropriate manager/approver/processor. It will NOT reflect a delegate or proxy user who might have executed the action on behalf of the focus user - see actingUserId.
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details.
-`actingUserId`|`UUID`| RFC 4122| User unique identifier. If a delegate or expense proxy performed the action on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details.
-`reportId`| `String` | `Alphanumeric` | **Required** Unique identifier of the expense report whose status has changed. Maximum characters: 20
-`previousApprovalStatus`| `String` | `Enum`| **Required** Unique identifier of the previous approval status of the expense report whose status has changed. Supported values:
Not Submitted - `A_NOTF`,
Sent Back to Employee - `A_RESU`,
Recalled by Employee - `A_RESU`,
Submitted & Pending Approval - `A_PEND`,
Approved - `A_APPR`,
Pending External Validation - `A_EXTV`,
Pending Budget Approval - `A_PBDG`,
Pending Cost Object Approval - `A_PECO`,
Approved & In Accounting Review - `A_ACCO`
-`currentApprovalStatus`| `String` | `Enum`| **Required** Unique identifier of the current approval status of the expense report whose status has changed. Supported values:
Sent Back to Employee - `A_RESU`,
Recalled by Employee: `A_RESU`,
Submitted & Pending Approval: `A_PEND`,
Approved: `A_APPR`,
Pending External Validation: `A_EXTV`,
Pending Budget Approval: `A_PBDG`,
Pending Cost Object Approval: `A_PECO`,
Approved & In Accounting Review: `A_ACCO`
-`previousPaymentStatus`| `String` | `Enum`| **Required** Unique identifier of the previous payment status of the expense report whose status has changed. Supported values:
Not Paid - `P_NOTP`,
Processing Payment - `P_PROC`,
Payment Confirmed - `P_PAYC` (may depend on configuration)
-`currentPaymentStatus`| `String` | `Enum`| **Required** Unique identifier of the current payment status of the expense report whose status has changed. Supported values:
Not Paid - `P_NOTP`,
Processing Payment -`P_PROC`,
Paid - `P_PAID`,
Payment Confirmed - `P_PAYC`(may depend on configuration) |
-`reportType`| `String` | `Enum`| **Required** This value identifies the method used to create the report. Supported values:
Regular,
Reconciliation,
Statement,
AutoCreated|
-`stepCode`| `String` | `Enum`| Code provided by the admin that the client can use to differentiate between the steps.
Report Submit - If the target step (the next workflow step that the report stops at) is not configured for notifications, then step code will be `NULL`.
Report Send Back - `SENDBACK`
Report Recall - `RECALL`
Legacy External validation post submit - `EXTVAL`
Legacy External validation pre-extract - `EXTVAL`
Report Paid - If the target step (the next workflow step that the report stops at) is not configured for notifications, then step code will be `PAIDREPORT`.
All other cases code step code as configured by admin in workflow configuration will be populated.
-`href`| `string` | RFC 3986| URI of the report resource that can be called via the Expense v4 API.
-`lastModifiedDate`| `timeStamp` | RFC 3339 |**Required** Current system time (UTC) when the event notification is issued.
-`processId`| `String` |-| **Required** Unique identifier of the workflow process that this workflow is an instance of.
-`startingStep`| `Object` |-| **Required** Object containing the information of the step(s) the expense report is entering into.
-`startingStep.roleCode`| `String` | `String` | **Required** Approver's role code for the step which the expense report is entering into.
-`startingStep.stepInstances`| `Array` |-| **Required** List of step instances which the expense report is entering into.
-`stepInstances.id`| `String` |-| **Required** Unique identifier of the workflow process step instance which report is entering into.
-`stepInstances.assignedUserId`| `UUID`| RFC 4122| **Required** Unique identifier of the User assigned to approve the report.
-
-## Sample Events
-### reportCreated
+### Report Created Event Schema
+
+| Name | Type | Format | Description |
+|-----------------|-------------|------------------------------------------------------------|---------------------------------------------------------------------------------------------|
+| `id` | `UUID` | RFC 4122 | **Required** Randomly generated unique identifier of this event. |
+| `correlationId` | `UUID` | RFC 4122 | **Required** Unique identifier used for logging/traceability. |
+| `route` | `String` | `String` | For internal use. This will be set to stable. |
+| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
+| `eventType` | `String` | `String` | **Required** Event Type: `reportCreated` - Identifies the event type on the topic. |
+| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `facts` | `Map` | [facts schema](#report-created-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
+
+### Report Created Facts Schema
+
+| Name | Type | Format | Description |
+|--------------------|-------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `companyId` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `userId` | `UUID` | RFC 4122 | The unique identifier of the report creator unless a delegate or proxy is involved. In these instances, it will be the user for which the report is being created (i.e., the report owner).
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details. |
+| `actingUserId` | `UUID` | RFC 4122 | User unique identifier. If a delegate or expense proxy created the report on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details. |
+| `reportId` | `String` | `Alphanumeric` | **Required** Unique identifier of the newly created expense report. Maximum characters: 20 |
+| `reportType` | `String` | `Enum` | **Required** This value identifies the method used to create the report. Supported values:
Regular,
Reconciliation,
Statement,
AutoCreated |
+| `lastModifiedDate` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `href` | `string` | RFC 3986 | URI of the report resource that can be called via the Expense v4 API. |
+
+### Report Updated Event Schema
+
+| Name | Type | Format | Description |
+|-----------------|-------------|------------------------------------------------------------|---------------------------------------------------------------------------------------------|
+| `id` | `UUID` | RFC 4122 | **Required** Randomly generated unique identifier of this event. |
+| `correlationId` | `UUID` | RFC 4122 | **Required** Unique identifier used for logging/traceability. |
+| `route` | `String` | `String` | For internal use. This will be set to stable. |
+| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
+| `eventType` | `String` | `String` | **Required** Event Type: `reportUpdated` - Identifies the event type on the topic. |
+| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `facts` | `Map` | [facts schema](#report-updated-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
+
+### Report Updated Facts Schema
+
+| Name | Type | Format | Description |
+|--------------------|-------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `companyId` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `userId` | `UUID` | RFC 4122 | The unique identifier of the report creator unless a delegate or proxy is involved. In these instances, it will be the user for which the report is being created (i.e., the report owner).
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details. |
+| `actingUserId` | `UUID` | RFC 4122 | User unique identifier. If a delegate or expense proxy created the report on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details. |
+| `reportId` | `String` | `Alphanumeric` | **Required** Unique identifier of the newly created expense report. Maximum characters: 20 |
+| `lastModifiedDate` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `href` | `string` | RFC 3986 | URI of the report resource that can be called via the Expense v4 API. |
+
+### Report Deleted Event Schema
+
+| Name | Type | Format | Description |
+|-----------------|-------------|------------------------------------------------------------|---------------------------------------------------------------------------------------------|
+| `id` | `UUID` | RFC 4122 | **Required** Randomly generated unique identifier of this event. |
+| `correlationId` | `UUID` | RFC 4122 | **Required** Unique identifier used for logging/traceability. |
+| `route` | `String` | `String` | For internal use. This will be set to stable. |
+| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
+| `eventType` | `String` | `String` | **Required** Event Type: `reportUpdated` - Identifies the event type on the topic. |
+| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `facts` | `Map` | [facts schema](#report-deleted-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
+
+### Report Deleted Facts Schema
+
+| Name | Type | Format | Description |
+|--------------------|-------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `companyId` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `userId` | `UUID` | RFC 4122 | The unique identifier of the report creator unless a delegate or proxy is involved. In these instances, it will be the user for which the report is being created (i.e., the report owner).
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details. |
+| `actingUserId` | `UUID` | RFC 4122 | User unique identifier. If a delegate or expense proxy created the report on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details. |
+| `reportId` | `String` | `Alphanumeric` | **Required** Unique identifier of the newly created expense report. Maximum characters: 20 |
+| `lastModifiedDate` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+
+### Report Status Changed Event Schema
+
+| Name | Type | Format | Description |
+|-----------------|-------------|------------------------------------------------------------|---------------------------------------------------------------------------------------------|
+| `id` | `UUID` | RFC 4122 | **Required** Randomly generated unique identifier of this event. |
+| `correlationId` | `UUID` | RFC 4122 | **Required** Unique identifier used for logging/traceability. |
+| `route` | `String` | `String` | For internal use. This will be set to stable. |
+| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
+| `eventType` | `String` | `String` | **Required** Event Type: `statusChanged` - Identifies the event type on the topic. |
+| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `facts` | `Map` | [facts schema](#status-changed-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
+
+### Report Status Changed Facts Schema
+
+| Name | Type | Format | Description |
+|--------------------------------|-------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `companyId` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
+| `userId` | `UUID` | RFC 4122 | The unique identifier of the focus SAP Concur user in the change action. In the case of a report submittal, then this will be the report owner. In the case of any other workflow action, then this will be the appropriate manager/approver/processor. It will NOT reflect a delegate or proxy user who might have executed the action on behalf of the focus user - see actingUserId.
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details. |
+| `actingUserId` | `UUID` | RFC 4122 | User unique identifier. If a delegate or expense proxy performed the action on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details. |
+| `reportId` | `String` | `Alphanumeric` | **Required** Unique identifier of the expense report whose status has changed. Maximum characters: 20 |
+| `previousApprovalStatus` | `String` | `Enum` | **Required** Unique identifier of the previous approval status of the expense report whose status has changed. Supported values:
Not Submitted - `A_NOTF`,
Sent Back to Employee - `A_RESU`,
Recalled by Employee - `A_RESU`,
Submitted & Pending Approval - `A_PEND`,
Approved - `A_APPR`,
Pending External Validation - `A_EXTV`,
Pending Budget Approval - `A_PBDG`,
Pending Cost Object Approval - `A_PECO`,
Approved & In Accounting Review - `A_ACCO` |
+| `currentApprovalStatus` | `String` | `Enum` | **Required** Unique identifier of the current approval status of the expense report whose status has changed. Supported values:
Sent Back to Employee - `A_RESU`,
Recalled by Employee: `A_RESU`,
Submitted & Pending Approval: `A_PEND`,
Approved: `A_APPR`,
Pending External Validation: `A_EXTV`,
Pending Budget Approval: `A_PBDG`,
Pending Cost Object Approval: `A_PECO`,
Approved & In Accounting Review: `A_ACCO` |
+| `previousPaymentStatus` | `String` | `Enum` | **Required** Unique identifier of the previous payment status of the expense report whose status has changed. Supported values:
Not Paid - `P_NOTP`,
Processing Payment - `P_PROC`,
Payment Confirmed - `P_PAYC` (may depend on configuration) |
+| `currentPaymentStatus` | `String` | `Enum` | **Required** Unique identifier of the current payment status of the expense report whose status has changed. Supported values:
Not Paid - `P_NOTP`,
Processing Payment -`P_PROC`,
Paid - `P_PAID`,
Payment Confirmed - `P_PAYC`(may depend on configuration) |
+| `reportType` | `String` | `Enum` | **Required** This value identifies the method used to create the report. Supported values:
Regular,
Reconciliation,
Statement,
AutoCreated |
+| `stepCode` | `String` | `Enum` | Code provided by the admin that the client can use to differentiate between the steps.
Report Submit - If the target step (the next workflow step that the report stops at) is not configured for notifications, then step code will be `NULL`.
Report Send Back - `SENDBACK`
Report Recall - `RECALL`
Legacy External validation post submit - `EXTVAL`
Legacy External validation pre-extract - `EXTVAL`
Report Paid - If the target step (the next workflow step that the report stops at) is not configured for notifications, then step code will be `PAIDREPORT`.
All other cases code step code as configured by admin in workflow configuration will be populated. |
+| `href` | `string` | RFC 3986 | URI of the report resource that can be called via the Expense v4 API. |
+| `lastModifiedDate` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
+| `processId` | `String` | - | **Required** Unique identifier of the workflow process that this workflow is an instance of. |
+| `startingStep` | `Object` | - | **Required** Object containing the information of the step(s) the expense report is entering into. |
+| `startingStep.roleCode` | `String` | `String` | **Required** Approver's role code for the step which the expense report is entering into. |
+| `startingStep.stepInstances` | `Array` | - | **Required** List of step instances which the expense report is entering into. |
+| `stepInstances.id` | `String` | - | **Required** Unique identifier of the workflow process step instance which report is entering into. |
+| `stepInstances.assignedUserId` | `UUID` | RFC 4122 | **Required** Unique identifier of the user assigned to approve the report. |
+
+## Sample Events
+
+### Report Created
```json
{
@@ -139,7 +194,54 @@ Name|Type|Format|Description
}
```
-### statusChanged
+### Report Updated
+
+```json
+{
+ "id": "f66ba399-5ca5-47e3-a0a7-d1d8f02ee815",
+ "correlationId": "9d98fea6-9c30-480c-a2f2-02517c3b4563",
+ "route": "stable",
+ "eventType": "reportUpdated",
+ "topic": "concur.expense.report",
+ "timeStamp": "2025-04-11T13:11:10.707Z",
+ "subtopic": "7b271d90-1e99-409a-bf79-fab6cadf7a70",
+ "facts": {
+ "reportType": "Regular",
+ "companyId": "7b271d90-1e99-409a-bf79-fab6cadf7a70",
+ "reportId": "F7B04C49E92D4DE39EB6",
+ "lastModifiedDate": "2025-04-11T13:11:10.707Z",
+ "resourceHref": "https://us2.api.concursolutions.com/expensereports/v4/users/901272ee-f006-4b08-8703-73fcce613a86/context/TRAVELER/reports/F7B04C49E92D4DE39EB6",
+ "actingUserId": null,
+ "userId": "901272ee-f006-4b08-8703-73fcce613a86"
+ }
+}
+```
+
+### Report Deleted
+
+```json
+{
+ "id": "3ae3984b-ae46-4d3f-8ea6-eb521a9d9a2b",
+ "correlationId": "9d98fea6-9c30-480c-a2f2-02517c3b4563",
+ "route": "stable",
+ "eventType": "reportDeleted",
+ "topic": "concur.expense.report",
+ "timeStamp": "2025-04-11T14:51:16.892Z",
+ "subtopic": "ad55d1c2-20e6-45bd-8d17-900f5c60729e",
+ "facts": {
+ "reportType": "Regular",
+ "companyId": "ad55d1c2-20e6-45bd-8d17-900f5c60729e",
+ "reportId": "1F7597D8217649F7BA4F",
+ "lastModifiedDate": "2025-04-11T14:51:16.892Z",
+ "actingUserId": null,
+ "isFundsAndGrantsIntegrationEligible": false,
+ "userId": "e786c241-af1c-4a28-b1c3-9d315ad8bfe6"
+ }
+}
+
+
+```
+### Report Status Changed
```json
{
@@ -176,6 +278,7 @@ Name|Type|Format|Description
}
}
```
+
```json
{
"id": "3eabdcbf-07df-4acd-99de-7f5aef0f673d",
@@ -215,6 +318,7 @@ Name|Type|Format|Description
}
}
```
+
```json
{
"id": "be3a6976-00e7-4b06-9c95-b4f2c3330ea6",
From 2044fe56fe7fe147143ab2fec628bfb675119c98 Mon Sep 17 00:00:00 2001
From: RoseWyatt <157659310+RoseWyatt@users.noreply.github.com>
Date: Sun, 13 Apr 2025 19:24:56 -0700
Subject: [PATCH 2/7] Update v4.expense-events.md
---
src/event-topics/expense/v4.expense-events.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index bd3c290f59..a2d51ba12d 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -210,7 +210,7 @@ In addition to the above, any workflow step configured for notifications by the
"companyId": "7b271d90-1e99-409a-bf79-fab6cadf7a70",
"reportId": "F7B04C49E92D4DE39EB6",
"lastModifiedDate": "2025-04-11T13:11:10.707Z",
- "resourceHref": "https://us2.api.concursolutions.com/expensereports/v4/users/901272ee-f006-4b08-8703-73fcce613a86/context/TRAVELER/reports/F7B04C49E92D4DE39EB6",
+ "href": "https://us2.api.concursolutions.com/expensereports/v4/users/901272ee-f006-4b08-8703-73fcce613a86/context/TRAVELER/reports/F7B04C49E92D4DE39EB6",
"actingUserId": null,
"userId": "901272ee-f006-4b08-8703-73fcce613a86"
}
@@ -234,7 +234,6 @@ In addition to the above, any workflow step configured for notifications by the
"reportId": "1F7597D8217649F7BA4F",
"lastModifiedDate": "2025-04-11T14:51:16.892Z",
"actingUserId": null,
- "isFundsAndGrantsIntegrationEligible": false,
"userId": "e786c241-af1c-4a28-b1c3-9d315ad8bfe6"
}
}
From c4b92f9f7f02dd255ee1e5131d606ca172d1b840 Mon Sep 17 00:00:00 2001
From: RoseWyatt <157659310+RoseWyatt@users.noreply.github.com>
Date: Sun, 13 Apr 2025 19:30:47 -0700
Subject: [PATCH 3/7] Update v4.expense-events.md
---
src/event-topics/expense/v4.expense-events.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index a2d51ba12d..331abb72b0 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -107,6 +107,7 @@ In addition to the above, any workflow step configured for notifications by the
| `userId` | `UUID` | RFC 4122 | The unique identifier of the report creator unless a delegate or proxy is involved. In these instances, it will be the user for which the report is being created (i.e., the report owner).
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details. |
| `actingUserId` | `UUID` | RFC 4122 | User unique identifier. If a delegate or expense proxy created the report on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details. |
| `reportId` | `String` | `Alphanumeric` | **Required** Unique identifier of the newly created expense report. Maximum characters: 20 |
+| `reportType` | `String` | `Enum` | **Required** This value identifies the method used to create the report. Supported values:
Regular,
Reconciliation,
Statement,
AutoCreated |
| `lastModifiedDate` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
| `href` | `string` | RFC 3986 | URI of the report resource that can be called via the Expense v4 API. |
@@ -131,6 +132,7 @@ In addition to the above, any workflow step configured for notifications by the
| `userId` | `UUID` | RFC 4122 | The unique identifier of the report creator unless a delegate or proxy is involved. In these instances, it will be the user for which the report is being created (i.e., the report owner).
This value can be NULL when a system initiates the change action instead of a user. This would include API calls with a Company JWT.
Use Identity v4 API to retrieve user details. |
| `actingUserId` | `UUID` | RFC 4122 | User unique identifier. If a delegate or expense proxy created the report on behalf of another user, then this will be populated with the identifier for that delegate or expense proxy user, else it will be NULL.
Use Identity v4 API to retrieve user details. |
| `reportId` | `String` | `Alphanumeric` | **Required** Unique identifier of the newly created expense report. Maximum characters: 20 |
+| `reportType` | `String` | `Enum` | **Required** This value identifies the method used to create the report. Supported values:
Regular,
Reconciliation,
Statement,
AutoCreated |
| `lastModifiedDate` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
### Report Status Changed Event Schema
@@ -273,7 +275,7 @@ In addition to the above, any workflow step configured for notifications by the
},
"previousApprovalStatus": "A_RESU",
"actingUserId": null,
- "href": "https://us.api.concursolutions.com/expensereports/v4/users/f2d07d5f-7a6f-44fa-98c7-c4b405bd6ca3/context/TRAVELER/reports/CB899F7D9F73420A8D8B",
+ "href": "https://us.api.concursolutions.com/expensereports/v4/users/f2d07d5f-7a6f-44fa-98c7-c4b405bd6ca3/context/TRAVELER/reports/CB899F7D9F73420A8D8B"
}
}
```
From e7a48f9b5df20f242f699be0f229f1b923449a37 Mon Sep 17 00:00:00 2001
From: RoseWyatt <157659310+RoseWyatt@users.noreply.github.com>
Date: Sun, 13 Apr 2025 19:46:25 -0700
Subject: [PATCH 4/7] Scrubbing values.
---
src/event-topics/expense/v4.expense-events.md | 34 +++++++++----------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index 331abb72b0..10aac35ffa 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -177,21 +177,21 @@ In addition to the above, any workflow step configured for notifications by the
```json
{
- "id": "86a38080-a73e-4474-a224-3618e47bd299",
- "correlationId": "7e38939d-33616-69ae-afc3-eadb1f40a114",
+ "id": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
+ "correlationId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"route": "stable",
"eventType": "reportCreated",
"topic": "public.concur.expense.report",
- "timeStamp": "2025-03-07T22:25:49.866Z",
- "subtopic": "1955b7ee-cd77-4f56-92fc-0aa40d776dc5",
+ "timeStamp": "1970-01-01T00:00:00.000Z",
+ "subtopic": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"facts": {
"reportType": "Regular",
- "companyId": "1955b7ee-cd77-4f56-92fc-0aa40d776dc5",
+ "companyId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"reportId": "4E6593CB987D459C88FA",
- "lastModifiedDate": "2025-03-07T22:25:49.866Z",
+ "lastModifiedDate": "1970-01-01T00:00:00.000Z",
"actingUserId": null,
- "href": "https://us2.api.concursolutions.com/expensereports/v4/users/e496ce0f-2442-4923-ba4d-74f3d2529fdf/context/TRAVELER/reports/4E6593CB987D459C88FA",
- "userId": "e496ce0f-2442-4923-ba4d-74f3d2529fdf"
+ "href": "https://us2.api.concursolutions.com/expensereports/v4/users/bbd64e6f-d096-48e5-8dd8-b7b67de1a951/context/TRAVELER/reports/4E6593CB987D459C88FA",
+ "userId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951"
}
}
```
@@ -200,21 +200,21 @@ In addition to the above, any workflow step configured for notifications by the
```json
{
- "id": "f66ba399-5ca5-47e3-a0a7-d1d8f02ee815",
- "correlationId": "9d98fea6-9c30-480c-a2f2-02517c3b4563",
+ "id": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
+ "correlationId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"route": "stable",
"eventType": "reportUpdated",
"topic": "concur.expense.report",
- "timeStamp": "2025-04-11T13:11:10.707Z",
- "subtopic": "7b271d90-1e99-409a-bf79-fab6cadf7a70",
+ "timeStamp": "1970-01-01T00:00:00.000Z",
+ "subtopic": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"facts": {
"reportType": "Regular",
- "companyId": "7b271d90-1e99-409a-bf79-fab6cadf7a70",
- "reportId": "F7B04C49E92D4DE39EB6",
- "lastModifiedDate": "2025-04-11T13:11:10.707Z",
- "href": "https://us2.api.concursolutions.com/expensereports/v4/users/901272ee-f006-4b08-8703-73fcce613a86/context/TRAVELER/reports/F7B04C49E92D4DE39EB6",
+ "companyId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
+ "reportId": "4E6593CB987D459C88FA",
+ "lastModifiedDate": "1970-01-01T00:00:00.000Z",
+ "href": "https://us2.api.concursolutions.com/expensereports/v4/users/bbd64e6f-d096-48e5-8dd8-b7b67de1a951/context/TRAVELER/reports/4E6593CB987D459C88FA",
"actingUserId": null,
- "userId": "901272ee-f006-4b08-8703-73fcce613a86"
+ "userId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951"
}
}
```
From 6a3a80c9bc1191a19df9651301c8ddc74bb7ee86 Mon Sep 17 00:00:00 2001
From: RoseWyatt <157659310+RoseWyatt@users.noreply.github.com>
Date: Sun, 13 Apr 2025 19:47:41 -0700
Subject: [PATCH 5/7] Update v4.expense-events.md
---
src/event-topics/expense/v4.expense-events.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index 10aac35ffa..fa3bed9d57 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -213,7 +213,7 @@ In addition to the above, any workflow step configured for notifications by the
"reportId": "4E6593CB987D459C88FA",
"lastModifiedDate": "1970-01-01T00:00:00.000Z",
"href": "https://us2.api.concursolutions.com/expensereports/v4/users/bbd64e6f-d096-48e5-8dd8-b7b67de1a951/context/TRAVELER/reports/4E6593CB987D459C88FA",
- "actingUserId": null,
+ "actingUserId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"userId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951"
}
}
@@ -223,20 +223,20 @@ In addition to the above, any workflow step configured for notifications by the
```json
{
- "id": "3ae3984b-ae46-4d3f-8ea6-eb521a9d9a2b",
- "correlationId": "9d98fea6-9c30-480c-a2f2-02517c3b4563",
+ "id": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
+ "correlationId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"route": "stable",
"eventType": "reportDeleted",
"topic": "concur.expense.report",
- "timeStamp": "2025-04-11T14:51:16.892Z",
- "subtopic": "ad55d1c2-20e6-45bd-8d17-900f5c60729e",
+ "timeStamp": "1970-01-01T00:00:00.000Z",
+ "subtopic": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"facts": {
"reportType": "Regular",
- "companyId": "ad55d1c2-20e6-45bd-8d17-900f5c60729e",
+ "companyId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"reportId": "1F7597D8217649F7BA4F",
- "lastModifiedDate": "2025-04-11T14:51:16.892Z",
- "actingUserId": null,
- "userId": "e786c241-af1c-4a28-b1c3-9d315ad8bfe6"
+ "lastModifiedDate": "1970-01-01T00:00:00.000Z",
+ "actingUserId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
+ "userId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951"
}
}
From f78fddd2f0028e9c7de3532dd8636d8b44ea335b Mon Sep 17 00:00:00 2001
From: RoseWyatt <157659310+RoseWyatt@users.noreply.github.com>
Date: Mon, 14 Apr 2025 11:44:19 -0700
Subject: [PATCH 6/7] Update v4.expense-events.md
---
src/event-topics/expense/v4.expense-events.md | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index fa3bed9d57..4e12f4a6cd 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -70,7 +70,6 @@ In addition to the above, any workflow step configured for notifications by the
| `route` | `String` | `String` | For internal use. This will be set to stable. |
| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
| `eventType` | `String` | `String` | **Required** Event Type: `reportCreated` - Identifies the event type on the topic. |
-| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
| `facts` | `Map` | [facts schema](#report-created-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
@@ -95,7 +94,6 @@ In addition to the above, any workflow step configured for notifications by the
| `route` | `String` | `String` | For internal use. This will be set to stable. |
| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
| `eventType` | `String` | `String` | **Required** Event Type: `reportUpdated` - Identifies the event type on the topic. |
-| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
| `facts` | `Map` | [facts schema](#report-updated-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
@@ -120,7 +118,6 @@ In addition to the above, any workflow step configured for notifications by the
| `route` | `String` | `String` | For internal use. This will be set to stable. |
| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
| `eventType` | `String` | `String` | **Required** Event Type: `reportUpdated` - Identifies the event type on the topic. |
-| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
| `facts` | `Map` | [facts schema](#report-deleted-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
@@ -144,7 +141,6 @@ In addition to the above, any workflow step configured for notifications by the
| `route` | `String` | `String` | For internal use. This will be set to stable. |
| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
| `eventType` | `String` | `String` | **Required** Event Type: `statusChanged` - Identifies the event type on the topic. |
-| `subtopic` | `UUID` | RFC 4122 | **Required** Unique identifier of the company the report belongs to. |
| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
| `facts` | `Map` | [facts schema](#status-changed-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |
@@ -183,7 +179,6 @@ In addition to the above, any workflow step configured for notifications by the
"eventType": "reportCreated",
"topic": "public.concur.expense.report",
"timeStamp": "1970-01-01T00:00:00.000Z",
- "subtopic": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"facts": {
"reportType": "Regular",
"companyId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
@@ -206,7 +201,6 @@ In addition to the above, any workflow step configured for notifications by the
"eventType": "reportUpdated",
"topic": "concur.expense.report",
"timeStamp": "1970-01-01T00:00:00.000Z",
- "subtopic": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"facts": {
"reportType": "Regular",
"companyId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
@@ -229,7 +223,6 @@ In addition to the above, any workflow step configured for notifications by the
"eventType": "reportDeleted",
"topic": "concur.expense.report",
"timeStamp": "1970-01-01T00:00:00.000Z",
- "subtopic": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
"facts": {
"reportType": "Regular",
"companyId": "bbd64e6f-d096-48e5-8dd8-b7b67de1a951",
@@ -252,7 +245,6 @@ In addition to the above, any workflow step configured for notifications by the
"eventType": "statusChanged",
"topic": "public.concur.expense.report",
"timeStamp": "2021-03-18T23:11:51.034Z",
- "subtopic": "CB899F7D9F73420A8D8B",
"facts":{
"currentApprovalStatus": "A_PEND",
"reportId": "CB899F7D9F73420A8D8B",
@@ -288,7 +280,6 @@ In addition to the above, any workflow step configured for notifications by the
"eventType": "statusChanged",
"topic": "public.concur.expense.report",
"timeStamp": "2021-03-19T00:37:39.550Z",
- "subtopic": "CB899F7D9F73420A8D8B",
"facts": {
"currentApprovalStatus": "A_PECO",
"reportId": "CB899F7D9F73420A8D8B",
@@ -328,7 +319,6 @@ In addition to the above, any workflow step configured for notifications by the
"eventType": "statusChanged",
"topic": "public.concur.expense.report",
"timeStamp": "2021-03-19T01:11:57.169Z",
- "subtopic": "CB899F7D9F73420A8D8B",
"facts": {
"currentApprovalStatus": "A_ACCO",
"reportId": "CB899F7D9F73420A8D8B",
From d567ce8e2ad6854008602eb04e9a984b5152e24d Mon Sep 17 00:00:00 2001
From: Anjali Selvaraj
Date: Sun, 27 Apr 2025 17:33:06 -0700
Subject: [PATCH 7/7] ERS-33145 Fix typos
---
src/event-topics/expense/v4.expense-events.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/event-topics/expense/v4.expense-events.md b/src/event-topics/expense/v4.expense-events.md
index 4e12f4a6cd..07c05da94d 100644
--- a/src/event-topics/expense/v4.expense-events.md
+++ b/src/event-topics/expense/v4.expense-events.md
@@ -28,11 +28,11 @@ This section lists all the publicly available events.
The `reportCreated` event is intended to be published when a new expense report has been created.
-### Report Updated Event
+### Report Updated Event
The `reportUpdated` event is published when an expense report is updated.
-### Report Deleted Event
+### Report Deleted Event
The `reportDeleted` event is published when an expense report is deleted.
@@ -117,7 +117,7 @@ In addition to the above, any workflow step configured for notifications by the
| `correlationId` | `UUID` | RFC 4122 | **Required** Unique identifier used for logging/traceability. |
| `route` | `String` | `String` | For internal use. This will be set to stable. |
| `topic` | `String` | `Enum` | **Required** Identifies the topic that the event belongs to `public.concur.expense.report`. |
-| `eventType` | `String` | `String` | **Required** Event Type: `reportUpdated` - Identifies the event type on the topic. |
+| `eventType` | `String` | `String` | **Required** Event Type: `reportDeleted` - Identifies the event type on the topic. |
| `timeStamp` | `timeStamp` | RFC 3339 | **Required** Current system time (UTC) when the event notification is issued. |
| `facts` | `Map` | [facts schema](#report-deleted-event-payload-facts-schema) | **Required** Key-value pairs providing the content of the event. |