Skip to main content
POST
/
v1
/
webhooks
/
endpoints
Create webhook endpoint
curl --request POST \
  --url https://api.hyperline.co/v1/webhooks/endpoints \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "https://example.com/webhook",
  "description": "Production webhook endpoint",
  "secret": "<string>",
  "rate_limit": 123,
  "event_types": [
    "customer.created",
    "customer.updated"
  ]
}
'
import requests

url = "https://api.hyperline.co/v1/webhooks/endpoints"

payload = {
"url": "https://example.com/webhook",
"description": "Production webhook endpoint",
"secret": "<string>",
"rate_limit": 123,
"event_types": ["customer.created", "customer.updated"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/webhook',
description: 'Production webhook endpoint',
secret: '<string>',
rate_limit: 123,
event_types: ['customer.created', 'customer.updated']
})
};

fetch('https://api.hyperline.co/v1/webhooks/endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hyperline.co/v1/webhooks/endpoints",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://example.com/webhook',
'description' => 'Production webhook endpoint',
'secret' => '<string>',
'rate_limit' => 123,
'event_types' => [
'customer.created',
'customer.updated'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.hyperline.co/v1/webhooks/endpoints"

payload := strings.NewReader("{\n \"url\": \"https://example.com/webhook\",\n \"description\": \"Production webhook endpoint\",\n \"secret\": \"<string>\",\n \"rate_limit\": 123,\n \"event_types\": [\n \"customer.created\",\n \"customer.updated\"\n ]\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.hyperline.co/v1/webhooks/endpoints")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/webhook\",\n \"description\": \"Production webhook endpoint\",\n \"secret\": \"<string>\",\n \"rate_limit\": 123,\n \"event_types\": [\n \"customer.created\",\n \"customer.updated\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.hyperline.co/v1/webhooks/endpoints")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/webhook\",\n \"description\": \"Production webhook endpoint\",\n \"secret\": \"<string>\",\n \"rate_limit\": 123,\n \"event_types\": [\n \"customer.created\",\n \"customer.updated\"\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": "ep_1srOrx2ZWZBpBUvZwXKQmoEYga2",
  "description": "Production webhook endpoint",
  "url": "https://example.com/webhook",
  "rate_limit": 123,
  "event_types": [
    "customer.created",
    "customer.updated"
  ],
  "created_at": "2024-01-20T16:04:11Z"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
url
string<uri>
required

Webhook endpoint URL.

Example:

"https://example.com/webhook"

description
string

Webhook endpoint description.

Example:

"Production webhook endpoint"

secret
string

Webhook endpoint verification secret (base64 encoded random bytes). If not defined, a secret is automatically generated and only accessible in the UI.

Pattern: ^[a-zA-Z0-9+/=]{32,100}$
rate_limit
number

Webhook rate limit (per second).

event_types
enum<string>[]

Webhook event types filter. If not defined, all event messages will be sent.

Available options:
event.price_calculated,
customer.created,
customer.updated,
customer.archived,
customer.recovered,
customer.deleted,
subscription.created,
subscription.trial_ended,
subscription.activated,
subscription.reactivated,
subscription.contract_started,
subscription.contract_renewed,
subscription.paused,
subscription.phase_activated,
subscription.updated,
subscription.cancellation_scheduled,
subscription.cancelled,
subscription.voided,
subscription.errored,
subscription.charged,
subscription.commitment_renewed,
subscription.reinstated,
subscription.analytics_updated,
invoice.created,
invoice.grace_period.started,
invoice.late,
invoice.ready,
invoice.reminder_sent,
invoice.settled,
invoice.errored,
invoice.chargeback,
invoice.voided,
invoice.uncollectible,
invoice.deleted,
invoice.batch.creation_succeeded,
invoice.batch.creation_failed,
credit_note.ready,
credit_note.settled,
credit_note.voided,
checkout.created,
checkout.completed,
payment_method.created,
payment_method.activated,
payment_method.errored,
payment_method.deleted,
payment_method.expiring_soon,
payment_method.expired,
wallet.credited,
wallet.debited,
wallet.low_projected_balance,
daily_analytics.ready,
dataloader.failed,
credit.low_balance,
credit.balance_refreshed,
credit.created,
credit.updated,
credit.balance_at_zero,
credit.topup_transaction_created,
credit.usage_transaction_created,
credit.expiration_transaction_created,
quote.created,
quote.updated,
quote.approval_requested,
quote.approved,
quote.sent,
quote.viewed,
quote.signed,
quote.activated,
quote.voided,
bank_account.created,
bank_account.deleted,
bank_account.errored,
custom_property.created,
custom_property.updated,
custom_property.deleted,
custom_property.value_created,
custom_property.value_updated,
aggregator.updated,
aggregator.threshold_crossed,
product.created,
product.updated,
product.archived,
product.recovered,
product.deleted,
plan.created,
plan.updated,
plan.deleted,
coupon.created,
coupon.updated,
coupon.deleted,
pricebook.created,
pricebook.updated,
pricebook.deleted,
subscription_transition.completed,
approval_workflow.created,
approval_workflow.updated,
approval_workflow.deleted,
approval_request.created,
approval_request.step_requested,
approval_request.step_approved,
approval_request.step_rejected,
approval_request.approved,
approval_request.rejected,
approval_request.cancelled,
agent.run.completed
Example:
["customer.created", "customer.updated"]

Response

201 - application/json
id
string
required

Webhook endpoint ID.

Example:

"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2"

description
string
required

Webhook endpoint description.

Example:

"Production webhook endpoint"

url
string<uri>
required

Webhook endpoint URL.

Example:

"https://example.com/webhook"

rate_limit
number | null
required

Webhook rate limit (per second).

event_types
enum<string>[] | null
required

Webhook event types filter. If not defined, all event messages will be sent.

Available options:
event.price_calculated,
customer.created,
customer.updated,
customer.archived,
customer.recovered,
customer.deleted,
subscription.created,
subscription.trial_ended,
subscription.activated,
subscription.reactivated,
subscription.contract_started,
subscription.contract_renewed,
subscription.paused,
subscription.phase_activated,
subscription.updated,
subscription.cancellation_scheduled,
subscription.cancelled,
subscription.voided,
subscription.errored,
subscription.charged,
subscription.commitment_renewed,
subscription.reinstated,
subscription.analytics_updated,
invoice.created,
invoice.grace_period.started,
invoice.late,
invoice.ready,
invoice.reminder_sent,
invoice.settled,
invoice.errored,
invoice.chargeback,
invoice.voided,
invoice.uncollectible,
invoice.deleted,
invoice.batch.creation_succeeded,
invoice.batch.creation_failed,
credit_note.ready,
credit_note.settled,
credit_note.voided,
checkout.created,
checkout.completed,
payment_method.created,
payment_method.activated,
payment_method.errored,
payment_method.deleted,
payment_method.expiring_soon,
payment_method.expired,
wallet.credited,
wallet.debited,
wallet.low_projected_balance,
daily_analytics.ready,
dataloader.failed,
credit.low_balance,
credit.balance_refreshed,
credit.created,
credit.updated,
credit.balance_at_zero,
credit.topup_transaction_created,
credit.usage_transaction_created,
credit.expiration_transaction_created,
quote.created,
quote.updated,
quote.approval_requested,
quote.approved,
quote.sent,
quote.viewed,
quote.signed,
quote.activated,
quote.voided,
bank_account.created,
bank_account.deleted,
bank_account.errored,
custom_property.created,
custom_property.updated,
custom_property.deleted,
custom_property.value_created,
custom_property.value_updated,
aggregator.updated,
aggregator.threshold_crossed,
product.created,
product.updated,
product.archived,
product.recovered,
product.deleted,
plan.created,
plan.updated,
plan.deleted,
coupon.created,
coupon.updated,
coupon.deleted,
pricebook.created,
pricebook.updated,
pricebook.deleted,
subscription_transition.completed,
approval_workflow.created,
approval_workflow.updated,
approval_workflow.deleted,
approval_request.created,
approval_request.step_requested,
approval_request.step_approved,
approval_request.step_rejected,
approval_request.approved,
approval_request.rejected,
approval_request.cancelled,
agent.run.completed
Example:
["customer.created", "customer.updated"]
created_at
string<date-time>
required

Webhook creation date.

Example:

"2024-01-20T16:04:11Z"