Webhook Event Management

Webhook Event Management
Common
Models
BaseObject
Object
id
string read-only
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef
version
integer read-only
Examples:
012
createdBy
string read-only
Example:
john.doe@vertexinc.com
createdAt
string date-time read-only
Example:
2025-06-05T16:26:41.567Z
updatedBy
string read-only
Example:
jane.doe@vertexinc.com
updatedAt
string date-time read-only
Example:
2025-06-05T17:26:41.567Z
Tag
Object
key
string required
Min length: 3
Max length: 255
Example:
owner
value
string required
Min length: 3
Max length: 255
Example:
john.doe@vertexinc.com
Responses
202 Accepted
Applied to all operations
409 Conflict
Applied to all operations
400 Bad Request
Applied to all operations
401 Unauthorized
Applied to all operations
403 Forbidden
Applied to all operations
404 Not Found
Applied to all operations
Pagination
page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC
Application Metadata

Application metadata provides human-readable information about a client application. Client applications are provisioned in two ways:

  • Vertex Internal Provisioning: For multi-tenant applications.
  • Customer Provisioning: For single-tenant applicatons using Cloud Portal Credentials MFE

Key Considerations:

  • The system generated id must be based on client application id defined in the bearer token
  • Deletion of application metadata for applications with active event catalog entries and subscriptions must be prevented
Application Metadata Models
Application Metadata

Client applications are provisioned in two ways:

  • Vertex Internal Provisioning: For multi-tenant applications.
  • Customer Provisioning: For single-tenant applicatons using Cloud Portal Credentials MFE
Object
name
string required
Min length: 3
Max length: 255
Example:
Vertex E-Invoicing
description
string required
Min length: 3
Max length: 255
Example:
Vertex E-Invoicing Service
tags
Array of Tag

Vertex E-Invoicing Integration Service

Max items: 20
Application Metadata Response
All of
Object
orgAccountId
string read-only

This identifier denotes a customer organization’s segment environment and is for informational purposes only. For tenant-specific client applications provisioned via the Vertex Cloud Credentials MFE, it directly maps to the tenant.id or organization.segment.environment.id field in the profile endpoint response. However, this attribute is not applicable to Vertex-managed client applications.

Example:
7fe54d67-1696-45ac-82cb-f2f24c4443a3
Application Metadata Operations

Client applications SHALL be able to register their metadata. These operations SHALL be available to applications possessing the cpe-webhooks-ing and profile scopes.

POST /applicationmetadata
GET /applicationmetadata/{id}
PUT /applicationmetadata/{id}
DELETE /applicationmetadata/{id}
GET /applicationmetadata
Create Application Metadata
Application Metadata
POST /applicationmetadata

Authentication

OAuth2
cpewh-system

Create metadata for client application identified by its m2m client id in the decoded bearer token.

Request body

Responses

201
401
403
400
409
POST https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata HTTP/1.1 

Content-Type: application/json

{
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "version": 1,
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "orgAccountId": "7fe54d67-1696-45ac-82cb-f2f24c4443a3",
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}
POST https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata HTTP/1.1 

Content-Type: application/json

{
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}

HTTP/1.1 401 Unauthorized 
POST https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata HTTP/1.1 

Content-Type: application/json

{
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}

HTTP/1.1 403 Forbidden 
POST https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata HTTP/1.1 

Content-Type: application/json

{
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}

HTTP/1.1 400 Bad Request 

Multiple post request by same client application

POST https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata HTTP/1.1 

Content-Type: application/json

{
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}

HTTP/1.1 409 Conflict 
Get Application Metadata
Application Metadata
GET /applicationmetadata/{id}

Authentication

OAuth2
cpe-webhooks-ing
profile

Path variables

id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Responses

200
GET https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "version": 1,
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "orgAccountId": "7fe54d67-1696-45ac-82cb-f2f24c4443a3",
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}
Update Application Metadata
Application Metadata
PUT /applicationmetadata/{id}

Authentication

OAuth2
cpe-webhooks-ing
profile

Path variables

id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Request body

Responses

200
PUT https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

Content-Type: application/json

{
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "version": 1,
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "orgAccountId": "7fe54d67-1696-45ac-82cb-f2f24c4443a3",
    "name": "Vertex E-Invoicing",
    "description": "Vertex E-Invoicing Service",
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ]
}
Delete Application Metadata
Application Metadata
DELETE /applicationmetadata/{id}

Authentication

