> For the complete documentation index, see [llms.txt](https://docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verifone.com/api-reference/open-api-references/order-service/webhooks.md).

# Webhooks

The **Webhooks** endpoints receive and process inbound callbacks from third-party e-signing providers — **Adobe Sign** and **Dokobit/Signicat** — as part of the e-contract workflow. These endpoints are called by the external provider, not by integrators directly.

{% hint style="warning" %}
These endpoints are invoked by the signing providers' infrastructure. Do not call them directly from your integration. Configure the callback URL in your Adobe Sign or Dokobit/Signicat account settings to point to the appropriate Verifone environment URL.
{% endhint %}

## Adobe Sign

Adobe Sign uses a two-step webhook pattern: first a verification GET request to confirm the endpoint, then POST requests for event notifications.

### Adobe Webhook Verification

## Adobe Webhook Verification

> This GET method is used by Adobe eSign to verify the webhook configuration.<br>

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Webhooks","description":"Webhook callback operations."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/webhook/callback/adobe":{"get":{"summary":"Adobe Webhook Verification","description":"This GET method is used by Adobe eSign to verify the webhook configuration.\n","operationId":"getWebhookVerification","tags":["Webhooks"],"parameters":[{"$ref":"#/components/parameters/XAdobeSignClientId"}],"responses":{"200":{"description":"Adobe Webhook verification response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdobeWebhookResponse"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"503":{"$ref":"#/components/responses/503"},"504":{"$ref":"#/components/responses/504"}}}}},"components":{"parameters":{"XAdobeSignClientId":{"name":"X-AdobeSign-ClientId","in":"header","schema":{"type":"string"},"required":true,"description":"Unique Client ID sent by Adobe eSign for verification."}},"schemas":{"AdobeWebhookResponse":{"description":"Adobe Webhook Response","type":"object","properties":{"xAdobeSignClientId":{"type":"string","description":"Echoes back the Client ID received in the request."}}},"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError401":{"title":"HTTP 401 Error","type":"object","description":"The request must be authenticated to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError403":{"title":"HTTP 403 Error","type":"object","description":"The request must be authorised to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError429":{"title":"HTTP 429 Error","type":"object","description":"The resource exists the number of requests has exceeded the specified quota.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["429"],"default":"429"},"title":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string","default":"The number of requests from this client is restricted to a specified quota."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["RATE_LIMIT_ERROR"],"default":"RATE_LIMIT_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError503":{"title":"HTTP 503 Error","type":"object","description":"Service Unavailable Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError504":{"title":"HTTP 504 Error","type":"object","description":"Gateway Timeout Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["504"],"default":"504"},"title":{"type":"string","enum":["Gateway Timeout"],"default":"Gateway Timeout"},"message":{"type":"string","default":"The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError401"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"403":{"description":"Forbidden Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpError403"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError429"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"503":{"description":"Service Not Available","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError503"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"504":{"description":"Service Timeout","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError504"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}}}}
```

### Adobe Webhook Event Listener

## Adobe Webhook Event Listener

> This POST method receives webhook event payloads from Adobe eSign.<br>

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Webhooks","description":"Webhook callback operations."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/webhook/callback/adobe":{"post":{"summary":"Adobe Webhook Event Listener","description":"This POST method receives webhook event payloads from Adobe eSign.\n","operationId":"postWebhookEventListener","tags":["Webhooks"],"parameters":[{"$ref":"#/components/parameters/XAdobeSignClientId"}],"requestBody":{"description":"Webhook event payload from Adobe eSign.","required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Adobe Webhook event received successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdobeWebhookResponse"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"503":{"$ref":"#/components/responses/503"},"504":{"$ref":"#/components/responses/504"}}}}},"components":{"parameters":{"XAdobeSignClientId":{"name":"X-AdobeSign-ClientId","in":"header","schema":{"type":"string"},"required":true,"description":"Unique Client ID sent by Adobe eSign for verification."}},"schemas":{"AdobeWebhookResponse":{"description":"Adobe Webhook Response","type":"object","properties":{"xAdobeSignClientId":{"type":"string","description":"Echoes back the Client ID received in the request."}}},"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError401":{"title":"HTTP 401 Error","type":"object","description":"The request must be authenticated to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError403":{"title":"HTTP 403 Error","type":"object","description":"The request must be authorised to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError429":{"title":"HTTP 429 Error","type":"object","description":"The resource exists the number of requests has exceeded the specified quota.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["429"],"default":"429"},"title":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string","default":"The number of requests from this client is restricted to a specified quota."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["RATE_LIMIT_ERROR"],"default":"RATE_LIMIT_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError503":{"title":"HTTP 503 Error","type":"object","description":"Service Unavailable Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError504":{"title":"HTTP 504 Error","type":"object","description":"Gateway Timeout Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["504"],"default":"504"},"title":{"type":"string","enum":["Gateway Timeout"],"default":"Gateway Timeout"},"message":{"type":"string","default":"The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError401"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"403":{"description":"Forbidden Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpError403"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError429"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"503":{"description":"Service Not Available","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError503"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"504":{"description":"Service Timeout","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError504"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}}}}
```

## Dokobit

### Dokobit Callback

## POST /webhook/callback/dokobit

> Dokobit Callback

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Webhooks","description":"Webhook callback operations."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/webhook/callback/dokobit":{"post":{"operationId":"webhookDokobit","summary":"Dokobit Callback","tags":["Webhooks"],"responses":{"200":{"description":"Callback Ok"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"503":{"$ref":"#/components/responses/503"},"504":{"$ref":"#/components/responses/504"}}}}},"components":{"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError401"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"403":{"description":"Forbidden Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpError403"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError429"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"503":{"description":"Service Not Available","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError503"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"504":{"description":"Service Timeout","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError504"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}},"schemas":{"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError401":{"title":"HTTP 401 Error","type":"object","description":"The request must be authenticated to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError403":{"title":"HTTP 403 Error","type":"object","description":"The request must be authorised to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError429":{"title":"HTTP 429 Error","type":"object","description":"The resource exists the number of requests has exceeded the specified quota.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["429"],"default":"429"},"title":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string","default":"The number of requests from this client is restricted to a specified quota."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["RATE_LIMIT_ERROR"],"default":"RATE_LIMIT_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError503":{"title":"HTTP 503 Error","type":"object","description":"Service Unavailable Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError504":{"title":"HTTP 504 Error","type":"object","description":"Gateway Timeout Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["504"],"default":"504"},"title":{"type":"string","enum":["Gateway Timeout"],"default":"Gateway Timeout"},"message":{"type":"string","default":"The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false}}}}
```

## Signicat

### Signicat Webhook

## Signicat Webhook

> This GET method is used by Signicat to notify about signed document events.

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Webhooks","description":"Webhook callback operations."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/webhook/callback/signicat":{"get":{"summary":"Signicat Webhook","description":"This GET method is used by Signicat to notify about signed document events.","operationId":"getSignicatWebhook","tags":["Webhooks"],"parameters":[{"$ref":"#/components/parameters/XMerchantAppId"},{"$ref":"#/components/parameters/XRequestId"}],"responses":{"200":{"description":"Webhook processed successfully."},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}}}}},"components":{"parameters":{"XMerchantAppId":{"name":"merchantAppId","in":"query","schema":{"type":"string"},"required":true,"description":"Unique identifier for the merchant."},"XRequestId":{"name":"requestId","in":"query","schema":{"type":"string"},"required":true,"description":"Unique identifier for the request."}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError401"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"403":{"description":"Forbidden Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpError403"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}},"schemas":{"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError401":{"title":"HTTP 401 Error","type":"object","description":"The request must be authenticated to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError403":{"title":"HTTP 403 Error","type":"object","description":"The request must be authorised to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/api-reference/open-api-references/order-service/webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
