Atualiza uma variante de produto
/v1/products/{productId}/variants/{variantId}Autentique com o header SelectKey: a chave sk_test_ opera no sandbox, a sk_live_ em produção. Como autenticar.
Parâmetros do caminho
productIdstringobrigatórioIdentificador público (prd_/pro_…)
variantIdstringobrigatórioIdentificador público (var_/prv_…)
Corpo da requisição
skustringO seu SKU.
namestringNome da variante.
fiscalobjectpode ser nuloO que a variante muda no perfil fiscal do produto;
nulllimpa.+10 campos de
fiscalnbsstringCódigo NBS, 9 dígitos (serviço).
ncmstringCódigo NCM, 8 dígitos (mercadoria).
ceststringCódigo CEST, 7 dígitos (mercadoria com substituição tributária).
gtinstringGTIN/EAN — 8, 12, 13 ou 14 dígitos.
kindstringserviceemite NFS-e,goodsemite NF-e. Omitido: um produtophysicalé mercadoria, os outros são serviço.Valores:servicegoodsunitstringUnidade comercial (UN, KG, CX…).
originintegerOrigem da mercadoria (tabela A do ICMS, 0 a 8; 0 = nacional).
cClassTribstringClassificação tributária do IBS/CBS (cClassTrib, 6 dígitos).
serviceCodestringItem da lista de serviços da LC 116 (
01.07ou0107).cityServiceCodestringCódigo do serviço na sua prefeitura.
imagesstring (uri)[]URLs de imagem. Para anexar um arquivo, envie-o antes (
POST /v1/assets/uploadse depois a confirmação) e mande a URL do arquivo.enabledbooleanSe a variante está à venda.
pricingobjectPreço e modelo de cobrança da variante; só os campos enviados mudam.
+22 campos de
pricingtypestringoneTime(uma venda) ourecurring(um plano de assinatura).Valores:oneTimerecurringtiersobject[]As faixas de preço (
schema=tiered), em ordem crescente deupTo.+3 campos de
tiersupTointegerpode ser nuloLimite superior da faixa (unidades);
null= sem limite (a última faixa).flatPriceintegerpode ser nuloValor fixo somado quando a faixa é atingida, em centavos.
unitPriceintegerobrigatórioPreço unitário dentro da faixa, em centavos.
cyclesintegerpode ser nuloNúmero de ciclos até a assinatura acabar;
null= até ser cancelada.schemastringComo o preço é calculado:
unit(preço × quantidade),tiered(por faixas de quantidade) oupackage(por bloco de unidades).Valores:unittieredpackagecurrencystringCódigo de moeda ISO 4217
oldPriceintegerO preço antes de um desconto, em centavos — mostrado riscado.
daysTrialintegerDuração do período de teste de um plano recorrente, em dias.
tiersModestringgraduated: cada faixa precifica as próprias unidades;volume: a faixa atingida precifica todas as unidades.Valores:graduatedvolumeunitPriceintegerPreço unitário, em centavos (mínimo 500 em
unit; não usado emtiered).usageTypestringlicensed(quantidade fixa) oumetered(cobrado pelo uso que você reporta).Valores:licensedmeteredbillingTypestringQuando um ciclo é cobrado:
prepaid(no início),postpaid(no fim) ouexactday(embillingExactDay).Valores:prepaidpostpaidexactdaycostPerItemintegerO seu custo por unidade, em centavos (para os seus relatórios de margem).
trialIntervalstringUnidade da duração do teste.
Valores:dayweekmonthyearmeterEventNamestringNome do medidor de uso que você reporta (só
metered).billingExactDayintegerDia do mês em que o ciclo é cobrado (
billingType=exactday).renewalShippingbooleanPlanos recorrentes: cobrar o frete cotado no checkout em CADA renovação (padrão
true).billingFrequencystringUnidade do intervalo de cobrança.
Valores:dailyweeklymonthlyyearlyusageAggregationstringComo os registros de uso de um ciclo são agregados:
sum,max,lastDuringPeriodoulastEver.Valores:summaxlastDuringPeriodlastEvertransformQuantityobjectEm
schema=package: quantas unidades formam um bloco, e como um bloco parcial é arredondado.+2 campos de
transformQuantityroundstringComo um bloco parcial é arredondado.
Valores:updowndivideByintegerobrigatórioUnidades por bloco.
trialIntervalCountintegerDuração do teste, em unidades de
trialInterval.billingFrequencyCountintegerQuantas unidades de
billingFrequencypor ciclo.renewalMethodDiscountbooleanPlanos recorrentes: estender o desconto do meio de pagamento do checkout às renovações cobradas pelo mesmo meio (padrão
false).
metadataobjectObjeto JSON livre — no máximo 50 chaves, chaves de até 40 caracteres, cada valor com até 500 caracteres (o JSON dele, quando não é texto), o objeto inteiro com até 8192 bytes em JSON.
attributesobjectAtributos livres da variante (tamanho, cor…).
descriptionstringDescrição.
externalReferencestringO seu próprio identificador da variante.
Respostas
200Sucesso
idstringobrigatórioIdentificador público (var_/prv_…)
skustringobrigatóriopode ser nuloO seu SKU;
nullquando não há.namestringobrigatóriopode ser nuloNome da variante.
slugstringobrigatóriopode ser nuloSlug da variante.
fiscalobjectobrigatóriopode ser nuloO que a variante muda no perfil fiscal do produto;
null= nada.+10 campos de
fiscalnbsstringCódigo NBS (serviço).
ncmstringCódigo NCM (mercadoria).
ceststringCódigo CEST (mercadoria).
gtinstringGTIN/EAN.
kindstringservice(NFS-e) ougoods(NF-e).Valores:servicegoodsunitstringUnidade comercial.
originintegerOrigem da mercadoria (0 a 8).
cClassTribstringClassificação tributária do IBS/CBS.
serviceCodestringItem da lista de serviços da LC 116.
cityServiceCodestringCódigo do serviço na sua prefeitura.
imagesum de[]obrigatóriopode ser nuloURLs das imagens;
nullquando não há.enabledbooleanobrigatórioSe a variante está à venda.
pricingobjectobrigatórioPreço e modelo de cobrança da variante.
+22 campos de
pricingtypestringobrigatóriooneTime(uma venda) ourecurring(um plano de assinatura).Valores:oneTimerecurringtiersanypode ser nuloAs faixas de preço;
nullfora detiered.cyclesintegerobrigatóriopode ser nuloNúmero de ciclos até a assinatura acabar;
null= até ser cancelada.schemastringobrigatórioComo o preço é calculado:
unit,tieredoupackage.Valores:unittieredpackagecurrencystringobrigatórioMoeda (ISO 4217).
oldPriceintegerobrigatóriopode ser nuloO preço antes de um desconto, em centavos;
nullquando não há.daysTrialintegerobrigatóriopode ser nuloDuração do período de teste, em dias;
nullquando não há.tiersModestringobrigatóriopode ser nulograduatedouvolume;nullfora detiered.unitPriceintegerobrigatóriopode ser nuloPreço unitário, em centavos;
nullemtiered.usageTypestringobrigatóriolicensedoumetered.billingTypestringobrigatóriopode ser nuloQuando um ciclo é cobrado:
prepaid,postpaidouexactday;nullem venda avulsa.costPerItemintegerobrigatóriopode ser nuloO seu custo por unidade, em centavos;
nullquando não definido.trialIntervalstringobrigatóriopode ser nuloUnidade da duração do teste;
nullquando não há.meterEventNamestringobrigatóriopode ser nuloNome do medidor de uso;
nullfora demetered.billingExactDayintegerobrigatóriopode ser nuloDia do mês em que o ciclo é cobrado;
nullquando não é fixo.renewalShippingbooleanobrigatórioPlanos recorrentes: se o frete cotado no checkout é cobrado em cada renovação.
billingFrequencystringobrigatóriopode ser nuloUnidade do intervalo de cobrança;
nullem venda avulsa.usageAggregationstringobrigatóriopode ser nuloComo o uso é agregado;
nullfora demetered.transformQuantityanypode ser nuloUnidades por bloco e arredondamento;
nullfora depackage.trialIntervalCountintegerobrigatóriopode ser nuloDuração do teste, em unidades de
trialInterval;nullquando não há.billingFrequencyCountintegerobrigatóriopode ser nuloQuantas unidades por ciclo;
nullem venda avulsa.renewalMethodDiscountbooleanobrigatórioPlanos recorrentes: se o desconto do meio de pagamento do checkout se estende às renovações.
primarybooleanobrigatórioSe é a variante principal do produto.
metadataobjectobrigatóriopode ser nuloOs seus metadados chave-valor;
nullquando não há.createdAtstringobrigatórioQuando o recurso foi criado (ISO 8601, UTC).
productIdstringobrigatórioO produto a que a variante pertence.
updatedAtstringobrigatórioQuando o recurso foi atualizado pela última vez (ISO 8601, UTC).
attributesobjectobrigatóriopode ser nuloAtributos livres da variante;
nullquando não há.checkoutUrlstringobrigatóriopode ser nuloURL do checkout hospedado desta variante;
nullquando não há.descriptionstringobrigatóriopode ser nuloDescrição;
nullquando não há.externalReferencestringobrigatóriopode ser nuloO seu próprio identificador da variante;
nullquando não há.
400Requisição inválida (validação)
errorobjectobrigatório+8 campos de
errorcodestringobrigatórioparamsobject[]statusstringobrigatóriodetailsstringmessagestringobrigatóriocategorystringobrigatórioValores:validationauthenticationauthorizationpaymentclientserverrate_limitpendingresourcestringobrigatóriostatusCodeintegerobrigatório
401Não autenticado (credencial ausente ou inválida)
errorobjectobrigatório+8 campos de
errorcodestringobrigatórioparamsobject[]statusstringobrigatóriodetailsstringmessagestringobrigatóriocategorystringobrigatórioValores:validationauthenticationauthorizationpaymentclientserverrate_limitpendingresourcestringobrigatóriostatusCodeintegerobrigatório
403Sem permissão
errorobjectobrigatório+8 campos de
errorcodestringobrigatórioparamsobject[]statusstringobrigatóriodetailsstringmessagestringobrigatóriocategorystringobrigatórioValores:validationauthenticationauthorizationpaymentclientserverrate_limitpendingresourcestringobrigatóriostatusCodeintegerobrigatório
404Não encontrado
errorobjectobrigatório+8 campos de
errorcodestringobrigatórioparamsobject[]statusstringobrigatóriodetailsstringmessagestringobrigatóriocategorystringobrigatórioValores:validationauthenticationauthorizationpaymentclientserverrate_limitpendingresourcestringobrigatóriostatusCodeintegerobrigatório
422Regra de negócio impede o processamento
errorobjectobrigatório+8 campos de
errorcodestringobrigatórioparamsobject[]statusstringobrigatóriodetailsstringmessagestringobrigatóriocategorystringobrigatórioValores:validationauthenticationauthorizationpaymentclientserverrate_limitpendingresourcestringobrigatóriostatusCodeintegerobrigatório
500Erro interno do servidor
errorobjectobrigatório+8 campos de
errorcodestringobrigatórioparamsobject[]statusstringobrigatóriodetailsstringmessagestringobrigatóriocategorystringobrigatórioValores:validationauthenticationauthorizationpaymentclientserverrate_limitpendingresourcestringobrigatóriostatusCodeintegerobrigatório