Pular para o conteúdo principal

kobana billing proposals

Comandos de kobana billing proposals. Toda opção global (Opções globais) vale aqui.

ComandoHTTPDescrição
proposals bulk deleteDELETE /v1/proposals/bulkExcluir propostas em lote
proposals items listGET /v1/proposals/{id}/itemsListar itens da proposta
proposals items createPOST /v1/proposals/{id}/itemsAdicionar item à proposta
proposals items getGET /v1/proposals/{id}/items/{item_id}Obter item da proposta
proposals items updatePATCH /v1/proposals/{id}/items/{item_id}Atualizar item da proposta
proposals items deleteDELETE /v1/proposals/{id}/items/{item_id}Excluir item da proposta
proposals statsGET /v1/proposals/statsObter estatísticas de propostas
proposals listGET /v1/proposalsListar propostas
proposals createPOST /v1/proposalsCriar proposta
proposals updatePUT /v1/proposalsCriar ou atualizar proposta
proposals bulk-cancelPOST /v1/proposals/bulk-cancelCancelar propostas em lote
proposals bulk-sendPOST /v1/proposals/bulk-sendEnviar propostas em lote
proposals getGET /v1/proposals/{id}Obter proposta
proposals deleteDELETE /v1/proposals/{id}Excluir proposta
proposals acceptPOST /v1/proposals/{id}/acceptAceitar proposta
proposals cancelPOST /v1/proposals/{id}/cancelCancelar proposta
proposals duplicatePOST /v1/proposals/{id}/duplicateDuplicar proposta
proposals generate-pdfPOST /v1/proposals/{id}/generate-pdfGerar PDF da proposta
proposals jsonGET /v1/proposals/{id}/jsonObter snapshot JSON da proposta
proposals pricingGET /v1/proposals/{id}/pricingObter cálculo de preço da proposta
proposals publishPOST /v1/proposals/{id}/publishPublicar proposta
proposals sendPOST /v1/proposals/{id}/sendEnviar proposta por e-mail
proposals undo-acceptPOST /v1/proposals/{id}/undo-acceptDesfazer aceite da proposta
proposals unpublishPOST /v1/proposals/{id}/unpublishDespublicar proposta

proposals bulk delete​

Excluir propostas em lote

kobana billing proposals bulk delete [OPÇÕES]

DELETE /v1/proposals/bulk

Exclui várias propostas de uma vez (até 100). Retorna contagens de sucesso/falha e erros por id. Exige o nível de acesso delete. Substitui POST /v1/proposals/bulk-delete, removido.

Corpo da requisição

NomeTipoObrigatórioDescrição
idsarray<string (uuid)>simLista de UUIDs das propostas alvo. Mínimo 1, máximo 100.

Outros campos e objetos aninhados: kobana schema billing.proposals.bulk.delete.

Respostas

HTTPDescrição
200Resultado da exclusão em lote.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals items list​

Listar itens da proposta

kobana billing proposals items list [ID] [OPÇÕES]

GET /v1/proposals/{id}/items

Argumentos do caminho: id

Respostas

HTTPDescrição
200Lista de itens.
404Recurso não encontrado na organização atual.

proposals items create​

Adicionar item à proposta

kobana billing proposals items create [ID] [OPÇÕES]

POST /v1/proposals/{id}/items

Argumentos do caminho: id

Corpo da requisição

NomeTipoObrigatórioDescrição
product_idstring (uuid)simUUID do produto. Obrigatório.
price_idstring (uuid)simUUID do preço. Obrigatório.
unit_amountnumbersimValor unitário em reais (float, até 4 casas decimais).
quantitynumbernãoQuantidade. Padrão: 1.
metadataobjectnãoMetadados arbitrários do item.
custom_metadataobjectnãoCampos personalizados do item.

Outros campos e objetos aninhados: kobana schema billing.proposals.items.create.

Respostas

HTTPDescrição
201Item criado.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals items get​

Obter item da proposta

kobana billing proposals items get [ID] [ITEM_ID] [OPÇÕES]

