Create webhook code examples
Bash:
# You can also use wget
curl -X POST https://app.staging.shippit.com/api/3/merchants/webhooks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY' \
-d '{
"webhook_url": "https://example.com/shippit-webhook",
"enabled_states": ["ready_for_pickup", "in_transit", "completed"],
"hide_delivery_address": false,
"hide_receiver_details": false,
"enabled": true,
"headers": [
{ "key": "X-Custom-Token", "value": "abc123" }
]
}'
HTTP:
POST https://app.staging.shippit.com/api/3/merchants/webhooks HTTP/1.1
Host: app.staging.shippit.com
Content-Type: application/json
Accept: application/json
Authorization: API_KEY
{
"webhook_url": "https://example.com/shippit-webhook",
"enabled_states": ["ready_for_pickup", "in_transit", "completed"],
"hide_delivery_address": false,
"hide_receiver_details": false,
"enabled": true,
"headers": [
{ "key": "X-Custom-Token", "value": "abc123" }
]
}
Javascript:
const inputBody = '{
"webhook_url": "https://example.com/shippit-webhook",
"enabled_states": ["ready_for_pickup", "in_transit", "completed"],
"hide_delivery_address": false,
"hide_receiver_details": false,
"enabled": true,
"headers": [
{ "key": "X-Custom-Token", "value": "abc123" }
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://app.staging.shippit.com/api/3/merchants/webhooks',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Ruby:
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
body = {
webhook_url: 'https://example.com/shippit-webhook',
enabled_states: ['ready_for_pickup', 'in_transit', 'completed'],
hide_delivery_address: false,
hide_receiver_details: false,
enabled: true,
headers: [{ key: 'X-Custom-Token', value: 'abc123' }]
}
result = RestClient.post 'https://app.staging.shippit.com/api/3/merchants/webhooks',
body.to_json, headers
p JSON.parse(result)
Python:
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
payload = {
'webhook_url': 'https://example.com/shippit-webhook',
'enabled_states': ['ready_for_pickup', 'in_transit', 'completed'],
'hide_delivery_address': False,
'hide_receiver_details': False,
'enabled': True,
'headers': [{'key': 'X-Custom-Token', 'value': 'abc123'}]
}
r = requests.post('https://app.staging.shippit.com/api/3/merchants/webhooks',
json=payload, headers=headers)
print(r.json())
PHP:
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
$request_body = array(
'webhook_url' => 'https://example.com/shippit-webhook',
'enabled_states' => ['ready_for_pickup', 'in_transit', 'completed'],
'enabled' => true,
);
try {
$response = $client->request('POST','https://app.staging.shippit.com/api/3/merchants/webhooks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
Java:
URL obj = new URL("https://app.staging.shippit.com/api/3/merchants/webhooks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Golang:
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
jsonBody := []byte(`{
"webhook_url": "https://example.com/shippit-webhook",
"enabled_states": ["ready_for_pickup", "in_transit", "completed"],
"hide_delivery_address": false,
"hide_receiver_details": false,
"enabled": true,
"headers": [
{ "key": "X-Custom-Token", "value": "abc123" }
]
}`)
data := bytes.NewBuffer(jsonBody)
req, err := http.NewRequest("POST", "https://app.staging.shippit.com/api/3/merchants/webhooks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}