Why is there no continuity between the Quoter API schema and the webhook payload schema?
- “id” is a completely different format and doesn’t match up to anything. This is wild, because the webhook line_items include “item_id” with the same format as the API quote “id”, so someone is at least aware of that type of id but chose not to put it in the API.
-
Quotes:
API
[{
"id": "quot_3C58MaDWeCHWqXmaQ**********",
//"quote_id": MISSING //
"number": "15002",
"revision": "2",
"uuid": "288a-dfa069c5-354b-****-****-************",
//"line_items": MISSING, WHY GOD WHY//
}]
Webhook
[{
//"id": MISSING//
"quote_id": "12345678",
"quote_number": "15002",
//"revision": MISSING //,
//"UUID": MISSING //,
...
"line_items": [
{
"id": "98765432",
"item_id": "item_3BgCMrQH12cmC5Crr**********",
...
}]
// (╯°□°)╯︵ ┻━┻
-
- the quote number returned by the webhook exists in the quotes api schema, but the webhook doesn’t include a revision field, and the quote number doesn’t uniquely identify records returned by the api
- the webhook returns “customer” metadata, but the API returns “client”
- there’s a quote UUID in the API, which is useful, but the webhook doesn’t include it
As far as I can tell, there’s no clean way to create a relationship between the two sets of results. this is a pain because the API does NOT return line items but DOES return other important metadata. The webhook DOES return line items but does NOT return the same metadata as the API.
Please, please fix this. As it stands, the Quoter API is nearly useless for retrieving full quote context.