GET /v1/proposals/{id}/items/{item_id}

Argumentos do caminho: id, item_id

Respostas

HTTPDescrição
200Detalhe do item.
404Recurso não encontrado na organização atual.

proposals items update​

Atualizar item da proposta

kobana billing proposals items update [ID] [ITEM_ID] [OPÇÕES]

PATCH /v1/proposals/{id}/items/{item_id}

Atualiza um item. Só é permitido em propostas em rascunho (status = draft).

Argumentos do caminho: id, item_id

Corpo da requisição

NomeTipoObrigatórioDescrição
quantityintegernãoAtualiza a quantidade.
unit_amountnumbernãoAtualiza o valor unitário em reais (float, até 4 casas decimais).
setup_amountnumbernãoAtualiza o setup unitário em reais (float, até 4 casas decimais).
custom_metadataobjectnãoproposals.items.update.body.custom_metadata

Outros campos e objetos aninhados: kobana schema billing.proposals.items.update.

Respostas

HTTPDescrição
200Item atualizado.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals items delete​

Excluir item da proposta

kobana billing proposals items delete [ID] [ITEM_ID] [OPÇÕES]

DELETE /v1/proposals/{id}/items/{item_id}

Remove um item. Só é permitido em propostas em rascunho (status = draft).

Argumentos do caminho: id, item_id

Respostas

HTTPDescrição
200Item excluído.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals stats​

Obter estatísticas de propostas

kobana billing proposals stats [OPÇÕES]

GET /v1/proposals/stats

Retorna contagens de propostas por status (draft, sent, viewed, accepted, rejected, expired, canceled) para a organização atual.

Respostas

HTTPDescrição
200Estatísticas de propostas.
404Recurso não encontrado na organização atual.

proposals list​

Listar propostas

kobana billing proposals list [OPÇÕES]

GET /v1/proposals

Retorna uma lista paginada de propostas comerciais da organização atual.

Parâmetros de consulta

NomeTipoObrigatórioDescrição
pageintegernãoPágina (começa em 1). Padrão: 1.
per_pageintegernãoItens por página. Padrão: 20. Máximo: 100.
sort_bystringnãoCampo de ordenação. Padrão depende do recurso.
sort_orderstringnãoDireção da ordenação. Padrão: desc. Valores: asc, desc.
person_idstringnãoFiltra por UUID da pessoa associada.
person_document_numberstringnãoFiltra por CPF/CNPJ da pessoa (exato).
person_name_containsstringnãoFiltra por nome da pessoa (busca parcial, sem distinção de maiúsculas).
statusstringnãoFiltra por status: draft, sent, viewed, accepted, rejected, expired ou canceled. Valores: draft, sent, viewed, accepted, rejected, expired, canceled.
billing_account_idstringnãoFiltra por billing_account_id vinculado.
prospect_idstringnãoFiltra por prospect_id.
contact_idstringnãoFiltra por contact_id vinculado.
coupon_idstringnãoFiltra por coupon_id aplicado.
company_idstringnãoFiltra por company_id emissor.
template_idstringnãoFiltra por template_id usado para gerar o PDF.
codestringnãoFiltra por código curto da proposta (ex.: PROP-0001).
external_idstringnãoFiltra por identificador externo.
searchstringnãoBusca textual livre.
created_afterstringnãoData de criação inicial do intervalo (YYYY-MM-DD).
created_beforestringnãoData de criação final do intervalo (YYYY-MM-DD).
expires_afterstringnãoFiltra por expires_at inicial (ISO 8601, inclusivo).
expires_beforestringnãoFiltra por expires_at final (ISO 8601, inclusivo).
accepted_afterstringnãoFiltra por accepted_at inicial (ISO 8601, inclusivo).
accepted_beforestringnãoFiltra por accepted_at final (ISO 8601, inclusivo).
sent_afterstringnãoFiltra por sent_at inicial (ISO 8601, inclusivo).
sent_beforestringnãoFiltra por sent_at final (ISO 8601, inclusivo).
viewed_afterstringnãoFiltra por viewed_at inicial (ISO 8601, inclusivo).
viewed_beforestringnãoFiltra por viewed_at final (ISO 8601, inclusivo).
rejected_afterstringnãoFiltra por rejected_at inicial (ISO 8601, inclusivo).
rejected_beforestringnãoFiltra por rejected_at final (ISO 8601, inclusivo).
setup_amount_minnumber,nullnãoFiltra por setup_amount mínimo (em reais).
setup_amount_maxnumber,nullnãoFiltra por setup_amount máximo (em reais).
monthly_amount_minnumber,nullnãoFiltra por monthly_amount mínimo (em reais).
monthly_amount_maxnumber,nullnãoFiltra por monthly_amount máximo (em reais).