OAuth2
cpe-webhooks-ing
profile

Deletion of application metadata with active event catalog entries and subcriptons should be prevented.

Path variables

id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Responses

204 No Content

Ok

204
DELETE https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

HTTP/1.1 204 No Content 
List Application Metadata
Application Metadata
GET /applicationmetadata

Authentication

OAuth2
cpe-webhooks-sys

Client applications possessing the cpe-webhooks-sys scope SHALL have read access to all application metadata.

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC

Responses

200 OK
Body
Object
200
GET https://eventwebhooks.vertexcloud.com/api/v1/applicationmetadata HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "version": 1,
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "orgAccountId": "7fe54d67-1696-45ac-82cb-f2f24c4443a3",
            "name": "Vertex E-Invoicing",
            "description": "Vertex E-Invoicing Service",
            "tags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ]
        }
    ]
}
Event Type

Event types are logical identifiers for distinct actions or states within client applications. Examples include: einvoice.received, einvoice.transmitted, taxCalculation.completed, exemptionCertificate.processed, and taxReporting.completed.

Event Type Models
EventType
Object
name
string
Min length: 3
Max length: 255
Example:
einvoice.transmitted
description
string
Min length: 3
Max length: 255
Example:
This state indicates the outbound e-invoice reached a terminal state
version
integer
Default:
0
Example:
0
schemaVersion
string required
Min length: 3
Max length: 11
Example:
0.0.1
schemaRef
string uri required
Example:
https://xyz.github.io/einv/api/einv-events-openapi.yaml
defaultRetentionIntervalDays
integer
Min: 3
Max: 180
Default:
3
Example:
3
tags
Array of Tag

Applicaton defined tags that can be used for subscription and event filtering criteria

Max items: 20
public
boolean

The Cloud Portal Tools MFE for webhooks SHALL use this attribute to filter out events that aren’t publicly subscribable. Setting it to false indicates internal usage.

Default:
true
Example:
true
testPayload
string

This will be used for testing subscription endpoints during configuration.

Example:
{"documentId": "123"}
EventTypeResponse
All of
Object
applicationName
string read-only
Example:
Vertex E-Invoicing
platformFeatureCodes
string

This readonly property serves as a key for discovering event types by linking them to specific products. On the Webhooks MFE screen, this information is leveraged to show customers only the event types relevant to their product feature code entitlements. For example:

  • 1199 represents Connectors
  • 1200 represents einvoicing events
  • 100 represents OSeries events
  • 1200,1199 represents einvoicing Connectors
  • 100,1199 represents OSeries Connectors

This value is evaluated from the client applications scope that is prefixed with platformFeatureCodes::<value>

Example:
1200
Application Event Type Operations

Client applications SHALL be able to register application event types. These operations SHALL be accessible to applications possessing the cpe-webhooks-ing scope.

POST /eventtypes
GET /eventtypes/{id}
DELETE /eventtypes/{id}
GET /eventtypes
CreateEventType
Application Event Type
POST /eventtypes

Authentication

OAuth2
cpe-webhooks-ing

Key Considerations:

  • Event type creation must fail for client application without any application metadata.
  • Event type names prefixed with system. are reserved and SHALL be prevented by the API.
  • Event type name and version must be globally unique across all applications.

Request body

Responses

201 Created
201
POST https://eventwebhooks.vertexcloud.com/api/v1/eventtypes HTTP/1.1 

Content-Type: application/json

{
    "name": "einvoice.transmitted",
    "description": "This state indicates the outbound e-invoice reached a terminal state",
    "version": 1,
    "schemaVersion": "0.0.1",
    "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
    "defaultRetentionIntervalDays": 3,
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "public": "true"
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "name": "einvoice.transmitted",
    "description": "This state indicates the outbound e-invoice reached a terminal state",
    "version": 1,
    "schemaVersion": "0.0.1",
    "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
    "defaultRetentionIntervalDays": 3,
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "public": "true",
    "applicationName": "Vertex E-Invoicing",
    "platformFeatureCodes": "1200"
}
GetEventType
Application Event Type
GET /eventtypes/{id}

Authentication

OAuth2
cpe-webhooks-ing

Path variables

id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Responses

200 OK
200
GET https://eventwebhooks.vertexcloud.com/api/v1/eventtypes/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "name": "einvoice.transmitted",
    "description": "This state indicates the outbound e-invoice reached a terminal state",
    "version": 1,
    "schemaVersion": "0.0.1",
    "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
    "defaultRetentionIntervalDays": 3,
    "tags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "public": "true",
    "applicationName": "Vertex E-Invoicing",
    "platformFeatureCodes": "1200"
}
DeleteEventType
Application Event Type
DELETE /eventtypes/{id}

