API Documentation

API Endpoint

Proposals

Proposals

Following diagram shows proposals in our data hierarchy:

Proposals diagram

Supported filter params

  • id (array)

  • deal_id (array)

  • status (array) (draft, sent)

GET /api/v2/proposals
Requestsreturns proposals

GET  /api/v2/proposals

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "1",
      "type": "proposals",
      "attributes": {
        "name": "test proposal",
        "note": null,
        "footer": null,
        "status": "draft",
        "purchase_order_number": null,
        "date": "2025-08-02",
        "end_date": null,
        "sent_at": null,
        "created_at": "2025-08-02T02:25:42.559+02:00",
        "custom_fields": null,
        "link_uuid": "932e1756-f0f2-51c9-addc-53b4bd3572ce",
        "link_status": "inactive",
        "responder_name": null,
        "responder_email": null,
        "status_changed_at": null,
        "disclaimer": null,
        "disclaimer_enabled": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "note_interpolated": null,
        "footer_interpolated": null
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2258"
          }
        },
        "client": {
          "meta": {
            "included": false
          }
        },
        "deal": {
          "meta": {
            "included": false
          }
        },
        "document_type": {
          "meta": {
            "included": false
          }
        },
        "proposal_from": {
          "meta": {
            "included": false
          }
        },
        "proposal_to": {
          "meta": {
            "included": false
          }
        },
        "responsible": {
          "meta": {
            "included": false
          }
        },
        "subsidiary": {
          "meta": {
            "included": false
          }
        },
        "tax_rate": {
          "meta": {
            "included": false
          }
        },
        "contact": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "deal_creator": {
          "meta": {
            "included": false
          }
        },
        "project": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "2",
      "type": "proposals",
      "attributes": {
        "name": "test proposal",
        "note": null,
        "footer": null,
        "status": "draft",
        "purchase_order_number": null,
        "date": "2025-08-02",
        "end_date": null,
        "sent_at": null,
        "created_at": "2025-08-02T02:25:42.643+02:00",
        "custom_fields": null,
        "link_uuid": "ef0b8f32-2417-56cf-bff5-2dad0b90f93b",
        "link_status": "inactive",
        "responder_name": null,
        "responder_email": null,
        "status_changed_at": null,
        "disclaimer": null,
        "disclaimer_enabled": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "note_interpolated": null,
        "footer_interpolated": null
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2258"
          }
        },
        "client": {
          "meta": {
            "included": false
          }
        },
        "deal": {
          "meta": {
            "included": false
          }
        },
        "document_type": {
          "meta": {
            "included": false
          }
        },
        "proposal_from": {
          "meta": {
            "included": false
          }
        },
        "proposal_to": {
          "meta": {
            "included": false
          }
        },
        "responsible": {
          "meta": {
            "included": false
          }
        },
        "subsidiary": {
          "meta": {
            "included": false
          }
        },
        "tax_rate": {
          "meta": {
            "included": false
          }
        },
        "contact": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "deal_creator": {
          "meta": {
            "included": false
          }
        },
        "project": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/proposals?page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/proposals?page%5Bnumber%5D=1&page%5Bsize%5D=30"
  },
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 2,
    "page_size": 30,
    "max_page_size": 200
  }
}

Get proposals
GET/api/v2/proposals


GET /api/v2/proposals/1
Requestsreturns proposals