Respostas

HTTPDescrição
200Lista paginada de propostas.
404Recurso não encontrado na organização atual.

proposals create​

Criar proposta

kobana billing proposals create [OPÇÕES]

POST /v1/proposals

Cria uma proposta comercial. É obrigatório informar billing_account_id, prospect_id ou prospect_data (criação inline do prospect).

Corpo da requisição

NomeTipoObrigatórioDescrição
company_idstring (uuid)nãoUUID da empresa emissora. Use null para limpar.
titlestringnãoTítulo da proposta. Padrão: "Proposta Comercial".
descriptionstringnãoDescrição livre da proposta.
billing_account_idstring (uuid)nãoUUID da conta de cobrança alvo (cliente existente). Obrigatório se prospect_id e prospect_data não forem informados.
prospect_idstring (uuid)nãoUUID de um prospect existente. Alternativa a billing_account_id/prospect_data.
contact_idstring (uuid)nãoUUID de um contato existente vinculado ao prospect.
prospect_dataobjectnãoDados para criar um prospect inline (pessoa jurídica). Alternativa a prospect_id/billing_account_id.
contact_dataobjectnãoDados para criar um contato inline (pessoa física responsável).
coupon_idstring (uuid)nãoUUID do cupom a aplicar.
template_idstring (uuid)nãoUUID do template para gerar o PDF.
discount_percentnumbernãoPercentual de desconto negociado (0–100), aplicado sobre o valor mensal; o desconto por ciclo se aplica sobre o valor com desconto. Não envie junto com discount_amount.
discount_amountnumbernãoDesconto fixo negociado por mês em reais (float, até 4 casas decimais), aplicado sobre o valor mensal; o desconto por ciclo se aplica sobre o valor com desconto. Não envie junto com discount_percent.
commitment_monthsintegernãoFidelidade em meses (1–120). Use null para remover. Copiado para a assinatura quando a proposta é aceita.
expires_atstringnãoData de expiração.
notesstringnãoAnotações internas.
itemsarray<object>nãoItens da proposta. Mínimo 1.
external_idstringnãoIdentificador no seu sistema externo, para idempotência/sincronização.
custom_metadataobjectnãoCampos personalizados (validados contra o schema da organização).

Outros campos e objetos aninhados: kobana schema billing.proposals.create.

Respostas

HTTPDescrição
201Proposta criada.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals update​

Criar ou atualizar proposta

kobana billing proposals update [OPÇÕES]

PUT /v1/proposals

Recebe o mesmo corpo do POST, acrescido de id e public_id, e deduplica por id, public_id, external_id e as chaves naturais do recurso, nesta ordem, parando na primeira que encontrar um registro. Se encontrar, atualiza e responde 200; se não, cria e responde 201. Os campos obrigatórios do POST só são exigidos quando nenhum registro é encontrado, e a atualização é parcial: campos ausentes mantêm o valor atual.

Corpo da requisição

