How to Set Up Hook URLs
Bolt has launched a new Merchant Dashboard experience. See this page for help documentation that reflects the Legacy Dashboard.
Set up Hook URLs in the Bolt Merchant Dashboard to listen for key transaction event updates. Each Hook URL corresponds to a feature that must also be enabled.
How to Set Up Hook URLs
- Log in to the Bolt Merchant Dashboard.
- Navigate to Developers > API.
- Scroll to Merchant Callback API.
- Select Add Endpoint
- Select the dropdown to choose which endpoint to declare.
- Input the URL.
- Select Add Endpoint.
Universal API URL
The Universal API endpoint can be used as an alternative to having many individually defined endpoints such as Shipping
, Tax
, and Create Order
.
PHP Example
https://your-store-url.com/example/universalapi.php
<?php
require(dirname(__FILE__) . '/init_example.php');
$hmacHeader = @$_SERVER['HTTP_X_BOLT_HMAC_SHA256'];
$signatureVerifier = new \BoltPay\SignatureVerifier(
\BoltPay\Bolt::$signingSecret
);
$requestJson = file_get_contents('php://input');
if (!$signatureVerifier->verifySignature($requestJson, $hmacHeader)) {
throw new Exception("Failed HMAC Authentication");
}
$requestData = json_decode($requestJson);
$event = $requestData->event;
header('Content-Type: application/json');
http_response_code(200);
$exampleData = new \BoltPay\Example\Data();
switch ($event) {
case "order.shipping":
$data = $exampleData->generateShippingOptions();
break;
case "order.tax":
$shippingOption = @$requestData->data->shipping_option;
$data = $exampleData->generateTaxOptions($shippingOption);
break;
case "order.shipping_and_tax":
$data = $exampleData->generateShippingTaxOptions();
break;
case "order.create":
$baseUrl = $exampleData->getBaseUrl();
$data = [
'status' => 'success',
'message' => 'Order create was successful.',
'order_received_url' => $baseUrl . '/example/order_confirmation.php',
'display_id' => @$requestData->order->cart->display_id
];
break;
}
echo json_encode(
[
'status' => 'success',
'event' => $event,
'data' => $data,
]
);
Shipping URL
The Shipping endpoint is the singular alternative to the combined Shipping and Tax
endpoint.
PHP Example
https://your-store-url.com/example/shipping.php
<?php
require(dirname(__FILE__) . '/init_example.php');
$hmacHeader = @$_SERVER['HTTP_X_BOLT_HMAC_SHA256'];
$signatureVerifier = new \BoltPay\SignatureVerifier(
\BoltPay\Bolt::$signingSecret
);
$requestJson = file_get_contents('php://input');
if (!$signatureVerifier->verifySignature($requestJson, $hmacHeader)) {
throw new Exception("Failed HMAC Authentication");
}
$exampleData = new \BoltPay\Example\Data();
$response = $exampleData->generateShippingOptions();
header('Content-Type: application/json');
http_response_code(200);
echo json_encode($response);
Tax URL
The Tax endpoint is the singular alternative to the combined Shipping and Tax
endpoint.
PHP Example
https://your-store-url.com/example/tax.php
<?php
require(dirname(__FILE__) . '/init_example.php');
$hmacHeader = @$_SERVER['HTTP_X_BOLT_HMAC_SHA256'];
$signatureVerifier = new \BoltPay\SignatureVerifier(
\BoltPay\Bolt::$signingSecret
);
$requestJson = file_get_contents('php://input');
if (!$signatureVerifier->verifySignature($requestJson, $hmacHeader)) {
throw new Exception("Failed HMAC Authentication");
}
$requestJson = file_get_contents('php://input');
$shippingOption = json_decode($requestJson)->shipping_option;
$exampleData = new \BoltPay\Example\Data();
$response = $exampleData->generateTaxOptions($shippingOption);
header('Content-Type: application/json');
http_response_code(200);
echo json_encode($response);
Shipping and Tax URL
The Shipping and Tax endpoint can be used to combined both Shipping
and Tax
calculations in one request.
PHP Example
https://your-store-url.com/example/shipping_and_tax.php
<?php
require(dirname(__FILE__) . '/init_example.php');
$hmacHeader = @$_SERVER['HTTP_X_BOLT_HMAC_SHA256'];
$signatureVerifier = new \BoltPay\SignatureVerifier(
\BoltPay\Bolt::$signingSecret
);
$requestJson = file_get_contents('php://input');
if (!$signatureVerifier->verifySignature($requestJson, $hmacHeader)) {
throw new Exception("Failed HMAC Authentication");
}
$exampleData = new \BoltPay\Example\Data();
$response = $exampleData->generateShippingTaxOptions();
header('Content-Type: application/json');
http_response_code(200);
echo json_encode($response);
Create Order URL
The Create Order endpoint is used to verify that an order can be created before payment is authorized.
PHP Example
https://your-store-url.com/example/preauth_create_order.php
<?php
require(dirname(__FILE__) . '/init_example.php');
$client = new \BoltPay\ApiClient([
'api_key' => \BoltPay\Bolt::$apiKey,
'is_sandbox' => \BoltPay\Bolt::$isSandboxMode
]);
$requestJson = file_get_contents('php://input');
$requestData = json_decode($requestJson);
$exampleData = new \BoltPay\Example\Data();
$baseUrl = $exampleData->getBaseUrl();
$response = [
'status' => 'success',
'message' => 'Order create was successful.',
'order_received_url' => $baseUrl . '/example/order_confirmation.php',
'display_id' => @$requestData->order->cart->display_id
];
header('Content-Type: application/json');
http_response_code(200);
echo json_encode($response);