Añade un receptor HTTPS al proyecto. Máximo de 20 endpoints activos por cuenta. Volver a registrar la misma URL para el mismo proyecto con la misma clave API no duplica las entregas: 200 con el ID existente y sin secreto. Guarda el secreto después de 201. Al alcanzar la capacidad, incluso una repetición puede devolver 402.
Permisos de la clave: webhooks / write.
Cuerpo de la solicitud
Campo
Tipo
Obligatorio
Descripción
url
string
Sí
URL pública del receptor HTTPS de webhook; se rechazan direcciones locales y privadas. uri; pattern: ^https://
label
string
No
Etiqueta opcional del destino.
project
string
No
ID del proyecto. Si se omite, usa el proyecto de la clave o el proyecto predeterminado de la cuenta.
Los ejemplos realizan una operación real en tu cuenta. Configura las variables de entorno indicadas en el código. Mantén tu clave privada; las solicitudes de escritura no se reintentan automáticamente.
Shell / cURL
#!/usr/bin/env bash
set -euo pipefail
: "${CRYPTANIO_API_KEY:?Set CRYPTANIO_API_KEY}"
: "${CRYPTANIO_PROJECT_ID:?Set CRYPTANIO_PROJECT_ID}"
json_string() {
local text="$1" char code index output='"'
for ((index=0; index<${#text}; index++)); do
char="${text:index:1}"
case "$char" in
'"'|'\') output+="\\$char" ;;
*) printf -v code '%d' "'$char"
if ((code < 32)); then printf -v char '\\u%04x' "$code"; fi
output+="$char" ;;
esac
done
printf '%s"' "$output"
}
response_file="$(mktemp)"
trap 'rm -f "$response_file"' EXIT
transfer_status=0
http_status="$(curl \
--silent --show-error --max-time 30 --request POST \
--header "Authorization: Bearer $CRYPTANIO_API_KEY" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-binary '{"project":'"$(json_string "$CRYPTANIO_PROJECT_ID")"',"url":"https://merchant.example/webhooks/cryptanio","label":"Orders"}' \
"https://api.cryptanio.com/v1/endpoints" \
--output "$response_file" --write-out '%{http_code}')" || transfer_status=$?
if [[ "$http_status" == 2?? ]]; then
cat "$response_file"
exit "$transfer_status"
fi
printf 'HTTP %s\n' "$http_status" >&2
cat "$response_file" >&2
exit 1