NomeTipoObrigatórioDescrição
company_idstring (uuid)nãoUUID da empresa emissora. Use null para limpar.
titlestringnãoTítulo da proposta. Padrão: "Proposta Comercial".
descriptionstringnãoDescrição livre da proposta.
billing_account_idstring (uuid)nãoUUID da conta de cobrança alvo (cliente existente). Obrigatório se prospect_id e prospect_data não forem informados.
prospect_idstring (uuid)nãoUUID de um prospect existente. Alternativa a billing_account_id/prospect_data.
contact_idstring (uuid)nãoUUID de um contato existente vinculado ao prospect.
prospect_dataobjectnãoDados para criar um prospect inline (pessoa jurídica). Alternativa a prospect_id/billing_account_id.
contact_dataobjectnãoDados para criar um contato inline (pessoa física responsável).
coupon_idstring (uuid)nãoUUID do cupom a aplicar.
template_idstring (uuid)nãoUUID do template para gerar o PDF.
discount_percentnumbernãoPercentual de desconto negociado (0–100), aplicado sobre o valor mensal; o desconto por ciclo se aplica sobre o valor com desconto. Não envie junto com discount_amount.
discount_amountnumbernãoDesconto fixo negociado por mês em reais (float, até 4 casas decimais), aplicado sobre o valor mensal; o desconto por ciclo se aplica sobre o valor com desconto. Não envie junto com discount_percent.
commitment_monthsintegernãoFidelidade em meses (1–120). Use null para remover. Copiado para a assinatura quando a proposta é aceita.
expires_atstringnãoData de expiração.
notesstringnãoAnotações internas.
itemsarray<object>nãoItens da proposta. Mínimo 1.
external_idstringnãoIdentificador no seu sistema externo, para idempotência/sincronização.
custom_metadataobjectnãoCampos personalizados (validados contra o schema da organização).
idstring (uuid)nãoUUID do registro. Usado apenas para localizá-lo — nunca é gravado.
public_idstring (uuid)nãoUUID público do registro, usado para localizá-lo.

Outros campos e objetos aninhados: kobana schema billing.proposals.update.

Respostas

HTTPDescrição
200Registro atualizado.
201Registro criado.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals bulk-cancel​

Cancelar propostas em lote

kobana billing proposals bulk-cancel [OPÇÕES]

POST /v1/proposals/bulk-cancel

Cancela várias propostas de uma vez (até 100). Retorna contagens de sucesso/falha e erros por id.

Corpo da requisição

NomeTipoObrigatórioDescrição
idsarray<string (uuid)>simLista de UUIDs das propostas alvo. Mínimo 1, máximo 100.

Outros campos e objetos aninhados: kobana schema billing.proposals.bulk-cancel.

Respostas

HTTPDescrição
200Resultado do cancelamento em lote.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals bulk-send​

Enviar propostas em lote

kobana billing proposals bulk-send [OPÇÕES]

POST /v1/proposals/bulk-send

Envia várias propostas de uma vez (até 100). Retorna contagens de sucesso/falha e erros por id.

Corpo da requisição

NomeTipoObrigatórioDescrição
idsarray<string (uuid)>simLista de UUIDs das propostas alvo. Mínimo 1, máximo 100.

Outros campos e objetos aninhados: kobana schema billing.proposals.bulk-send.

Respostas

HTTPDescrição
200Resultado do envio em lote.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals get​

Obter proposta

kobana billing proposals get [ID] [OPÇÕES]

GET /v1/proposals/{id}

Argumentos do caminho: id

Respostas

HTTPDescrição
200Detalhe da proposta.
404Recurso não encontrado na organização atual.

proposals delete​

Excluir proposta

kobana billing proposals delete [ID] [OPÇÕES]

DELETE /v1/proposals/{id}

Argumentos do caminho: id

Respostas

HTTPDescrição
200Proposta excluída.
404Recurso não encontrado na organização atual.

proposals accept​

Aceitar proposta

kobana billing proposals accept [ID] [OPÇÕES]

POST /v1/proposals/{id}/accept

Aceita a proposta e cria (ou confirma) a assinatura correspondente no ciclo informado.

Argumentos do caminho: id

Corpo da requisição

NomeTipoObrigatórioDescrição
cyclestringsimCiclo de cobrança da assinatura criada no aceite: monthly, quarterly, semiannual ou annual. Valores: monthly, quarterly, semiannual, annual.