Authentication

OAuth2
cpe-webhooks-ing

Deletetion of event types for applications with active subscriptions must be prevented.

Path variables

id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Responses

204 No Content
204
DELETE https://eventwebhooks.vertexcloud.com/api/v1/eventtypes/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

HTTP/1.1 204 No Content 
ListEventTypes
Application Event Type
GET /eventtypes

Authentication

OAuth2
cpe-webhooks-ing

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC

Responses

200 OK
Body
Object
content
200
GET https://eventwebhooks.vertexcloud.com/api/v1/eventtypes HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "name": "einvoice.transmitted",
            "description": "This state indicates the outbound e-invoice reached a terminal state",
            "version": 1,
            "schemaVersion": "0.0.1",
            "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
            "defaultRetentionIntervalDays": 3,
            "tags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ],
            "public": "true",
            "applicationName": "Vertex E-Invoicing",
            "platformFeatureCodes": "1200"
        }
    ]
}
Org Account Event Type Operations

Access to these operations SHALL be granted to single-tenant client applications or users capable of event type subscriptions. The system SHALL use the profile scope for authorization and identification of customer-managed client applications. Customer product feature entitlements will be matched against event type attributes to respond with applicable event type catalog entries.

GET /orgaccounts/eventtypes
ListEventTypesforOrgAccount
Org Account Event Type
GET /orgaccounts/eventtypes

Authentication

OAuth2
profile

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC

Responses

200 OK
Body
Object
content
200

Response for a customer with entitlement to e invoicing product

GET https://eventwebhooks.vertexcloud.com/api/v1/orgaccounts/eventtypes HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "name": "einvoice.transmitted",
            "description": "This state indicates the outbound e-invoice reached a terminal state",
            "version": 1,
            "schemaVersion": "0.0.1",
            "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
            "defaultRetentionIntervalDays": 3,
            "tags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ],
            "public": "true",
            "applicationName": "Vertex E-Invoicing",
            "platformFeatureCodes": "1200"
        }
    ]
}
System Event Type Operations

These operations SHALL be accessible to applications possessing the cpe-webhooks-sys scope.

GET /system/eventtypes
ListEventTypesForSystem
System Event Types
GET /system/eventtypes

Authentication

OAuth2
cpe-webhooks-sys

List event types across all applications.

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC

Responses

200 OK
Body
Object
content
200

Response for a customer with entitlement to e invoicing product

GET https://eventwebhooks.vertexcloud.com/api/v1/system/eventtypes HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "name": "einvoice.transmitted",
            "description": "This state indicates the outbound e-invoice reached a terminal state",
            "version": 1,
            "schemaVersion": "0.0.1",
            "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
            "defaultRetentionIntervalDays": 3,
            "tags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ],
            "public": "true",
            "applicationName": "Vertex E-Invoicing",
            "platformFeatureCodes": "1200"
        }
    ]
}
Subscription
Subscription Models
Subscription
Object
name
string required
Min length: 3
Max length: 255
Example:
ms365ForJaneDoe
orgAccountId
string required

This is a Vertex Cloud-generated identifier for a customer organization’s segment environment, which groups product and feature entitlements. It maps to profile.tenant.id in existing systems and org.segment.environment.id in the new system.

Example:
90483dc3-10da-4fc9-9d71-3ec1b37b8a90
status
Example:
ENABLED
public
boolean

The Cloud Portal Tools MFE for webhooks SHALL use this attribute to filter out event type subscriptions that aren’t directly managed by our customers. Setting it to false indicates internally managed subscriptions.

Default:
true
Example:
true
eventTags
Array of Tag

Events are delivered when all specified tags match.

endpoint
SubscriptionResponse
All of
SubscriptionEndpoint
Object
url
string uri required
Min length: 13
Max length: 255
Example:
https://jane.com/inbox
Default:
POST
Example:
POST
securityScheme
Example:
OAUTH2
hmacSha256Secret
string nullable

Conditionally required for is HMAC_SHA256 security scheme

Min length: 3
Max length: 255
basicAuthUsername
string nullable

Conditionally required for is Basic Auth security scheme

Min length: 3
Max length: 255
basicAuthPassword
string nullable

Conditionally required for is Basic Auth security scheme

