files/en-us/web/api/merchantvalidationevent/complete/index.md
{{APIRef("Payment Request API")}}{{Deprecated_Header}}{{SecureContext_Header}}
The {{domxref("MerchantValidationEvent")}} method complete() takes merchant-specific information previously received from the {{domxref("MerchantValidationEvent.validationURL", "validationURL")}} and uses it to validate the merchant.
All you have to do is call complete() from your handler for the {{domxref("PaymentRequest.merchantvalidation_event", "merchantvalidation")}} event, passing in the data fetched from the validationURL.
complete(validationData)
complete(merchantSessionPromise)
validationData or merchantSessionPromise
None ({{jsxref("undefined")}}).
This exception may be passed into the rejection handler for the promise:
InvalidStateError {{domxref("DOMException")}}
In this example, we see the client-side code needed to support merchant validation for a payment request called payRequest:
payRequest.onmerchantvalidation = (event) => {
const validationDataPromise = getValidationData(event.validationURL);
event.complete(validationDataPromise);
};
function getValidationData(url) {
// Retrieve the validation data from the URL
// …
}
This code sets up a handler for the {{domxref("PaymentRequest.merchantvalidation_event", "merchantvalidation")}} event. The event handler calls a function, getValidationData(), which retrieves the data from the validation URL, then passes that data (or a promise to deliver the data) into complete().
{{Compat}}