Vertex e-Invoicing Integration Services
Overview
Vertex e-Invoicing API Integration Services currently provides following functionalities:
- Allows client applications to register vertex customer einvoicing client credentials
- Allow client applications to register callback urls and authentication schemes for supported e-invoice events
- Sends notification to callback URLs with VrBL payloads (including attachements) when relevant e-invoice events are detected
API Access
- In the near term the API must be accessible to Vertex managed applications (thin connectors) with OAuth2 authorization bearer token with audience verx://integration-platform-services and scope of ips-vertex (Vertex managed thin connectors that leverage ips capabilities).
- It may be possible to allow customer managed single tenant applications to access these APIs. In that case, we would need to make a call to Vertex IAM /clientprofile endpoint to limit the scope of data to the context tenant.
Client Types (Machine 2 Machine Credential Types)
- Tenant Specific e-invoicing API Credential: These M2M credentials represent Vertex customer/tenant specific keys with following scopes: vcd-platform-api, einvoicing-customer-api
- Multitenant Thin Connector Application: These M2M credentials reporesent thin connectors that leverage IPS/CCS capabilities and have following scopes: ips-vertex
- Singletenant Thin Connector Application: These M2M credentials represent Vertex customer/tenant provisioned keys using the credential managed page in the chrome app. (For initial version of this API, these types of applications are out of scope)
Versioning
- Current Version: 0.0.1
- This API will be versioned using semantic versioning and will maintain backward compatibility among patch and minor versions for the given major version.
API Implied Defaults
- String property size: Any model string property with undefined size will be interpreted as 255 in length
- Page size: For responses that require pagination, the default page size will be 10
- Page sort property: For responses that require pagination, the default sort property will be internally managed sort order based on creation date
- Page sort order: For response that require pagination ,the default sort order will be ascending.
Supported e-invoice event types
Refer to EventTypes for supported event types
Event Types and Callback Payloads
- BUYER_EINVOICE_RECEIVED: The payload for this event callback will be VrBL document with attachements
- SELLER_EINVOICE_DELIVERED: The payload for this event will of type DocumentMetadataResponse
- SELLER_EINVOICE_DELIVERY_FAILED_WITH_PROCESSING_ISSUE: The payload for this event will of type DocumentMetadataResponse
- SELLER_EINVOICE_DELIVERY_FAILED_WITH_ERROR: The payload for this event will of type DocumentMetadataResponse
Notes & Questions
References
Event subscriptions
Subscription event type.
Callback URL for event notification. (The default authorization context will include tenant specific bearer token)
E-Invoicing event type
Buyer e-invoice received
Seller e-invoice delivered. Buyers can deliver invoices for self-billed invoices.
Seller e-invoice delivery failed with processing issue in vertex einvoicing delivery pipeline
Seller e-invoice delivery failed with error in e-invoice network access point
Callback authentication scheme
Basic Authentiation
Use client application’s OAuth2 M2M bearer tokens during notifications on callback endpoint
Use client application managed API Key based authentication
No authentication scheme used
Use e-invoicing tenant specific bearer token for notifications to callback endpoints
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
E-Invoice API Client
Vertex e-invoicing API tenant specific client id
Vertex e-invoicing API tenant specific client secret
Basic properties of a stateful resource
Internal resource identifier
Client applicaton id. This is the M2M client id of the client application.
Security scheme used for push notifications on callback endpoints. This follows similar structure defined in Open API 3.1.1 Security Scheme Object, however includes additional attributes for communicating to callback endpoints.
Security scheme type. Valid values are http
, oauth2
, and apiKey
A description for security scheme. CommonMark syntax MAY be used for rich text representation.
Conditioinally required for apkKey
based security scheme. The name of the header, query or cookie parameter to be used.
Conditioinally required for apkKey
based security scheme.
Conditioinally required for apkKey
based security scheme. This is the API key value that will be included during callback push notifications.
Conditioinally required for http
based security scheme. Currently basic auth is supported
Unlike Open API 3 which supports basic
, digest
, bearer
, we only support basic at this time.
Conditioinally required for http basic auth
security scheme.
Conditioinally required for http basic auth
security scheme.
Conditioinally required for oauth2
based security scheme. Since the event recipients are application, client credentials flow is the only supported flow within the the context of webhook based notification system.
Following is a list of supported security scheme types for callback notifications:
- Http Basic Authentication
- API Key
- OAuth2 M2M Client credentials flow
Differences from Open API Security Scheme Types
- Mutual TLS is not yet supported
- OAuth2 implicit, password, and authorization code flows are not supported since callback endpoints are only relevant to machines.
- OpenId Connect scheme is not yet supported
- Open ID Connect is not yet supported
- Ony Basic auth HTTP scheme is supported. Digest and Bearer schemes are not supported.
References:
Http basic is the only supported scheme. (Digest and bearer are not yet supported)
API Key based security scheme
M2M Client credentials flow is the only supported flows since our clients are machine applications.
The only support flow type is the client credentials flow since the notification targed endpoints are applications and not human users.
Client credential flow
Token url
The available scopes for the OAuth2 security scheme.
That target endpoint API identifier
Client id
Client secret
OAuth2 bearer token (JSON Web Token) obtained by exchanging client application M2M credentials from the predefined Vertex cloud idP.
Page number (starts from 0)
Page size that determines the number of elements in a given page
{tenantId}
/einvapiclients{tenantId}
/einvapiclients/{id}
{tenantid}
/einvapiclients/{id}
{tenantId}
/einvapiclients{tenantId}
/einvapiclientsAuthentication
Idempotently stores tenant specific einvoicing API client credentials. (idempotency key - jwt.subject/clientAppId, tenantId)
Following actions are required for this operations:
- Check if vertex cloud tenant has an entitlement registry for “einv-integration-services”
- If not, create an entitlement for {tenantId} in IPS for “einv-integration-services”
- Once the entilement is created, store the tenant client credentials along with requesting application client id as a list item (IPS supports storage of lists, objects, and maps keyed with entitlementId)
- If an entitlment exists, but the tenant einvoice client id, and requesting API client id is not found, then we add to list and save
- If an entitlement exists, and tenant einvoice client id, and requesting API client id is found, then we return that value
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Request body
Examples
Responses
Body
POST https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/einvapiclients HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"clientId": "0oa2hl2inow5Uqc6c357",
"clientSecret": "dl9aUnVyOWdtQ3gxTTlobGU5N2ZWQUd5amdCcUsya2hWdVlMZmZOLWVOZw=="
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"clientId": "0oa2hl2inow5Uqc6c357",
"clientSecret": "dl9aUnVyOWdtQ3gxTTlobGU5N2ZWQUd5amdCcUsya2hWdVlMZmZOLWVOZw==",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
{tenantId}
/einvapiclients/{id}
Authentication
Update existing e-invoicing client credential
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Internal resource identifier
Request body
Examples
Responses
Body
PUT https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/einvapiclients/a58b4abb-49e2-43c2-bf70-a56f9cddd497 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"clientId": "0oa2hl2inow5Uqc6c357",
"clientSecret": "dl9aUnVyOWdtQ3gxTTlobGU5N2ZWQUd5amdCcUsya2hWdVlMZmZOLWVOZw=="
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"clientId": "0oa2hl2inow5Uqc6c357",
"clientSecret": "dl9aUnVyOWdtQ3gxTTlobGU5N2ZWQUd5amdCcUsya2hWdVlMZmZOLWVOZw==",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
{tenantid}
/einvapiclients/{id}
Authentication
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Internal resource identifier
Responses
Client credentials are successfully removed
DELETE https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/einvapiclients/acde070d-8c4c-4f0d-9d8a-162843c10333 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 204 No Content
{tenantId}
/einvapiclientsAuthentication
List e-invlicing client applications. This will be a either an empty list or a list of one element. This is convinient in that it does not require the client applicaiton to provide the internal resource identifier.
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Request body
Examples
Responses
Body
POST https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/einvapiclients HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"clientId": "0oa2hl2inow5Uqc6c357",
"clientSecret": "dl9aUnVyOWdtQ3gxTTlobGU5N2ZWQUd5amdCcUsya2hWdVlMZmZOLWVOZw=="
}
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"clientId": "0oa2hl2inow5Uqc6c357",
"clientSecret": "dl9aUnVyOWdtQ3gxTTlobGU5N2ZWQUd5amdCcUsya2hWdVlMZmZOLWVOZw==",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
]
{tenantId}
/webhookeventtypes{tenantId}
/webhookeventtypes/{id}
{tenantId}
/webhookeventtypes/{id}
{tenantId}
/webhookeventtypes/{id}
{tenantId}
/webhookeventtypes{tenantId}
/webhookeventtypesAuthentication
Idempotently store subscription for a predefined event type (Implicit idempotency key - jwt.subject/client app, tenantId, eventType)
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Request body
Examples
Responses
Body
POST https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/webhookeventtypes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"eventType": "EINVOICE_RECEIVED",
"callbackUrl": "https://ubleinv-dev.platdev.vtxdev.net/connector-ubleinv/api/v1/tenants/66bac982-b644-4d75-8d62-d5e70dd9b040/buyers/einvoices"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"eventType": "EINVOICE_RECEIVED",
"callbackUrl": "https://ubleinv-dev.platdev.vtxdev.net/connector-ubleinv/api/v1/tenants/66bac982-b644-4d75-8d62-d5e70dd9b040/buyers/einvoices",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
{tenantId}
/webhookeventtypes/{id}
Authentication
Update subscription for a predefined event type
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Internal resource identifier
Request body
Examples
Responses
Body
PUT https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/webhookeventtypes/acde070d-8c4c-4f0d-9d8a-162843c10333 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"eventType": "EINVOICE_RECEIVED",
"callbackUrl": "https://ubleinv-dev.platdev.vtxdev.net/connector-ubleinv/api/v1/tenants/66bac982-b644-4d75-8d62-d5e70dd9b040/buyers/einvoices?env=prod"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"eventType": "EINVOICE_RECEIVED",
"callbackUrl": "https://ubleinv-dev.platdev.vtxdev.net/connector-ubleinv/api/v1/tenants/66bac982-b644-4d75-8d62-d5e70dd9b040/buyers/einvoices?env=prod",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
{tenantId}
/webhookeventtypes/{id}
Authentication
Delete subscription for a predefined event type
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Internal resource identifier
Responses
DELETE https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/webhookeventtypes/acde070d-8c4c-4f0d-9d8a-162843c10333 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 204 No Content
{tenantId}
/webhookeventtypes/{id}
Authentication
Get subscription for a predefined event type
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Internal resource identifier
Responses
Body
GET https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/webhookeventtypes/acde070d-8c4c-4f0d-9d8a-162843c10333 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 200 OK
Content-Type: application/json
{
"eventType": "EINVOICE_RECEIVED",
"callbackUrl": "https://ubleinv-dev.platdev.vtxdev.net/connector-ubleinv/api/v1/tenants/66bac982-b644-4d75-8d62-d5e70dd9b040/buyers/einvoices?env=prod",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
{tenantId}
/webhookeventtypesAuthentication
Get subscription for a predefined event type
Path variables
Vertex Cloud internal identifier for Vertex Customer. This will be the tenant.id field of the https://devapi.vertexsmb.com/site/platformintegration/clientprofile or https://devapi.vertexsmb.com/site/platformintegration/profile reponses
Request parameters
Event type
Responses
Body
GET https://einv-integration-services/api/v1/tenants/a58b4abb-49e2-43c2-bf70-a56f9cddd497/webhookeventtypes?eventType=BUYER_EINVOICE_RECEIVED HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"eventType": "EINVOICE_RECEIVED",
"callbackUrl": "https://ubleinv-dev.platdev.vtxdev.net/connector-ubleinv/api/v1/tenants/66bac982-b644-4d75-8d62-d5e70dd9b040/buyers/einvoices?env=prod",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
]
{id}
Authentication
Idempotently create callback security schemes for client application represented in the bearer token’s jwt.subject. Client application id, and is the logical key in this case.
Depending on the type of authentication scheme choosen, the body must include relevant credential information.
Request body
Examples
Responses
Body
API Key Security Scheme
POST https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"type": "apiKey",
"description": "API Key for Oracle e-Invoicing Connector",
"name": "x-api-key",
"in": "query",
"key": "key-f2a1ed52710d4533bde25be6da03b6e3"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"type": "apiKey",
"description": "API Key for Oracle e-Invoicing Connector",
"name": "x-api-key",
"in": "query",
"key": "key-f2a1ed52710d4533bde25be6da03b6e3",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
Basic Auth Security Scheme
POST https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"type": "http",
"description": "Basic Auth Security Scheme for Oracle e-Invoicing Connector",
"scheme": "basic",
"username": "john-doe",
"pasword": "super-secret-password"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"type": "http",
"description": "Basic Auth Security Scheme for Oracle e-Invoicing Connector",
"scheme": "basic",
"username": "john-doe",
"pasword": "super-secret-password",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
OAuth2 Security Scheme
POST https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"type": "oauth2",
"description": "OAuth2 Security Scheme for Oracle ERP e-Invoicing Connector",
"flows": {
"clientCredentials": {
"tokenUrl": "https://token-guard-caching-dev.platdev.vtxdev.net/cached/oauth/token",
"scopes": "ips-vertex",
"audience": "verx://migration-api",
"clientId": "6779ef20e75817b79602",
"clientSecret": "0oa2hl2inow5Uqc6c357"
}
}
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"type": "oauth2",
"description": "OAuth2 Security Scheme for Oracle ERP e-Invoicing Connector",
"flows": {
"clientCredentials": {
"tokenUrl": "https://token-guard-caching-dev.platdev.vtxdev.net/cached/oauth/token",
"scopes": {"ips-vertex": "abc"},
"audience": "verx://migration-api",
"clientId": "6779ef20e75817b79602",
"clientSecret": "0oa2hl2inow5Uqc6c357"
}
},
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
Authentication
Idempotently create callback security schemes for client application represented in the bearer token’s jwt.subject. Client application id, and is the logical key in this case.
Depending on the type of authentication scheme choosen, the body must include relevant credential information.
Request body
Examples
Responses
Body
API Key Security Scheme
POST https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"type": "apiKey",
"description": "API Key for Oracle e-Invoicing Connector",
"name": "x-api-key",
"in": "query",
"key": "key-f2a1ed52710d4533bde25be6da03b6e3"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"type": "apiKey",
"description": "API Key for Oracle e-Invoicing Connector",
"name": "x-api-key",
"in": "query",
"key": "key-f2a1ed52710d4533bde25be6da03b6e3",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
Basic Auth Security Scheme
POST https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"type": "http",
"description": "Basic Auth Security Scheme for Oracle e-Invoicing Connector",
"scheme": "basic",
"username": "john-doe",
"pasword": "super-secret-password"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"type": "http",
"description": "Basic Auth Security Scheme for Oracle e-Invoicing Connector",
"scheme": "basic",
"username": "john-doe",
"pasword": "super-secret-password",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
OAuth2 Security Scheme
POST https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Content-Type: application/json
{
"type": "oauth2",
"description": "OAuth2 Security Scheme for Oracle ERP e-Invoicing Connector",
"flows": {
"clientCredentials": {
"tokenUrl": "https://token-guard-caching-dev.platdev.vtxdev.net/cached/oauth/token",
"scopes": "profile email",
"audience": "verx://migration-api",
"clientId": "6779ef20e75817b79602",
"clientSecret": "0oa2hl2inow5Uqc6c357"
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"type": "oauth2",
"description": "OAuth2 Security Scheme for Oracle ERP e-Invoicing Connector",
"flows": {
"clientCredentials": {
"tokenUrl": "https://token-guard-caching-dev.platdev.vtxdev.net/cached/oauth/token",
"scopes": "ips-vertex",
"audience": "verx://migration-api",
"clientId": "6779ef20e75817b79602",
"clientSecret": "0oa2hl2inow5Uqc6c357"
}
},
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
{id}
Authentication
Delete client application callback auth.
Path variables
Resource identifier
Responses
DELETE https://einv-integration-services/api/v1/callbacks/securityschemes/acde070d-8c4c-4f0d-9d8a-162843c10333 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 204 No Content
Authentication
List of 0 or 1 element that represents the callback authentication information.
Responses
Body
API Key Security Scheme
GET https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"type": "apiKey",
"description": "API Key Security Scheme",
"name": "x-api-key",
"in": "header",
"key": "key-f2a1ed52710d4533bde25be6da03b6e3",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
]
Basic Auth Security Scheme
GET https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"type": "http",
"description": "Http Basic Auth Security Scheme",
"scheme": "basic",
"username": "john-doe",
"pasword": "super-secret-password",
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
]
OAuth2 Security Scheme
GET https://einv-integration-services/api/v1/callbacks/securityschemes HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"type": "http",
"description": "OAuth2 Security Scheme",
"flows": {
"clientCredentials": {
"tokenUrl": "https://token-guard-caching-dev.platdev.vtxdev.net/cached/oauth/token",
"scopes": "tenants::*::resources::einvoice::actions::read",
"audience": "verx://migration-api",
"clientId": "6779ef20e75817b79602",
"clientSecret": "0oa2hl2inow5Uqc6c357"
}
},
"id": "acde070d-8c4c-4f0d-9d8a-162843c10333",
"clientAppId": "ZYDPLLBWSK3MVQJSIYHB1OR2JXCY0X2C5UJ2QAR2MAAIT5Q"
}
]