Min length: 3
Max length: 255
oauth2ClientId
string nullable

Conditionally required for is OAuth2 security scheme

Min length: 3
Max length: 255
Example:
d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e
oauth2ClientSecret
string nullable

Conditionally required for is OAuth2 security scheme

Min length: 3
Max length: 255
Example:
_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL
oauth2Audience
string nullable

Conditionally required for is OAuth2 security scheme

Min length: 3
Max length: 255
Example:
jane://einvoice-inbox
oauth2Scopes
string nullable

Conditionally required for is OAuth2 security scheme

Min length: 3
Max length: 255
Example:
einvoice-notifications
oauth2TokenUrl
string uri nullable

Conditionally required for is OAuth2 security scheme

Min length: 13
Max length: 255
Example:
https://auth0.jane.com/oauth/token
oauth2AdditionalProperties
Object

Optional properties used for OAuth2 token generation. For example microsoft idP requires sending of resource key.

additional properties
string
Min length: 3
Max length: 255
Example:
resource-123
additionalHeaders
Object

Additional headers to include during event delivery

additional properties
string
Min length: 3
Max length: 255
Example:
janeCoLegalEntity1
SubscriptionStatus
string
Enumeration:
DISABLED
ENABLED
SUSPENDED
Example:
ENABLED
SubscriptionEndpointMethod
string
Enumeration:
POST
PUT
PATCH
Example:
POST
SubscriptionEndpointSecurityScheme
string
Enumeration:
OAUTH2
BASIC_AUTH
HMAC_SHA256

HMAC signature included in header vertex-hmac-sha256 using a shared secret key

NONE
Example:
OAUTH2
Org Account Event Type Subscription Operations
POST /orgaccounts/{orgAccountId}/eventtypes/{eventTypeId}/subscriptions
PUT /orgaccounts/{orgAccountId}/subscriptions/{id}
GET /orgaccounts/{orgAccountId}/subscriptions/{id}
DELETE /orgaccounts/{orgAccountId}/subscriptions/{id}
GET /orgaccounts/{orgAccountId}/subscriptions
CreateSubscription
Org Account Event Type Subscription
POST /orgaccounts/{orgAccountId}/eventtypes/{eventTypeId}/subscriptions

Authentication

OAuth2
cpe-webhooks-ing
profile
  1. Event Type and Version Validation: Invalid combinations of event type and version must be rejected during subscription creation or modification.

  2. Uniqueness Constraints: Both the subscription name and the organization account ID must be globally unique across the system.

  3. Subscription Mediation by Integration Components: An event producer or any integration component possessing the cpewh-event-source or cpewh-event-target scope is authorized to mediate a subscription. This mediation can be performed on behalf of a specific customer organization account (segment environment).

  4. Customer User Subscription Creation: A customer organization user, when interacting with an application that has the profile scope, is permitted to create subscriptions that are specific to their organization account.

Path variables

orgAccountId
string uuid required
Example:
827f71fc-97c2-492c-ae89-b807dada0046
eventTypeId
string uuid required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Request body

Responses

201 Created
201
POST https://eventwebhooks.vertexcloud.com/api/v1/orgaccounts/827f71fc-97c2-492c-ae89-b807dada0046/eventtypes/c86fcc87-a137-4c37-8d19-17edc7199fef/subscriptions HTTP/1.1 

Content-Type: application/json

