curl --request PATCH \
--url https://api.sandbox.z2pay.com/v1/plans/{id}/items/{itemId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"quantityDefault": 1,
"displayOrder": 1,
"description": "<string>",
"metadata": {}
}
'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
quantityDefault: 1,
displayOrder: 1,
description: '<string>',
metadata: {}
})
};
fetch('https://api.sandbox.z2pay.com/v1/plans/{id}/items/{itemId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/plans/{id}/items/{itemId}"
payload = {
"name": "<string>",
"quantityDefault": 1,
"displayOrder": 1,
"description": "<string>",
"metadata": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "pli_lggs2vulsryis0t35qbqfpjyg",
"planId": "plan_lhutpqeq2ml3stia4vn90xars",
"key": "welcome-kit",
"name": "Welcome Kit (Premium)",
"kind": "recurring",
"quantityDefault": 1,
"displayOrder": 1,
"description": "One-time premium onboarding kit",
"metadata": {},
"createdAt": "2025-06-29T14:30:00.000Z",
"updatedAt": "2025-06-29T14:45:00.000Z"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"issues": [
{
"path": "status",
"message": "Status inválido. Valores aceitos: pending, waiting_payment, paid, refused, canceled, refunded"
},
{
"path": "startDate",
"message": "Data deve ser ISO 8601 com timezone (ex.: 2026-06-24T00:00:00Z)"
}
]
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Item not found"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}Atualizar item do plano
Altera nome, quantidade padrão, ordem, descrição e metadados do item. O valor não se muda por aqui.
curl --request PATCH \
--url https://api.sandbox.z2pay.com/v1/plans/{id}/items/{itemId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"quantityDefault": 1,
"displayOrder": 1,
"description": "<string>",
"metadata": {}
}
'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
quantityDefault: 1,
displayOrder: 1,
description: '<string>',
metadata: {}
})
};
fetch('https://api.sandbox.z2pay.com/v1/plans/{id}/items/{itemId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/plans/{id}/items/{itemId}"
payload = {
"name": "<string>",
"quantityDefault": 1,
"displayOrder": 1,
"description": "<string>",
"metadata": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "pli_lggs2vulsryis0t35qbqfpjyg",
"planId": "plan_lhutpqeq2ml3stia4vn90xars",
"key": "welcome-kit",
"name": "Welcome Kit (Premium)",
"kind": "recurring",
"quantityDefault": 1,
"displayOrder": 1,
"description": "One-time premium onboarding kit",
"metadata": {},
"createdAt": "2025-06-29T14:30:00.000Z",
"updatedAt": "2025-06-29T14:45:00.000Z"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"issues": [
{
"path": "status",
"message": "Status inválido. Valores aceitos: pending, waiting_payment, paid, refused, canceled, refunded"
},
{
"path": "startDate",
"message": "Data deve ser ISO 8601 com timezone (ex.: 2026-06-24T00:00:00Z)"
}
]
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Item not found"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}PATCH /plans/:id/items/:itemId
Faz parte do recurso Planos e Preços — o item, o preço versionado e
os status estão lá.
Atualização parcial: envie só os campos que quer alterar. A resposta é o item atualizado.
key e kind não são editáveis. A key é a referência estável do item, e mudá-la quebraria
quem a usa; kind decide se a cobrança recorre ou acontece uma vez, e virar um no outro mudaria a
natureza do que já foi contratado. Para trocar qualquer um dos dois,
arquive o item e crie outro.quantityDefault só vale para as assinaturas seguintes. É a quantidade com que o item nasce
quando alguém assina — quem já assinou tem a sua quantidade gravada na assinatura, e ela não muda.409. O item de um plano
arquivado é somente leitura, como o plano.metadata substitui, não mescla. O objeto enviado passa a ser o metadata inteiro. Para
acrescentar uma chave, leia o objeto atual e envie-o completo com a nova.Exemplo
curl -X PATCH https://api.sandbox.z2pay.com/v1/plans/plan_lhutpqeq2ml3stia4vn90xars/items/pli_x0hn9c2eqp7wl4tzka8m3vgdi \
-H "x-api-key: SUA_CHAVE_DE_SANDBOX" \
-H "Content-Type: application/json" \
-d '{
"name": "Suporte premium 24/7",
"displayOrder": 1
}'
{
"id": "pli_x0hn9c2eqp7wl4tzka8m3vgdi",
"planId": "plan_lhutpqeq2ml3stia4vn90xars",
"key": "suporte-premium",
"name": "Suporte premium 24/7",
"kind": "recurring",
"quantityDefault": 1,
"displayOrder": 1,
"description": null,
"metadata": {},
"createdAt": "2026-08-10T15:10:00.000Z",
"updatedAt": "2026-08-10T15:32:44.000Z"
}
Authorizations
API Key da Credential (gerada no Backoffice)
Body
Novo nome do item.
1 - 255Nova quantidade padrão.
x > 0Nova ordem de exibição na consulta do plano.
x >= 0Nova descrição. Envie null para limpar.
1000Novo objeto de metadados.
Show child attributes
Show child attributes
Response
Item atualizado
Identificador único do registro.
ID do plano ao qual o registro pertence.
Chave única e legível (slug) do componente dentro do plano.
Nome de exibição do plano ou do componente.
Natureza da cobrança: recurring cobra a cada ciclo; activation cobra uma única vez, na fatura de adesão.
recurring, activation Quantidade padrão do componente ao instanciar a assinatura.
Ordem de exibição do componente na listagem do plano.
Descrição do item (item do plano ou linha da fatura).
Metadados livres (pares chave-valor) para uso do integrador; não afeta o processamento.
Data e hora de criação do registro (ISO 8601).
Data e hora da última atualização do registro (ISO 8601).