Skip to main content
curl -X POST "https://api.chargefy.io/v1/payment-links/plink_demo_z2kkA78c" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Bio Instagram - Atualizado",
    "metadata": {
      "campaign": "spring2026",
      "channel": "instagram"
    },
    "success_url": "https://meusite.com/nova-pagina"
  }'
{
  "id": "plink_demo_z2kkA78c",
  "object": "payment_link",
  "allow_discount_codes": true,
  "cancel_url": null,
  "created_at": "2026-05-02T18:31:00Z",
  "discount": null,
  "is_active": true,
  "label": "Bio Instagram - Atualizado",
  "line_items": [],
  "livemode": true,
  "metadata": {
    "campaign": "spring2026",
    "channel": "instagram"
  },
  "payment_method_options": {
    "credit_card": {
      "installments": {
        "has_interest": true,
        "max_count": 12
      }
    }
  },
  "require_billing_address": false,
  "require_document": true,
  "require_phone": false,
  "success_url": "https://meusite.com/nova-pagina",
  "updated_at": "2026-05-02T18:35:00Z",
  "url": "https://pay.chargefy.io/link/9a1bc3d2e4f5..."
}
Atualiza campos de um payment link. Apenas os campos enviados são modificados — o resto permanece intacto. Importante: atualizações afetam apenas cliques futuros. Sessões já materializadas a partir de cliques anteriores guardam os line_items que tinham no momento do clique — é cópia, não referência. Trocar o preço hoje não muda nada do que já está em cobrança; só novos cliques a partir de agora veem o novo preço.

Autenticação

Mesmo contrato de POST /v1/payment-links — Org API key (write ou admin) ou API key da plataforma (platform_admin) com header Organization.

Parâmetros de caminho

id
string
required
ID do payment link, prefixo plink_.

Attributes

Todos os campos são opcionais. Apenas o que for enviado é atualizado.
allow_discount_codes
boolean
Permite cupom no checkout.
cancel_url
string
Envie null pra remover.
discount_id
string
Desconto auto-aplicado. null remove.
is_active
boolean
Envie false para desativar o link. Cliques futuros retornam 404; sessões já materializadas continuam vivas. Envie true para reativar.
label
string
Nome interno. Envie null pra remover.
line_items
array
Substitui completamente os line items do link. Mesma forma de envio do POST. Os antigos são arquivados (cliques futuros não os enxergam mais); sessões já materializadas mantêm os antigos.
metadata
object
Substitui o objeto inteiro. Pra preservar chaves existentes, busque o link primeiro e envie o merge.
payment_method_options
object
Opções por método de pagamento. Substitui o objeto inteiro.
require_billing_address
boolean
Endereço de cobrança obrigatório. Boleto sempre exige.
require_document
boolean
Documento (CPF/CNPJ) do comprador obrigatório. Boleto sempre exige.
require_phone
boolean
Telefone do comprador obrigatório.
success_url
string
Envie null pra remover.
curl -X POST "https://api.chargefy.io/v1/payment-links/plink_demo_z2kkA78c" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Bio Instagram - Atualizado",
    "metadata": {
      "campaign": "spring2026",
      "channel": "instagram"
    },
    "success_url": "https://meusite.com/nova-pagina"
  }'

Resposta

200 OK com o objeto canônico do payment link. Mesma forma da resposta de POST /v1/payment-links.
{
  "id": "plink_demo_z2kkA78c",
  "object": "payment_link",
  "allow_discount_codes": true,
  "cancel_url": null,
  "created_at": "2026-05-02T18:31:00Z",
  "discount": null,
  "is_active": true,
  "label": "Bio Instagram - Atualizado",
  "line_items": [],
  "livemode": true,
  "metadata": {
    "campaign": "spring2026",
    "channel": "instagram"
  },
  "payment_method_options": {
    "credit_card": {
      "installments": {
        "has_interest": true,
        "max_count": 12
      }
    }
  },
  "require_billing_address": false,
  "require_document": true,
  "require_phone": false,
  "success_url": "https://meusite.com/nova-pagina",
  "updated_at": "2026-05-02T18:35:00Z",
  "url": "https://pay.chargefy.io/link/9a1bc3d2e4f5..."
}

Webhook

Quando a chamada altera algum campo, a Chargefy emite payment.link.updated. O webhook segue o envelope padrão: data.object carrega o payment link completo já atualizado, e data.previous_attributes carrega apenas os campos alterados com o valor anterior.
{
  "id": "evt_1Nh3kZ8WqX",
  "object": "event",
  "created_at": "2026-05-02T18:35:00Z",
  "data": {
    "object": {
      "id": "plink_demo_z2kkA78c",
      "object": "payment_link",
      "allow_discount_codes": true,
      "cancel_url": null,
      "created_at": "2026-05-02T18:31:00Z",
      "discount": null,
      "is_active": true,
      "label": "Bio Instagram - Atualizado",
      "line_items": [],
      "livemode": true,
      "metadata": {
        "campaign": "spring2026",
        "channel": "instagram"
      },
      "payment_method_options": {
        "credit_card": {
          "installments": {
            "has_interest": true,
            "max_count": 12
          }
        }
      },
      "require_billing_address": false,
      "require_document": true,
      "require_phone": false,
      "success_url": "https://meusite.com/nova-pagina",
      "updated_at": "2026-05-02T18:35:00Z",
      "url": "https://pay.chargefy.io/link/9a1bc3d2e4f5..."
    },
    "previous_attributes": {
      "label": "Bio Instagram - Plano Pro",
      "metadata": {
        "campaign": "spring2026"
      },
      "success_url": "https://meusite.com/obrigado"
    }
  },
  "livemode": true,
  "organization": "org_123",
  "type": "payment.link.updated"
}
curl -X POST "https://api.chargefy.io/v1/payment-links/plink_demo_z2kkA78c" \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
    "line_items": [
      {
        "price_id": "price_demo_pro_yearly",
        "quantity": 1
      }
    ]
  }'
A partir desse momento, novos cliques abrem checkout com o novo preço. Cliques anteriores (sessões já criadas) seguem com o preço antigo até concluírem ou expirarem.

Erros comuns

HTTPRazão
404id não existe.
400line_items enviado mas vazio ou inválido.
403Sem permissão na org dona do link.