{
    "name": "ms365ForJaneDoe",
    "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
    "status": "ENABLED",
    "public": true,
    "eventTags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "endpoint": {
        "url": "https://jane.com/inbox",
        "method": "POST",
        "securityScheme": "OAUTH2",
        "hmacSha256Secret": "",
        "basicAuthUsername": "",
        "basicAuthPassword": "",
        "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
        "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
        "oauth2Audience": "jane://einvoice-inbox",
        "oauth2Scopes": "einvoice-notifications",
        "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
        "oauth2AdditionalProperties": {
            "[...]": "resource-123"
        },
        "additionalHeaders": {
            "[...]": "janeCoLegalEntity1"
        }
    }
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "version": 2,
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "name": "ms365ForJaneDoe",
    "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
    "status": "ENABLED",
    "public": true,
    "eventTags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "endpoint": {
        "url": "https://jane.com/inbox",
        "method": "POST",
        "securityScheme": "OAUTH2",
        "hmacSha256Secret": "",
        "basicAuthUsername": "",
        "basicAuthPassword": "",
        "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
        "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
        "oauth2Audience": "jane://einvoice-inbox",
        "oauth2Scopes": "einvoice-notifications",
        "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
        "oauth2AdditionalProperties": {
            "[...]": "resource-123"
        },
        "additionalHeaders": {
            "[...]": "janeCoLegalEntity1"
        }
    },
    "eventType": {
        "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
        "createdBy": "john.doe@vertexinc.com",
        "createdAt": "2025-06-05T16:26:41.567Z",
        "updatedBy": "jane.doe@vertexinc.com",
        "updatedAt": "2025-06-05T17:26:41.567Z",
        "name": "einvoice.transmitted",
        "description": "This state indicates the outbound e-invoice reached a terminal state",
        "version": 1,
        "schemaVersion": "0.0.1",
        "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
        "defaultRetentionIntervalDays": 3,
        "tags": [
            {
                "key": "owner",
                "value": "john.doe@vertexinc.com"
            }
        ],
        "public": "true",
        "applicationName": "Vertex E-Invoicing",
        "platformFeatureCodes": "1200"
    }
}
UpdateSubscription
Org Account Event Type Subscription
PUT /orgaccounts/{orgAccountId}/subscriptions/{id}

Authentication

OAuth2
cpe-webhooks-ing
profile

Path variables

orgAccountId
string uuid required
Example:
827f71fc-97c2-492c-ae89-b807dada0046
id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Request body

Responses

200 OK
200
PUT https://eventwebhooks.vertexcloud.com/api/v1/orgaccounts/827f71fc-97c2-492c-ae89-b807dada0046/subscriptions/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

Content-Type: application/json

{
    "name": "ms365ForJaneDoe",
    "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
    "status": "ENABLED",
    "public": true,
    "eventTags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "endpoint": {
        "url": "https://jane.com/inbox",
        "method": "POST",
        "securityScheme": "OAUTH2",
        "hmacSha256Secret": "",
        "basicAuthUsername": "",
        "basicAuthPassword": "",
        "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
        "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
        "oauth2Audience": "jane://einvoice-inbox",
        "oauth2Scopes": "einvoice-notifications",
        "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
        "oauth2AdditionalProperties": {
            "[...]": "resource-123"
        },
        "additionalHeaders": {
            "[...]": "janeCoLegalEntity1"
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "version": 1,
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "name": "ms365ForJaneDoe",
    "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
    "status": "ENABLED",
    "public": true,
    "eventTags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "endpoint": {
        "url": "https://jane.com/inbox",
        "method": "POST",
        "securityScheme": "OAUTH2",
        "hmacSha256Secret": "",
        "basicAuthUsername": "",
        "basicAuthPassword": "",
        "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
        "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
        "oauth2Audience": "jane://einvoice-inbox",
        "oauth2Scopes": "einvoice-notifications",
        "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
        "oauth2AdditionalProperties": {
            "[...]": "resource-123"
        },
        "additionalHeaders": {
            "[...]": "janeCoLegalEntity1"
        }
    },
    "eventType": {
        "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
        "createdBy": "john.doe@vertexinc.com",
        "createdAt": "2025-06-05T16:26:41.567Z",
        "updatedBy": "jane.doe@vertexinc.com",
        "updatedAt": "2025-06-05T17:26:41.567Z",
        "name": "einvoice.transmitted",
        "description": "This state indicates the outbound e-invoice reached a terminal state",
        "version": 1,
        "schemaVersion": "0.0.1",
        "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
        "defaultRetentionIntervalDays": 3,
        "tags": [
            {
                "key": "owner",
                "value": "john.doe@vertexinc.com"
            }
        ],
        "public": "true",
        "applicationName": "Vertex E-Invoicing",
        "platformFeatureCodes": "1200"
    }
}
GetSubscription
Org Account Event Type Subscription
GET /orgaccounts/{orgAccountId}/subscriptions/{id}

Authentication

OAuth2
cpe-webhooks-ing
profile

Path variables

orgAccountId
string uuid required
Example:
827f71fc-97c2-492c-ae89-b807dada0046
id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Request body

Responses

200 OK
200
GET https://eventwebhooks.vertexcloud.com/api/v1/orgaccounts/827f71fc-97c2-492c-ae89-b807dada0046/subscriptions/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

Content-Type: application/json

