Skip to content

Proposals

Returns a list of proposal templates of your organization.

GET https://api.arcsite.com/v1/proposal_templates

Terminal window
curl "https://api.arcsite.com/v1/proposal_templates" \
-H "Authorization: Bearer your_api_token_here"
Response
[
{
"id": "36029621652695041",
"name": "Proposal Template 1"
}
]
ParameterDefaultInDescription
page1queryRequest a specific page
per_page10queryPage size

Returns a list of proposals of your organization. You can filter by project and paginate; proposals are sorted by most recent activity first.

GET https://api.arcsite.com/v1/proposals

Terminal window
curl "https://api.arcsite.com/v1/proposals" \
-H "Authorization: Bearer your_api_token_here"
Response
[
{
"proposal_id": "123",
"project_id": "456",
"name": "Main Building Proposal",
"status": "APPROVED",
"sales_representative": "John Doe",
"contact_email": "john@example.com",
"customer_name": "Jane Smith",
"customer_email": "jane@example.com",
"document_number": "PROP-2024-001",
"template_id": "36029621652695041",
"total": 15000.0,
"pdf_url": "https://d1umxpetlubu85.cloudfront.net/36029346774973628/36029621653386370/36029621653386685/c6f62f3d-db06-42df-8138-91d80e792e5d/Drawing_1_Pre-Survey_Proposal_-281-29-page_03_test-page_02_test.pdf",
"approved_option": {
"id": "789",
"drawing_id": "abc123def456"
},
"initial_proposal_id": "111"
}
]
ParameterDefaultInDescription
project_id-query(optional) Project ID to filter proposals.
page1query(optional) Request a specific page.
per_page10query(optional) Page size.

Each item in the response array is a Proposal object with the following fields. Some fields are returned only for specific statuses.

ParameterTypeDescription
proposal_idStringProposal ID
project_idStringProject ID the proposal belongs to
nameStringProposal name
statusStringProposal status (DRAFT/PENDING/VOID/LOST/APPROVED).
sales_representativeStringName of the sales representative
contact_emailStringEmail of the sales representative
customer_nameStringCustomer name
customer_emailStringCustomer email
document_numberStringProposal document number
template_idStringProposal template ID
close_noteString(optional) Reason for closing the proposal. Present when status is VOID or LOST.
totalNumber(optional) Total amount of the proposal. Present when status is APPROVED.
pdf_urlString(optional) URL of the proposal PDF file. Present when status is APPROVED.
approved_optionApprovedOption(optional) Approved option information. Present when status is APPROVED.
initial_proposal_idString(optional) ID of the initial proposal. Only present for change order proposals.
ParameterTypeDescription
idString(optional) Only for online approvals.
drawing_idStringID of the associated drawing resource.

Returns one proposal by proposal ID. The response uses the same base Proposal fields as Query Proposals. For online proposals, the response also includes proposal_options, which can be used to link unsold proposals to the drawing versions they were generated from.

GET https://api.arcsite.com/v1/proposals/<proposal_id>

Terminal window
curl "https://api.arcsite.com/v1/proposals/<proposal_id>" \
-H "Authorization: Bearer your_api_token_here"
Response
{
"proposal_id": "123",
"project_id": "456",
"name": "Main Building Proposal",
"status": "PENDING",
"sales_representative": "John Doe",
"contact_email": "john@example.com",
"customer_name": "Jane Smith",
"customer_email": "jane@example.com",
"document_number": "PROP-2024-001",
"template_id": "36029621652695041",
"proposal_options": [
{
"name": "Option 1",
"drawing_id": "abc123def456",
"drawing_version_id": "441f328-1a1b-4882-bd26-c86ee5a7bb0f",
5 collapsed lines
"total": 15000.0,
"pdf_url": "https://d1umxpetlubu85.cloudfront.net/36029346774973628/36029621653386370/36029621653386685/c6f62f3d-db06-42df-8138-91d80e792e5d/Drawing_1_Pre-Survey_Proposal_-281-29-page_03_test-page_02_test.pdf"
}
]
}
ParameterTypeDescription
proposal_idString(required) Proposal ID

The response is a Proposal object with the fields documented in the Proposal schema. Online proposals also include the following field:

ParameterTypeDescription
proposal_optionsList[ProposalOption](optional) Full list of proposal options for online proposals, including drawing and PDF details
ParameterTypeDescription
nameStringProposal option name
drawing_idStringID of the drawing resource used to generate this option
drawing_version_idStringID of the drawing version used to generate this option
totalNumberTotal amount for this proposal option
pdf_urlStringTime-limited URL of the proposal option PDF file

Export Proposal PDF by giving the proposal template id.

POST https://api.arcsite.com/v1/export_proposal_pdf

Terminal window
curl "https://api.arcsite.com/v1/export_proposal_pdf" \
-H "Authorization: Bearer your_api_token_here"
Response
{
"url": "https://d1umxpetlubu85.cloudfront.net/36029346774973628/36029621653386370/36029621653386685/c6f62f3d-db06-42df-8138-91d80e792e5d/Drawing_1_Pre-Survey_Proposal_-281-29-page_03_test-page_02_test.pdf"
}
ParameterTypeDescription
template_idString(required) Template id from Query proposal templates
drawing_idString(required) Drawing id

Returns a list of payments that have been received for the specified proposal.

GET https://api.arcsite.com/v1/proposals/<proposal_id>/payments

Terminal window
curl "https://api.arcsite.com/v1/proposals/<proposal_id>/payments" \
-H "Authorization: Bearer your_api_token_here"
Response
[
{
"paid_amount": 2500.0,
"pay_channel": "arcsite_payment",
"paid_time": "2025-11-06T10:15:30Z",
"payment_method": "Credit Card",
"status": "succeeded",
"refunded_amount": 500.0
},
{
"paid_amount": 1000.0,
"pay_channel": "mark_as_paid",
"paid_date": "2025-11-07",
"payment_method": "Check",
"status": "succeeded"
}
]

The response is an array of Payment objects with the following fields:

FieldTypeDescription
paid_amountNumberThe amount paid
pay_channelStringChannel through which payment was received. Values: arcsite_payment or mark_as_paid
paid_timeStringISO 8601 datetime when payment was received. Present when pay_channel is arcsite_payment
paid_dateStringDate when payment was recorded (YYYY-MM-DD format). Present when pay_channel is mark_as_paid
payment_methodStringMethod of payment (e.g., “Credit Card”, “Check”, “ACH”)
statusStringPayment status. Values: succeeded (payment successful) or returned (ACH Return occurred)
refunded_amountNumber(optional) Amount refunded. Only included for payments that have at least one refund record. Subtract this from paid_amount to get the net amount received