GET  /api/v2/proposals/3

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "3",
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "note": null,
      "footer": null,
      "status": "draft",
      "purchase_order_number": null,
      "date": "2025-08-02",
      "end_date": null,
      "sent_at": null,
      "created_at": "2025-08-02T02:25:42.787+02:00",
      "custom_fields": null,
      "link_uuid": "930932ff-a0db-517f-84e9-944dd3662e9c",
      "link_status": "inactive",
      "responder_name": null,
      "responder_email": null,
      "status_changed_at": null,
      "disclaimer": null,
      "disclaimer_enabled": false,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "note_interpolated": null,
      "footer_interpolated": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2259"
        }
      },
      "client": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "document_type": {
        "meta": {
          "included": false
        }
      },
      "proposal_from": {
        "meta": {
          "included": false
        }
      },
      "proposal_to": {
        "meta": {
          "included": false
        }
      },
      "responsible": {
        "meta": {
          "included": false
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      },
      "tax_rate": {
        "meta": {
          "included": false
        }
      },
      "contact": {
        "meta": {
          "included": false
        }
      },
      "creator": {
        "meta": {
          "included": false
        }
      },
      "deal_creator": {
        "meta": {
          "included": false
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a proposal
GET/api/v2/proposals/{id}

URI Parameters
HideShow
id
number (required) Example: 1

proposal id


GET /api/v2/proposals/1/sync_status
Requestsreturns proposals

GET  /api/v2/proposals/4/sync_status

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "data": {
    "id": 4,
    "in_sync": true
  }
}

Get proposal's sync status
GET/api/v2/proposals/{id}/sync_status

URI Parameters
HideShow
id
number (required) Example: 1

proposal id


POST /api/v2/proposals
Requestsreturns created

POST  /api/v2/proposals

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "status": "draft"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": "1882"
        }
      },
      "document_type": {
        "data": {
          "type": "document-types",
          "id": "2171"
        }
      },
      "tax_rate": {
        "data": {
          "type": "tax_rate",
          "id": "50"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "5",
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "note": null,
      "footer": null,
      "status": "draft",
      "purchase_order_number": null,
      "date": "2025-08-02",
      "end_date": null,
      "sent_at": null,
      "created_at": "2025-08-02T02:25:43.171+02:00",
      "custom_fields": null,
      "link_uuid": "ad8ff654-ae01-564e-b90a-c17bd6df81f4",
      "link_status": "inactive",
      "responder_name": null,
      "responder_email": null,
      "status_changed_at": null,
      "disclaimer": null,
      "disclaimer_enabled": false,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "note_interpolated": null,
      "footer_interpolated": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2263"
        }
      },
      "client": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "document_type": {
        "meta": {
          "included": false
        }
      },
      "proposal_from": {
        "meta": {
          "included": false
        }
      },
      "proposal_to": {
        "meta": {
          "included": false
        }
      },
      "responsible": {
        "meta": {
          "included": false
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      },
      "tax_rate": {
        "meta": {
          "included": false
        }
      },
      "contact": {
        "meta": {
          "included": false
        }
      },
      "creator": {
        "meta": {
          "included": false
        }
      },
      "deal_creator": {
        "meta": {
          "included": false
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Create a proposal
POST/api/v2/proposals

URI Parameters
HideShow
name
string (required) Example: Name

name

status
string (required) Example: draft

proposal status (draft, sent)

deal_id
number (required) Example: 1

deal

document_type_id
number (required) Example: 1

document type

tax_rate_id
number (optional) Example: 1

tax rate


PATCH /api/v2/proposals/1
Requestsupdates proposalreturns errorreturns errorreturns errorupdates proposal

PATCH  /api/v2/proposals/6

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "name": "new name",
      "status": "sent"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": "1883"
        }
      },
      "document_type": {
        "data": {
          "type": "document-types",
          "id": "2173"
        }
      },
      "tax_rate": {
        "data": {
          "type": "tax_rate",
          "id": "51"
        }
      }
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "6",
    "type": "proposals",
    "attributes": {
      "name": "new name",
      "note": null,
      "footer": null,
      "status": "sent",
      "purchase_order_number": null,
      "date": "2025-08-02",
      "end_date": null,
      "sent_at": null,
      "created_at": "2025-08-02T02:25:43.307+02:00",
      "custom_fields": null,
      "link_uuid": "79c2f03c-7d96-5f11-9ef9-aea0c3f5c8bf",
      "link_status": "inactive",
      "responder_name": null,
      "responder_email": null,
      "status_changed_at": null,
      "disclaimer": null,
      "disclaimer_enabled": false,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "note_interpolated": null,
      "footer_interpolated": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2264"
        }
      },
      "client": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "document_type": {
        "meta": {
          "included": false
        }
      },
      "proposal_from": {
        "meta": {
          "included": false
        }
      },
      "proposal_to": {
        "meta": {
          "included": false
        }
      },
      "responsible": {
        "meta": {
          "included": false
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      },
      "tax_rate": {
        "meta": {
          "included": false
        }
      },
      "contact": {
        "meta": {
          "included": false
        }
      },
      "creator": {
        "meta": {
          "included": false
        }
      },
      "deal_creator": {
        "meta": {
          "included": false
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/proposals/7

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "name": "new name"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": ""
        }
      }
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "attribute is invalid",
      "source": {
        "pointer": "data/attributes/deal"
      }
    }
  ]
}

PATCH  /api/v2/proposals/8

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "name": "new name"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": ""
        }
      }
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "attribute is invalid",
      "source": {
        "pointer": "data/attributes/deal"
      }
    }
  ]
}

PATCH  /api/v2/proposals/9

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "name": "new name",
      "status": "sent"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": "1887"
        }
      },
      "document_type": {
        "data": {
          "type": "document-types",
          "id": "2179"
        }
      },
      "tax_rate": {
        "data": {
          "type": "tax_rate",
          "id": "57"
        }
      }
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "deal cannot be changed",
      "source": {
        "pointer": "data/attributes/deal"
      }
    },
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "cannot edit a proposal that is not in draft status",
      "source": {
        "pointer": "data/attributes/proposal"
      }
    }
  ]
}