{
    "name": "ms365ForJaneDoe",
    "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
    "status": "ENABLED",
    "public": true,
    "eventTags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "endpoint": {
        "url": "https://jane.com/inbox",
        "method": "POST",
        "securityScheme": "OAUTH2",
        "hmacSha256Secret": "",
        "basicAuthUsername": "",
        "basicAuthPassword": "",
        "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
        "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
        "oauth2Audience": "jane://einvoice-inbox",
        "oauth2Scopes": "einvoice-notifications",
        "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
        "oauth2AdditionalProperties": {
            "[...]": "resource-123"
        },
        "additionalHeaders": {
            "[...]": "janeCoLegalEntity1"
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
    "version": 1,
    "createdBy": "john.doe@vertexinc.com",
    "createdAt": "2025-06-05T16:26:41.567Z",
    "updatedBy": "jane.doe@vertexinc.com",
    "updatedAt": "2025-06-05T17:26:41.567Z",
    "name": "ms365ForJaneDoe",
    "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
    "status": "ENABLED",
    "public": true,
    "eventTags": [
        {
            "key": "owner",
            "value": "john.doe@vertexinc.com"
        }
    ],
    "endpoint": {
        "url": "https://jane.com/inbox",
        "method": "POST",
        "securityScheme": "OAUTH2",
        "hmacSha256Secret": "",
        "basicAuthUsername": "",
        "basicAuthPassword": "",
        "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
        "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
        "oauth2Audience": "jane://einvoice-inbox",
        "oauth2Scopes": "einvoice-notifications",
        "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
        "oauth2AdditionalProperties": {
            "[...]": "resource-123"
        },
        "additionalHeaders": {
            "[...]": "janeCoLegalEntity1"
        }
    },
    "eventType": {
        "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
        "createdBy": "john.doe@vertexinc.com",
        "createdAt": "2025-06-05T16:26:41.567Z",
        "updatedBy": "jane.doe@vertexinc.com",
        "updatedAt": "2025-06-05T17:26:41.567Z",
        "name": "einvoice.transmitted",
        "description": "This state indicates the outbound e-invoice reached a terminal state",
        "version": 1,
        "schemaVersion": "0.0.1",
        "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
        "defaultRetentionIntervalDays": 3,
        "tags": [
            {
                "key": "owner",
                "value": "john.doe@vertexinc.com"
            }
        ],
        "public": "true",
        "applicationName": "Vertex E-Invoicing",
        "platformFeatureCodes": "1200"
    }
}
DeleteSubscription
Org Account Event Type Subscription
DELETE /orgaccounts/{orgAccountId}/subscriptions/{id}

Authentication

OAuth2
cpe-webhooks-ing
profile

Path variables

orgAccountId
string uuid required
Example:
827f71fc-97c2-492c-ae89-b807dada0046
id
string required
Example:
c86fcc87-a137-4c37-8d19-17edc7199fef

Responses

204 No Content
204
GET https://eventwebhooks.vertexcloud.com/api/v1/orgaccounts/827f71fc-97c2-492c-ae89-b807dada0046/subscriptions/c86fcc87-a137-4c37-8d19-17edc7199fef HTTP/1.1 

HTTP/1.1 204 No Content 
ListSubscriptions
Org Account Event Type Subscription
GET /orgaccounts/{orgAccountId}/subscriptions

Authentication

OAuth2

Path variables

orgAccountId
string required
Example:
827f71fc-97c2-492c-ae89-b807dada0046

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC
eventType
string optional
Min length: 3
Max length: 255
Example:
einvoice.transmitted
eventVesion
integer optional
Example:
0

Responses

200 OK
Body
Object
content
200
GET https://eventwebhooks.vertexcloud.com/api/v1/orgaccounts/827f71fc-97c2-492c-ae89-b807dada0046/subscriptions HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "version": 2,
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "name": "ms365ForJaneDoe",
            "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
            "status": "ENABLED",
            "public": true,
            "eventTags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ],
            "endpoint": {
                "url": "https://jane.com/inbox",
                "method": "POST",
                "securityScheme": "OAUTH2",
                "hmacSha256Secret": "",
                "basicAuthUsername": "",
                "basicAuthPassword": "",
                "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
                "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
                "oauth2Audience": "jane://einvoice-inbox",
                "oauth2Scopes": "einvoice-notifications",
                "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
                "oauth2AdditionalProperties": {
                    "[...]": "resource-123"
                },
                "additionalHeaders": {
                    "[...]": "janeCoLegalEntity1"
                }
            },
            "eventType": {
                "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
                "createdBy": "john.doe@vertexinc.com",
                "createdAt": "2025-06-05T16:26:41.567Z",
                "updatedBy": "jane.doe@vertexinc.com",
                "updatedAt": "2025-06-05T17:26:41.567Z",
                "name": "einvoice.transmitted",
                "description": "This state indicates the outbound e-invoice reached a terminal state",
                "version": 1,
                "schemaVersion": "0.0.1",
                "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
                "defaultRetentionIntervalDays": 3,
                "tags": [
                    {
                        "key": "owner",
                        "value": "john.doe@vertexinc.com"
                    }
                ],
                "public": "true",
                "applicationName": "Vertex E-Invoicing",
                "platformFeatureCodes": "1200"
            }
        }
    ]
}
Application Event Type Subscription Operations
GET /applications/subscriptions
ListSubscriptionForApplication
Org Account Event Type Subscription
GET /applications/subscriptions

