> For the complete documentation index, see [llms.txt](https://docs.xplorpay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xplorpay.com/api-reference/api/payments/cards-card-not-present/hpp-signature-verification/hpp-verification-service.md).

# HPP Verification Service

## Verify transaction webhook signature

> Verify the digital signature of a transaction webhook using the terminal public key.

```json
{"openapi":"3.0.1","info":{"title":"Hpp Signature Verification Service","version":"2.0"},"paths":{"/rest/v2/hpp/verify":{"post":{"tags":["HPP Verification Service"],"summary":"Verify transaction webhook signature","description":"Verify the digital signature of a transaction webhook using the terminal public key.","operationId":"verify","parameters":[{"name":"public-key","in":"header","description":"Hex-encoded terminal public key used to verify the webhook signature.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HppVerifyWebhookRequest"}}},"required":true},"responses":{"200":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HppVerifySuccessResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/HppVerifySuccessResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HppVerifyErrorResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/HppVerifyErrorResponse"}}}}}}}},"components":{"schemas":{"HppVerifyWebhookRequest":{"required":["payload","signature"],"type":"object","properties":{"code":{"type":"string","description":"Response code returned for the webhook."},"status":{"type":"string","description":"Status of the transaction webhook response."},"exchange-id":{"type":"string","description":"Unique identifier of the transaction webhook exchange."},"links":{"type":"array","description":"Contains links related to the transaction, including the transaction resource reference.","items":{"$ref":"#/components/schemas/HppVerifyLink"}},"payload":{"$ref":"#/components/schemas/HppVerifyPayload"},"signature":{"type":"string","description":"Digital signature used to verify the authenticity and integrity of the webhook payload."}},"description":"Transaction webhook payload to verify."},"HppVerifyLink":{"type":"object","properties":{"rel":{"type":"string","description":"Relationship of the linked resource to the transaction."},"href":{"type":"string","description":"Specifies the relative path to the linked transaction resource."},"id":{"type":"string","description":"Unique identifier of the linked transaction resource."}},"description":"Contains links related to the transaction, including the transaction resource reference."},"HppVerifyPayload":{"type":"object","properties":{"transaction":{"$ref":"#/components/schemas/HppVerifyTransaction"},"payloadType":{"type":"string","description":"Type of payload included in the webhook."}},"description":"Contains the transaction details and payload type."},"HppVerifyTransaction":{"type":"object","properties":{"amount":{"type":"string","description":"Amount of the transaction."},"id":{"type":"string","description":"Unique identifier of the transaction."},"created":{"type":"string","description":"Date and time when the transaction was created."},"type":{"type":"string","description":"Type of the transaction."},"result":{"type":"string","description":"Result of the transaction."},"billing":{"$ref":"#/components/schemas/HppVerifyBilling"},"shipping":{"type":"object","description":"Contains the shipping address details provided for the transaction."},"card":{"type":"string","description":"Card number associated with the transaction."},"csc":{"type":"string","description":"Card security code associated with the transaction."},"authorization-code":{"type":"string","description":"Authorization code returned for the transaction."},"avs-result-code":{"type":"string","description":"Address Verification Service (AVS) result code of the transaction."},"csc-result-code":{"type":"string","description":"Card security code (CSC) verification result code."},"batch-string-id":{"type":"string","description":"Identifier of the batch containing the transaction."},"display-message":{"type":"string","description":"Message describing the transaction result."},"result-code":{"type":"string","description":"Result code returned for the transaction."},"exp-date":{"type":"string","description":"Expiration date of the payment card."},"software-type":{"type":"string","description":"Type or name of the software that submitted the transaction."},"card-type":{"type":"string","description":"Type of payment card used for the transaction."},"last-four":{"type":"string","description":"Last four digits of the payment card number."},"service-fee":{"type":"string","description":"Service fee applied to the transaction."},"merchant-id":{"type":"string","description":"Unique identifier of the merchant associated with the transaction."},"terminal-id":{"type":"string","description":"Identifier of the terminal associated with the transaction."},"surcharge-applied":{"type":"boolean","description":"Indicates whether a surcharge was applied to the transaction."}},"description":"Contains the transaction details."},"HppVerifyBilling":{"type":"object","properties":{"zip":{"type":"string","description":"ZIP or postal code of the billing address."}},"description":"Contains the billing address details provided for the transaction."},"HppVerifySuccessResponse":{"type":"object","properties":{"code":{"type":"string","description":"HTTP response status code returned by the verification request."},"status":{"type":"string","description":"Status of the verification request."},"exchange-id":{"type":"string","description":"Unique identifier of the API request exchange."},"payload":{"$ref":"#/components/schemas/HppVerifySuccessPayload"}},"description":"Successful response returned after verifying an HPP webhook signature."},"HppVerifySuccessPayload":{"type":"object","properties":{"hpp-verification-response":{"$ref":"#/components/schemas/HppVerificationResult"},"payloadType":{"type":"string","description":"Type of payload returned in the response."}},"description":"Contains the HPP signature verification result."},"HppVerificationResult":{"type":"object","properties":{"result-code":{"type":"string","description":"Code indicating the result of the signature verification."},"is-valid":{"type":"boolean","description":"Indicates whether the HPP webhook signature is valid."}},"description":"Contains the result of the HPP webhook signature verification."},"HppVerifyErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"HTTP response code indicating that the verification request failed."},"status":{"type":"string","description":"Status of the verification request."},"exchange-id":{"type":"string","description":"Unique identifier of the API request exchange."},"payload":{"$ref":"#/components/schemas/HppVerifyErrorPayloadEnvelope"}},"description":"Error response returned when HPP webhook signature verification fails."},"HppVerifyErrorPayloadEnvelope":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/HppVerifyErrorDetail"},"payloadType":{"type":"string","description":"Type of payload returned in the response."}},"description":"Contains information about the verification error."},"HppVerifyErrorDetail":{"type":"object","properties":{"error-message":{"type":"string","description":"Description of the verification error."},"result-code":{"type":"string","description":"Code identifying the verification error."},"time-stamp":{"type":"string","description":"Date and time when the verification error occurred."}},"description":"Contains details about the verification error."}}}}
```


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.xplorpay.com/api-reference/api/payments/cards-card-not-present/hpp-signature-verification/hpp-verification-service.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