PATCH  /api/v2/proposals/10

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "status": "draft"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": "1888"
        }
      },
      "document_type": {
        "data": {
          "type": "document-types",
          "id": "2182"
        }
      },
      "tax_rate": {
        "data": {
          "type": "tax_rate",
          "id": "58"
        }
      }
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "10",
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "note": null,
      "footer": null,
      "status": "draft",
      "purchase_order_number": null,
      "date": "2025-08-02",
      "end_date": null,
      "sent_at": null,
      "created_at": "2025-08-02T02:25:43.899+02:00",
      "custom_fields": null,
      "link_uuid": "aa81a6d0-44c2-509d-92c7-9274bf69c494",
      "link_status": "inactive",
      "responder_name": null,
      "responder_email": null,
      "status_changed_at": null,
      "disclaimer": null,
      "disclaimer_enabled": false,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "note_interpolated": null,
      "footer_interpolated": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2268"
        }
      },
      "client": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "document_type": {
        "meta": {
          "included": false
        }
      },
      "proposal_from": {
        "meta": {
          "included": false
        }
      },
      "proposal_to": {
        "meta": {
          "included": false
        }
      },
      "responsible": {
        "meta": {
          "included": false
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      },
      "tax_rate": {
        "meta": {
          "included": false
        }
      },
      "contact": {
        "meta": {
          "included": false
        }
      },
      "creator": {
        "meta": {
          "included": false
        }
      },
      "deal_creator": {
        "meta": {
          "included": false
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Update a proposal
PATCH/api/v2/proposals/{id}

URI Parameters
HideShow
id
number (required) Example: 1

proposal id


PATCH /api/v2/proposals/13/sync
Requestscreates proposal sections and servicesreturns errorsends purchase_order via mail

PATCH  /api/v2/proposals/11/sync

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "11",
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "note": null,
      "footer": null,
      "status": "draft",
      "purchase_order_number": null,
      "date": "2025-08-02",
      "end_date": null,
      "sent_at": null,
      "created_at": "2025-08-02T02:25:44.053+02:00",
      "custom_fields": null,
      "link_uuid": "752cee7f-732c-5484-8e6b-1536b58268df",
      "link_status": "inactive",
      "responder_name": null,
      "responder_email": null,
      "status_changed_at": null,
      "disclaimer": null,
      "disclaimer_enabled": false,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "note_interpolated": null,
      "footer_interpolated": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2269"
        }
      },
      "client": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "document_type": {
        "meta": {
          "included": false
        }
      },
      "proposal_from": {
        "meta": {
          "included": false
        }
      },
      "proposal_to": {
        "meta": {
          "included": false
        }
      },
      "responsible": {
        "meta": {
          "included": false
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      },
      "tax_rate": {
        "meta": {
          "included": false
        }
      },
      "contact": {
        "meta": {
          "included": false
        }
      },
      "creator": {
        "meta": {
          "included": false
        }
      },
      "deal_creator": {
        "meta": {
          "included": false
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/proposals/12/sync

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses409
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "409",
      "code": "not_in_draft_status",
      "title": "Conflict error",
      "source": {}
    }
  ]
}

PATCH  /api/v2/proposals/13/send

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "proposals",
    "attributes": {
      "to": [
        "test@email.com"
      ],
      "cc": [
        "test@productive.io",
        "test-2@productive.io"
      ],
      "bcc": [
        "mail@something.com"
      ],
      "subject": "Mail title",
      "body": "Lorem ipsum dolor si amet"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "13",
    "type": "proposals",
    "attributes": {
      "name": "test proposal",
      "note": null,
      "footer": null,
      "status": "sent",
      "purchase_order_number": null,
      "date": "2025-08-02",
      "end_date": null,
      "sent_at": null,
      "created_at": "2025-08-02T02:25:44.361+02:00",
      "custom_fields": null,
      "link_uuid": "6174376b-8a5d-5aeb-bc8a-69a203cfa830",
      "link_status": "inactive",
      "responder_name": null,
      "responder_email": null,
      "status_changed_at": null,
      "disclaimer": null,
      "disclaimer_enabled": false,
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "note_interpolated": null,
      "footer_interpolated": null
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "2271"
        }
      },
      "client": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "document_type": {
        "meta": {
          "included": false
        }
      },
      "proposal_from": {
        "meta": {
          "included": false
        }
      },
      "proposal_to": {
        "meta": {
          "included": false
        }
      },
      "responsible": {
        "meta": {
          "included": false
        }
      },
      "subsidiary": {
        "meta": {
          "included": false
        }
      },
      "tax_rate": {
        "meta": {
          "included": false
        }
      },
      "contact": {
        "meta": {
          "included": false
        }
      },
      "creator": {
        "meta": {
          "included": false
        }
      },
      "deal_creator": {
        "meta": {
          "included": false
        }
      },
      "project": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Sync a proposal
PATCH/api/v2/proposals/{id}/sync

URI Parameters
HideShow
id
number (required) Example: 13

Generated by aglio on 02 Aug 2025