CRUD Products API
Gestisci i prodotti attraverso il Core API a https://api.licensechain.app/v1 con gli stessi campi puoi modificare nel Dashboard (prodotti del venditore), inclusi URL delle norme, opzioni di partner di pagamento di terze parti e (sui livelli supportati) impostazioni di consegna.
Inviare Authorization: Bearer โฆ con una chiave utente JWT o una chiave app API. Esempi di copia-incolla in molte lingue: API esempi (multilingue).
Endpoint
GET /v1/productsโ elenca i tuoi prodotti (impaginazione e filtri di seguito)POST /v1/productsโ creare (richiesto:name,price; campi facoltativi come nell'esempio)GET /v1/products/{id}โ leggine unoPUT /v1/products/{id}โ sostituzione completa delle chiavi fornite (stessa convalida di PATCH)PATCH /v1/products/{id}โ aggiornamento parziale; le chiavi omesse rimangono invariateDELETE /v1/products/{id}โ eliminare quando nessuna licenza o abbonamento fa riferimento al prodotto
Elenca i parametri della query
GET /v1/products?limit=20&offset=0&active=true&search=pro&sortBy=createdAt&sortDir=desc
limit (default 20, max 100), offset, opzionale active (true/false), search (sottostringa senza distinzione tra maiuscole e minuscole sul nome del prodotto), sortBy (createdAt | name | price), sortDir (asc | desc).
Crea prodotto (corpo di esempio)
I campi solo Enterprise (hideEmail, autoRedirect, licenseEmails, sendLicenseToCustomer) restituiscono 403 se il tuo account non รจ su Enterprise. La fatturazione ricorrente richiede stripePriceIdRecurring. La disabilitazione di cryptoPaymentsEnabled richiede Business o Enterprise. OpenAPI nel repository API elenca ogni campo e vincolo.
{
"name": "Pro Monthly",
"description": "Recurring access to premium feature set",
"price": 49.99,
"currency": "USD",
"active": true,
"successUrl": "https://merchant.example.com/pay/success",
"cancelUrl": "https://merchant.example.com/pay/cancel",
"helpUrl": "https://merchant.example.com/help",
"supportUrl": "https://merchant.example.com/support",
"termsUrl": "https://merchant.example.com/terms",
"privacyUrl": "https://merchant.example.com/privacy",
"refundUrl": "https://merchant.example.com/refund",
"productType": "subscription",
"billingType": "recurring",
"interval": "month",
"stripePriceIdRecurring": "price_1AbCdEfGhIjKlMn",
"stripeTaxEnabled": true,
"stripeIdentityRequired": false,
"cryptoPaymentsEnabled": true,
"hideEmail": false,
"autoRedirect": false
} Aggiorna prodotto
Utilizza PATCH per aggiornamenti parziali o PUT con i campi che desideri modificare. Gli URL di reindirizzamento devono essere http o https e contenere al massimo 2000 caratteri.
PATCH /v1/products/{id}
{
"name": "Pro Monthly Updated",
"price": 59.99,
"active": true,
"stripeTaxEnabled": true
} Elimina prodotto
DELETE /v1/products/{id}
Restituisce 409 quando le licenze o gli abbonamenti dei clienti sono ancora collegati al prodotto.
Forma della risposta
callbackSecret viene rilasciato per i nuovi prodotti e puรฒ essere ruotato quando si abilitano i flussi di posta elettronica nascosta; trattalo come un segreto per la firma del webhook (vedi la guida al webhook di pagamento). userId puรฒ essere null in alcune righe interne o legacy; i client dovrebbero tollerare la mancanza dell'ID proprietario.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user_123",
"name": "Pro Monthly",
"description": "Recurring access to premium feature set",
"price": 49.99,
"currency": "USD",
"active": true,
"successUrl": "https://merchant.example.com/pay/success",
"cancelUrl": "https://merchant.example.com/pay/cancel",
"helpUrl": "https://merchant.example.com/help",
"supportUrl": "https://merchant.example.com/support",
"termsUrl": "https://merchant.example.com/terms",
"privacyUrl": "https://merchant.example.com/privacy",
"refundUrl": "https://merchant.example.com/refund",
"productType": "subscription",
"billingType": "recurring",
"interval": "month",
"stripePriceIdRecurring": "price_1AbCdEfGhIjKlMn",
"stripeTaxEnabled": true,
"stripeIdentityRequired": false,
"cryptoPaymentsEnabled": true,
"hideEmail": false,
"autoRedirect": false,
"licenseEmails": [
"licenses-a@merchant.example.com",
"licenses-b@merchant.example.com"
],
"sendLicenseToCustomer": true,
"callbackSecret": "base64url_or_base64_secret_from_product_record",
"createdAt": "2026-05-11T07:00:00.000Z",
"updatedAt": "2026-05-11T07:00:00.000Z"
}