Skip to main content

Proposals

The quote before the subscription: publish, send, generate a PDF and accept. Accepting is what turns the proposal into a subscription — and undo-accept reverses it.

CommandHTTPDescription
proposals listGET /v1/proposalsList proposals
proposals createPOST /v1/proposalsCreate a proposal
proposals getGET /v1/proposals/{id}Get a proposal
proposals updatePATCH /v1/proposals/{id}Update a proposal
proposals deleteDELETE /v1/proposals/{id}Delete a proposal
proposals acceptPOST /v1/proposals/{id}/acceptAccept a proposal
proposals cancelPOST /v1/proposals/{id}/cancelCancel a proposal
proposals duplicatePOST /v1/proposals/{id}/duplicateDuplicate a proposal
proposals generate-pdfPOST /v1/proposals/{id}/generate-pdfGenerate the proposal PDF
proposals jsonGET /v1/proposals/{id}/jsonGet the proposal's JSON snapshot
proposals pricingGET /v1/proposals/{id}/pricingGet the proposal's price calculation
proposals publishPOST /v1/proposals/{id}/publishPublish a proposal
proposals sendPOST /v1/proposals/{id}/sendSend a proposal by e-mail
proposals undo-acceptPOST /v1/proposals/{id}/undo-acceptUndo the proposal's acceptance
proposals unpublishPOST /v1/proposals/{id}/unpublishUnpublish a proposal
proposals bulk-cancel createPOST /v1/proposals/bulk-cancelCancel proposals in bulk
proposals bulk-delete createPOST /v1/proposals/bulk-deleteDelete proposals in bulk
proposals bulk-send createPOST /v1/proposals/bulk-sendSend proposals in bulk
proposals items getGET /v1/proposals/{id}/itemsList the proposal's items
proposals items createPOST /v1/proposals/{id}/itemsAdd an item to a proposal
proposals items updatePATCH /v1/proposals/{id}/items/{itemId}Update a proposal item
proposals items deleteDELETE /v1/proposals/{id}/items/{itemId}Delete a proposal item
proposals stats listGET /v1/proposals/statsGet proposal statistics

Examples​

--params carries query and path parameters (id, page, filters); --json carries the request body; --fields limits which fields come back — worth using on every list/get to save context. See Global flags for the full reference.

# List proposals
kobana billing proposals list \
--fields "id,public_id,external_id,company_id,code"

# Get a proposal
kobana billing proposals get --params '{"id": "PROPOSAL_ID"}'

# Create a proposal
kobana billing proposals create \
--json '{"company_id": "COMPANY_ID", "title": "TITLE", "description": "DESCRIPTION"}'

# Update a proposal
kobana billing proposals update \
--params '{"id": "PROPOSAL_ID"}' \
--json '{"company_id": "COMPANY_ID", "title": "TITLE", "description": "DESCRIPTION"}'

# Accept a proposal
kobana billing proposals accept \
--params '{"id": "PROPOSAL_ID"}' \
--json '{"cycle": "monthly"}'

# Delete a proposal
kobana billing proposals delete --params '{"id": "PROPOSAL_ID"}' --dry-run

Next steps​