Validate one bounded ERP transaction through Commerce Gate

Deprecated alias of POST /v1/connections/{connectionId}/executions: the same handler, which answers this sales contract unchanged for the installed Business Central extension 1.0.2.3 and MCP clients. Performs enforced binary policy validation and atomic agent-budget authorization for a complete Dynamics 365 transaction. It returns ALLOW or BLOCK but never writes, posts, releases, or modifies the ERP transaction. After policy clears, the candidate backend rejects a changed request for a tracked transaction when its timestamp is equal to or older than the stored revision, returning HTTP 200/BLOCK with AGENT_BUDGET_REQUEST_CONFLICT without changing the reservation or spent amount. Exact current retries reuse their budget result; strictly newer revisions undergo budget authorization. Transaction identity normalizes only tenant UUID casing, preserving organization, agent and transaction identifiers. One equivalent legacy reservation retains its original stored key. Multiple equivalent reservations return the same conflict and leave all rows and spent amount unchanged for reconciliation. This requires a configured agent budget and the matching backend deployment; it is not a wall-clock expiry rule or the sixteen-check Protocol preflight.

post/v1/guard/validate

Request

  • Base URL: https://api.decionis.com
  • URL: https://api.decionis.com/v1/guard/validate
  • Auth: API key in header X-Decionis-API-Key

Headers

X-ERP-Regionstring required

Request body

transaction_idstring required

Opaque, case-sensitive transaction identity. Company prefixes and the complete suffix are preserved during budget reservation lookup.

erp_type'D365_BC' | 'D365_FSCM' required
tenant_idstring uuid required

Tenant UUID. The candidate backend normalizes its casing for transaction identity, consistently with the canonical request hash.

timestampstring date-time required

Submitted revision time, included in the canonical request hash. For a configured budget and tracked transaction, a changed request must be strictly newer than the stored revision; exact current retries remain idempotent. This is not an expiry based on the current clock.

agent_idstring required
currencystring required

Response

Central binary decision, including budget revision conflicts as BLOCK

decision'ALLOW' | 'BLOCK' required
transaction_idstring required
execution_time_msnumber required
reason_codestring required

Central policy or budget reason. AGENT_BUDGET_REQUEST_CONFLICT indicates a changed request with an equal or older timestamp for a tracked budget reservation, or multiple stored reservations matching the same identity after tenant UUID casing is normalized. Both leave reservations and spent amount unchanged. It is a BLOCK decision, not a transport failure or evidence of historical overspend.

messagestring required

Changes

No recorded changes to this operation across all 1 revision of this API.