📍 Bolt Help / Products / Checkout / Bolt Checkout Direct API Integration Guide / How to Set Up Hook URLs How to Set Up Hook URLs Learn how to configure Hook URLs in the Bolt Merchant Dashboard. Page Contents Click to expand. 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 Administration > API. Scroll to Merchant Callbacks. Choose the base URL you want to update and click the pencil icon next to it. Select the endpoint you want to declare in the dropdown menu. Input the URL. Select Add merchant callback to save. 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);