invoices.qstConfirm
Confirm the reviewed QST setup for this organization with the person's explicit approval of the current invoices.qstReview calculation and facts. Pass its reviewHash and expectedSettingsRevision, the same saved invoice or proposed draft, reviewed facts, and an idempotency key. Changed records or settings require a fresh review. Saves the registration basis for later invoices while continuing to recheck qualifying sales, effective dates, customer status and missing evidence. Confirmation does not register the company with Revenu Québec, cancel registration, or send an invoice. Administrator only.
/api/v1/accounting/invoices.qstConfirmPermissions
Who can call it
Retries
MCP
accounting_invoices_qst_confirmFields
idstring (ID)The record's ID.
draftobjectNo other fields
factsobjectRequiredNo other fields
clearCustomerGeneralQstbooleanDefault false
reviewHashstringRequiredSHA-256 hash as 64 lowercase hex characters
expectedSettingsRevisionintegerRequiredThe related record's current revision, from the last time you read it.
0 to 9007199254740991
idempotencyKeystringRequiredAny unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match.
8–200 characters
Example
curl https://app.getoatmilk.com/api/v1/accounting/invoices.qstConfirm \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"facts": {
"supplierOutsideQuebec": true,
"carriesOnBusinessInQuebec": true,
"registration": "unknown",
"registrationNumber": "example",
"effectiveDate": "2026-09-30",
"allSalesRecorded": true,
"additionalSales": [
{
"date": "2026-09-30",
"amountCadMinor": "1250",
"description": "Synthetic example from the docs"
}
],
"expectedAdditionalSalesCadMinor": "1250",
"expectedSalesAsOf": "example",
"customerGeneralQstNumber": "example"
},
"reviewHash": "9f2b5c1d7e3a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4c",
"expectedSettingsRevision": 3,
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"
}'{
"data": { … }
}This action checks your data too, so replace the example values with your own before sending it.
Try it
Try it
Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.
curl https://app.getoatmilk.com/api/v1/accounting/invoices.qstConfirm \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"facts": {
"supplierOutsideQuebec": true,
"carriesOnBusinessInQuebec": true,
"registration": "unknown",
"registrationNumber": "example",
"effectiveDate": "2026-09-30",
"allSalesRecorded": true,
"additionalSales": [
{
"date": "2026-09-30",
"amountCadMinor": "1250",
"description": "Synthetic example from the docs"
}
],
"expectedAdditionalSalesCadMinor": "1250",
"expectedSalesAsOf": "example",
"customerGeneralQstNumber": "example"
},
"reviewHash": "9f2b5c1d7e3a4b6c8d0e2f4a6b8c0d2e4f6a8b0c2d4e6f8a0b2c4d6e8f0a2b4c",
"expectedSettingsRevision": 3,
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d"
}'More in Invoicing.