La Pyme SDK
import { Lapyme } from "lapyme";
const lapyme = new Lapyme({
bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});
const endpoint = await lapyme.webhookEndpoints.rotateSecret({
webhookEndpointId,
idempotencyKey: crypto.randomUUID(),
});
curl --request POST \
--url https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>'import requests
url = "https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret"
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret', 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.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"object": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "<string>",
"url": "<string>",
"enabled_events": [],
"api_version": "2026-06-29",
"failure_count": 1,
"last_success_at": "2023-11-07T05:31:56Z",
"last_failure_at": "2023-11-07T05:31:56Z",
"disabled_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"signing_secret": "<string>"
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Solicitud inválida",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "API key faltante o inválida",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Scopes insuficientes",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Endpoint no encontrado",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Conflicto de estado o idempotencia",
"retryable": false,
"details": []
}
}{
"request_id": "req_rate_limit_1",
"error": {
"type": "rate_limit_error",
"code": "RATE_LIMITED",
"message": "The organization request limit was reached. Try again later.",
"retryable": true,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Error interno del servidor",
"retryable": false,
"details": []
}
}Rotar secreto de webhook
Reemplaza el secreto inmediatamente y devuelve el nuevo signing_secret una sola vez.
POST
/
api
/
v1
/
webhook-endpoints
/
{webhook_endpoint_id}
/
rotate-secret
La Pyme SDK
import { Lapyme } from "lapyme";
const lapyme = new Lapyme({
bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});
const endpoint = await lapyme.webhookEndpoints.rotateSecret({
webhookEndpointId,
idempotencyKey: crypto.randomUUID(),
});
curl --request POST \
--url https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <idempotency-key>'import requests
url = "https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret"
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', Authorization: 'Bearer <token>'}
};
fetch('https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret', 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.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lapyme.com.ar/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"object": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "<string>",
"url": "<string>",
"enabled_events": [],
"api_version": "2026-06-29",
"failure_count": 1,
"last_success_at": "2023-11-07T05:31:56Z",
"last_failure_at": "2023-11-07T05:31:56Z",
"disabled_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"signing_secret": "<string>"
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Solicitud inválida",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "API key faltante o inválida",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Scopes insuficientes",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Endpoint no encontrado",
"retryable": false,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Conflicto de estado o idempotencia",
"retryable": false,
"details": []
}
}{
"request_id": "req_rate_limit_1",
"error": {
"type": "rate_limit_error",
"code": "RATE_LIMITED",
"message": "The organization request limit was reached. Try again later.",
"retryable": true,
"details": []
}
}{
"request_id": "req_error_1",
"error": {
"type": "invalid_request_error",
"code": "INVALID_REQUEST",
"message": "Error interno del servidor",
"retryable": false,
"details": []
}
}Authorizations
Incluí tu API key en el header Authorization con el prefijo Bearer.
Headers
Clave estable para deduplicar reintentos de la misma operación.
Path Parameters
ID del endpoint de webhook
Was this page helpful?
⌘I