Outros campos e objetos aninhados: kobana schema billing.proposals.accept.

Respostas

HTTPDescrição
200Proposta aceita — retorna a proposta, subscription_id e invoice_id quando aplicáveis.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals cancel​

Cancelar proposta

kobana billing proposals cancel [ID] [OPÇÕES]

POST /v1/proposals/{id}/cancel

Cancela a proposta (status → canceled).

Argumentos do caminho: id

Respostas

HTTPDescrição
200Proposta cancelada.
404Recurso não encontrado na organização atual.

proposals duplicate​

Duplicar proposta

kobana billing proposals duplicate [ID] [OPÇÕES]

POST /v1/proposals/{id}/duplicate

Cria uma nova proposta a partir da proposta original (rascunho), preservando itens e configurações.

Argumentos do caminho: id

Respostas

HTTPDescrição
201Proposta duplicada.
404Recurso não encontrado na organização atual.

proposals generate-pdf​

Gerar PDF da proposta

kobana billing proposals generate-pdf [ID] [OPÇÕES]

POST /v1/proposals/{id}/generate-pdf

Gera (ou regenera) o PDF da proposta via Google App Scripts. Requer um template com app_script_url configurado.

Argumentos do caminho: id

Respostas

HTTPDescrição
200PDF gerado — retorna a proposta atualizada e as URLs do documento/PDF.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals json​

Obter snapshot JSON da proposta

kobana billing proposals json [ID] [OPÇÕES]

GET /v1/proposals/{id}/json

Retorna o snapshot completo dos dados usados para renderizar o template do PDF (espelha o que o AppScript recebe).

Argumentos do caminho: id

Respostas

HTTPDescrição
200Snapshot JSON da proposta.
404Recurso não encontrado na organização atual.

proposals pricing​

Obter cálculo de preço da proposta

kobana billing proposals pricing [ID] [OPÇÕES]

GET /v1/proposals/{id}/pricing

Retorna o detalhamento de preços por ciclo de cobrança (mensal, trimestral, semestral, anual), com setup e descontos aplicados.

Argumentos do caminho: id

Respostas

HTTPDescrição
200Detalhamento de preços.
404Recurso não encontrado na organização atual.

proposals publish​

Publicar proposta

kobana billing proposals publish [ID] [OPÇÕES]

POST /v1/proposals/{id}/publish

Publica a proposta (draft → sent) sem disparar o e-mail, tornando-a acessível no portal.

Argumentos do caminho: id

Respostas

HTTPDescrição
200Proposta publicada.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals send​

Enviar proposta por e-mail

kobana billing proposals send [ID] [OPÇÕES]

POST /v1/proposals/{id}/send

Envia (ou reenvia) a proposta por e-mail ao destinatário. Estados aceitos: draft, sent ou viewed. Opcionalmente, é possível customizar subject e message (HTML).

Argumentos do caminho: id

Corpo da requisição

NomeTipoObrigatórioDescrição
subjectstringnãoAssunto customizado do e-mail. Padrão: Proposta {code}.
messagestringnãoMensagem HTML customizada do corpo do e-mail.

Outros campos e objetos aninhados: kobana schema billing.proposals.send.

Respostas

HTTPDescrição
200Proposta enviada.
400Corpo da requisição falhou na validação.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.

proposals undo-accept​

Desfazer aceite da proposta

kobana billing proposals undo-accept [ID] [OPÇÕES]

POST /v1/proposals/{id}/undo-accept

Desfaz a aceitação: remove a assinatura vinculada e volta o status para sent.

Argumentos do caminho: id

Respostas

HTTPDescrição
200Aceitação desfeita.
404Recurso não encontrado na organização atual.

proposals unpublish​

Despublicar proposta

kobana billing proposals unpublish [ID] [OPÇÕES]

POST /v1/proposals/{id}/unpublish

Volta a proposta para rascunho (sent/viewed → draft).

Argumentos do caminho: id

Respostas

HTTPDescrição
200Proposta despublicada.
404Recurso não encontrado na organização atual.
422Corpo da requisição falhou na validação.