Authentication

OAuth2

This endpoint responds with subscriptions tied to the client application. The application’s ID is derived from the JWT bearer token’s subject and is also present as applicationmetadata.id within the webhook system.

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC
eventType
string optional
Min length: 3
Max length: 255
Example:
einvoice.transmitted
eventVesion
integer optional
Example:
0
orgAccountId
string optional
Example:
827f71fc-97c2-492c-ae89-b807dada0046
status
Example:
ENABLED

Responses

200 OK
Body
Object
content
200
GET https://eventwebhooks.vertexcloud.com/api/v1/applications/subscriptions HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "version": 1,
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "name": "ms365ForJaneDoe",
            "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
            "status": "ENABLED",
            "public": true,
            "eventTags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ],
            "endpoint": {
                "url": "https://jane.com/inbox",
                "method": "POST",
                "securityScheme": "OAUTH2",
                "hmacSha256Secret": "",
                "basicAuthUsername": "",
                "basicAuthPassword": "",
                "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
                "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
                "oauth2Audience": "jane://einvoice-inbox",
                "oauth2Scopes": "einvoice-notifications",
                "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
                "oauth2AdditionalProperties": {
                    "[...]": "resource-123"
                },
                "additionalHeaders": {
                    "[...]": "janeCoLegalEntity1"
                }
            },
            "eventType": {
                "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
                "createdBy": "john.doe@vertexinc.com",
                "createdAt": "2025-06-05T16:26:41.567Z",
                "updatedBy": "jane.doe@vertexinc.com",
                "updatedAt": "2025-06-05T17:26:41.567Z",
                "name": "einvoice.transmitted",
                "description": "This state indicates the outbound e-invoice reached a terminal state",
                "version": 1,
                "schemaVersion": "0.0.1",
                "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
                "defaultRetentionIntervalDays": 3,
                "tags": [
                    {
                        "key": "owner",
                        "value": "john.doe@vertexinc.com"
                    }
                ],
                "public": "true",
                "applicationName": "Vertex E-Invoicing",
                "platformFeatureCodes": "1200"
            }
        }
    ]
}
System Event Type Subscription Operations
GET /subscriptions
ListAllSubscriptions
Org Account Event Type Subscription
GET /subscriptions

Authentication

OAuth2

This endpoint responds with subscriptions tied to the client application. The application’s ID is derived from the JWT bearer token’s subject and is also present as applicationmetadata.id within the webhook system.

Request parameters

page
integer optional
Default:
0
Example:
0
size
integer optional
Min: 1
Max: 100
Default:
20
Example:
20
sort
string optional

Multi value sort parameter used for paging across a large data set. The expected format is as follows when specified:

sortField,sortOrder

sortField can be any arbitrary field specific to the content that is being paged sortOrder is ASC or DESC. The sort order defaults to DESC when left unspecified.

A page can be sorted using multiple columns by providing multiple sort query parameters

pageSort=field1,ASC&pageSort=field2,DESC

Default:
updatedAt,DESC
Example:
updatedAt,DESC
eventType
string optional
Min length: 3
Max length: 255
Example:
einvoice.transmitted
eventVesion
integer optional
Example:
0
orgAccountId
string optional
Example:
827f71fc-97c2-492c-ae89-b807dada0046
status
Example:
ENABLED

Responses

