Variants - Create
Adiciona uma nova variante a um produto existente. `pricing` (unitPrice e currency) é obrigatório no corpo.
Adiciona uma nova variante a um produto existente. pricing (unitPrice e currency) é obrigatório no corpo.
Authorization
SelectKeyAuth API key for all authenticated requests. Send your key in the selectkey header (e.g. sandbox sl_test_…, production sl_live_…).
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/products/prd_01hqzvabc/variants" \ -H "Content-Type: application/json" \ -d '{ "pricing": { "unitPrice": 9900, "currency": "BRL", "schema": "unit", "type": "oneTime", "oldPrice": 14900, "costPerItem": 4500, "trialInterval": "day", "trialIntervalCount": 7, "billingType": "prepaid", "billingFrequency": "monthly", "billingFrequencyCount": 1, "billingExactDay": 10, "cycles": 12 }, "name": "Annual Plan", "description": "Example text", "sku": "SKU-001", "images": [ "https://example.com/variant.png" ], "metadata": { "tier": "pro" }, "attributes": {}, "externalReference": "VAR-EXT-1", "enabled": true }'{
"status": "success",
"created": 1,
"results": [
{
"id": "var_01hqzvabc",
"name": "Annual Plan",
"enabled": true,
"description": "Yearly billing",
"sku": "SKU-001",
"pricing": {
"oldPrice": 14900,
"unitPrice": 9900,
"currency": "BRL",
"schema": "unit",
"type": "oneTime",
"daysTrial": 7,
"billingType": "prepaid",
"billingFrequency": "monthly",
"billingFrequencyCount": 1,
"billingExactDay": 10,
"cycles": 12,
"trialInterval": "day",
"trialIntervalCount": 7,
"costPerItem": 4500
},
"images": [
"https://cdn.selectwin.io/v/var.png"
],
"metadata": {
"tier": "pro"
},
"externalReference": "VAR-EXT-1",
"attributes": {}
}
]
}{
"error": {
"status": "Bad Request",
"statusCode": 400,
"category": "validation",
"message": "Validation errors occurred",
"details": "One or more parameters are invalid or out of range. Please check the parameters and try again.",
"params": [
{
"payment[currency]": "currency must be one of [BRL]"
},
{
"amount": "amount is required"
}
],
"code": "invalidParameters",
"resource": "client"
}
}{
"error": {
"status": "Unauthorized",
"statusCode": 401,
"category": "authentication",
"message": "Unauthorized",
"details": "Authentication failed. The provided API key is invalid or does not have permission to operate.",
"code": "unauthorized"
}
}{
"error": {
"status": "Forbidden",
"statusCode": 403,
"category": "authorization",
"message": "Forbidden",
"details": "Access denied. This may be due to IP blocks, domain restrictions, or insufficient permissions.",
"code": "forbidden"
}
}{
"error": {
"status": "Not Found",
"statusCode": 404,
"category": "client",
"message": "Not Found",
"details": "The requested resource was not found on the server.",
"code": "notFound"
}
}{
"error": {
"status": "Unprocessable Entity",
"statusCode": 422,
"category": "validation",
"message": "Unprocessable Entity",
"details": "The request was understood, but contains invalid data that could not be processed.",
"code": "unprocessableEntity"
}
}{
"error": {
"status": "Too Many Requests",
"statusCode": 429,
"category": "rate_limit",
"message": "Too Many Requests",
"details": "The number of requests exceeded the limit allowed for the IP or user.",
"retryAfterMinutes": 60,
"code": "tooManyRequests"
}
}{
"error": {
"status": "Internal Server Error",
"statusCode": 500,
"category": "server",
"message": "Server error.",
"details": "An internal server error occurred. Please try again later.",
"code": "serverError",
"resource": "server"
}
}