200 OK
Body
Object
content
200
GET https://eventwebhooks.vertexcloud.com/api/v1/subscriptions HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
            "version": 1,
            "createdBy": "john.doe@vertexinc.com",
            "createdAt": "2025-06-05T16:26:41.567Z",
            "updatedBy": "jane.doe@vertexinc.com",
            "updatedAt": "2025-06-05T17:26:41.567Z",
            "name": "ms365ForJaneDoe",
            "orgAccountId": "90483dc3-10da-4fc9-9d71-3ec1b37b8a90",
            "status": "ENABLED",
            "public": true,
            "eventTags": [
                {
                    "key": "owner",
                    "value": "john.doe@vertexinc.com"
                }
            ],
            "endpoint": {
                "url": "https://jane.com/inbox",
                "method": "POST",
                "securityScheme": "OAUTH2",
                "hmacSha256Secret": "",
                "basicAuthUsername": "",
                "basicAuthPassword": "",
                "oauth2ClientId": "d3049b4c-8e7c-4a1f-a5f1-3b9d0b6c2a1e",
                "oauth2ClientSecret": "_nS7yQzPp5RjF2hT8cVx9eYw0uIaLkBmCgDdEfGhIjKkL",
                "oauth2Audience": "jane://einvoice-inbox",
                "oauth2Scopes": "einvoice-notifications",
                "oauth2TokenUrl": "https://auth0.jane.com/oauth/token",
                "oauth2AdditionalProperties": {
                    "[...]": "resource-123"
                },
                "additionalHeaders": {
                    "[...]": "janeCoLegalEntity1"
                }
            },
            "eventType": {
                "id": "c86fcc87-a137-4c37-8d19-17edc7199fef",
                "createdBy": "john.doe@vertexinc.com",
                "createdAt": "2025-06-05T16:26:41.567Z",
                "updatedBy": "jane.doe@vertexinc.com",
                "updatedAt": "2025-06-05T17:26:41.567Z",
                "name": "einvoice.transmitted",
                "description": "This state indicates the outbound e-invoice reached a terminal state",
                "version": 1,
                "schemaVersion": "0.0.1",
                "schemaRef": "https://xyz.github.io/einv/api/einv-events-openapi.yaml",
                "defaultRetentionIntervalDays": 3,
                "tags": [
                    {
                        "key": "owner",
                        "value": "john.doe@vertexinc.com"
                    }
                ],
                "public": "true",
                "applicationName": "Vertex E-Invoicing",
                "platformFeatureCodes": "1200"
            }
        }
    ]
}
Event
Event Models
Event
Object
tags
Array of Tag

The event producer creates tags for each event. It primarily uses the tag keys and their default values as specified in the event type object. However, the producer can also add additional keys not originally defined there. These tags are crucial because subscriptions are matched against them to determine whether an event should be delivered.

expiryIntervalDays
string nullable

Default value from event type is used when not provided in the request.

Min length: 3
Max length: 90
Example:
3
payload
string required

The event payload is represented as a string. If the content is binary, client systems must Base64 encode it before sending the event.

Min length: 3
payloadRef
string read-only

Event payloads larger than 200KB will be presisted in object store.

EventResponse
All of
Object
expiresAt
string date-time
Example:
2025-06-06T15:09:44.789Z
activeSubscriptions
Application Event Operations
Organization Account Event Operations
System Event Operations
Event Delivery
Event Delivery Models
EventDeliveryResponse

We store each delivery attempt as a separate record. Our system makes a total of five automated delivery attempts. If all five attempts fail, the final record’s status will be PERMANENTLY_FAILED, while the previous four will show a FAILED status.

Here’s how the automated attempts progress:

  • Attempt 1: PENDING → FAILED (at time t1)
  • Attempt 2: RETRYING → FAILED (at t1 + 120 seconds)
  • Attempt 3: RETRYING → FAILED (at t1 + 240 seconds)
  • Attempt 4: RETRYING → FAILED (at t1 + 480 seconds)
  • Attempt 5: RETRYING → FAILED (at t1 + 960 seconds)
  • Additionally, you can initiate a manual delivery attempt via a “replay” operation, which would look like this:

Manual Replay: RETRYING → SUCCEEDED

Object
replayAttempt
integer read-only
Example:
0
retryAttempt
integer read-only
Example:
0
subscription
EventDeliveryStatus
string
Enumeration:
PENDING

This state can transition to either SUCCEEDED or FAILED state

SUCCEEDED

This is a terminal state

FAILED

This state is a terminal state for a specific delivery attempt. Next delivery attemtp with start with RETRYING state. If delivery attempt as maxed out (5 attempts), then this state will delivery instance will transition to PERMANENTLY_FAILED.

RETRYING
PERMANENTLY_FAILED