Skip to content
Anlyon
Esc
↑↓navigate↵open⌘Jpreview

Reconcile an effect now

Ask the provider, read-only, what happened to a pending or unknown effect, and record the answer as evidence. Never writes to the provider. For a declared action this repeats the declared read-back. A read-back that finds nothing leaves the effect unknown. Available while the environment is halted. 409 when the effect is already final or another worker is reconciling or writing it.

POST/api/v2/actions/effects/{id}/reconcile
Authorization
AuthorizationBearer token (Anlyon API key) · headerrequired

Workspace API key sent as Authorization: Bearer <key>.

or
better-auth.session_tokenAPI key · cookierequired

Browser session used by dashboard-only operations.

Path parameters
idstringrequired

Public effect identifier.

min length 1 · max length 100
Header parameters
X-Request-Idstring

Optional caller correlation ID. Unsafe or oversized values are replaced.

max length 128
Responses
200

Effect with evidence returned.

successbooleanrequired
Allowed:true
dataEffectDetailrequired
Show properties
idstringrequired
invocationIdstringrequired
operationKeystringrequired
environmentIdstring<uuid>required
actionobjectrequired
Show properties
namestringrequired
versionIdstringrequired
adapterobjectrequired
Show properties
typestringrequired
versionstringrequired
stagestringrequired
Allowed:awaiting_approvalreadydispatchingreconcilingsettledrejected
outcomestringrequired
Allowed:not_dispatchedpendingsucceededfailedunknown
partialEffectstringrequired

A failure is not proof of zero impact.

Allowed:nonepossibleconfirmed
gradestringrequired

The receipt grade, derived by the database from the stage, outcome, outcome source and rejection reason. confirmed: the outcome is succeeded and it was read from the provider's own record of the operation, or a declared read-back matched. acknowledged: the provider accepted the request with a 2xx and no read-back has matched. An operator's manual succeeded also grades here and keeps verification: manual. unknown: no usable response, so reconciliation owns the effect and its allowance stays held. failed: the provider rejected the request, or the request provably never left Anlyon. refused: Anlyon refused at dispatch, for example on a digest mismatch, an exhausted or unbounded limit, an expired preview or a changed action version. denied: the approval was denied. pending: no receipt yet.

Allowed:confirmedacknowledgedunknownfailedrefuseddeniedpending
verificationstringrequired
Allowed:providermanualunverifiednot_dispatched
providerReferencestring | nullrequired
targetobjectrequired
impactImpactQuantity[]required
Show properties
Array of ImpactQuantity
dimensionstringrequired

money, resource_mutations, or a workspace-declared unit such as emails.

matches ^[a-z][a-z0-9_]{0,31}$
currencystring

Present for money.

matches ^[a-z]{3}$
amountintegerrequired

Integer minor units for money. A count for every other dimension.

min 0
boundstringrequired
Allowed:exactupper_bound
previewIdstring | nullrequired
approvalIdstring | nullrequired
bindingDigeststring | nullrequired
dependsOnobject[]required
Show properties
Array of object
effectIdstringrequired
outcomestringrequired
compensatesstring | nullrequired
rejectionReasonstring | nullrequired
unresolvedExposurebooleanrequired
reconciliationobjectrequired
Show properties
attemptsintegerrequired
min 0
nextAtstring<date-time> | nullrequired
exhaustedbooleanrequired
createdAtstring<date-time>required
firstDispatchedAtstring<date-time> | nullrequired
outcomeAtstring<date-time> | nullrequired
updatedAtstring<date-time>required
requestobjectrequired
capabilitiesobjectrequired
attemptsobject[]required
Show properties
Array of object
numberintegerrequired
kindstringrequired
Allowed:dispatchreplayreconcile
statusstringrequired
Allowed:startedcompletedabandoned
observedOutcomestring | nullrequired
errorstring | nullrequired
startedAtstring<date-time>required
finishedAtstring<date-time> | nullrequired
evidenceobject[]required
Show properties
Array of object
idstringrequired
sourcestringrequired
Allowed:previewprovider_responseprovider_lookupsystemoperator_notemanual_resolution
observedAtstring<date-time>required
impliedOutcomestring | nullrequired
providerIdsobjectrequired
summarystringrequired
detailsobjectrequired
actorobjectrequired
Show properties
typestringrequired
idstring | nullrequired
recordedAtstring<date-time>required
reservationsobject[]required
Show properties
Array of object
limitIdstringrequired
namestringrequired
dimensionstringrequired
currencystring | nullrequired
periodstringrequired

The accounting period this reservation belongs to for its whole life.

amountintegerrequired
statestringrequired
Allowed:reservedsettledreleased
exposurestring | nullrequired
Allowed:dispatchingpendingunknownpartialnull
settledintegerrequired
releasedintegerrequired
createdAtstring<date-time>required
finishedAtstring<date-time> | nullrequired
previewActionPreview | nullrequired
Show properties
Any of:
ActionPreview
idstringrequired
actionobjectrequired
Show properties
idstringrequired
namestringrequired
versionIdstringrequired
adapterobjectrequired
Show properties
typestringrequired
versionstringrequired
environmentobjectrequired
Show properties
idstringrequired
namestringrequired
kindstringrequired
targetobjectrequired
requestobjectrequired

The exact normalized request that will be dispatched.

impactImpactQuantity[]required
blocksPreviewBlock[]required
Show properties
Array of PreviewBlock
typestringrequired
Allowed:fieldstext_diffimpactlimitations
titlestringrequired
fieldsobject[]
Show properties
Array of object
labelstringrequired
valuestringrequired
pathstring
beforestring
afterstring
truncatedboolean
quantitiesImpactQuantity[]
itemsobject[]
Show properties
Array of object
kindstringrequired
Allowed:guaranteefreshnessunsupportedirreversible
textstringrequired
preconditionsobjectrequired

Material preconditions; part of the binding.

capabilitiesobjectrequired

The adapter's declared guarantees.

allowancesobject[]required

Applicable impact limits at preview time. Dispatch rechecks.

evidenceObservedAtstring<date-time>required
expiresAtstring<date-time>required
expiredbooleanrequired
requestDigeststringrequired
bindingDigeststringrequired

SHA-256 over the canonical request, target, versions, preconditions, scope and expiry. What an approval agrees to.

supersedesstring | nullrequired
effectIdstring | nullrequired

The effect executing this preview, once one is admitted.

createdAtstring<date-time>required
null
null
401

Unauthorized - Invalid or missing API key

successbooleanrequired
requestIdstringrequired

Correlation ID matching the X-Request-Id response header.

errorobjectrequired
Show properties
codestring
messagestring
detailsobject
403

Authenticated credential lacks the required scope or workspace access.

successbooleanrequired
requestIdstringrequired

Correlation ID matching the X-Request-Id response header.

errorobjectrequired
Show properties
codestring
messagestring
detailsobject
404

Not Found - Resource does not exist

successbooleanrequired
requestIdstringrequired

Correlation ID matching the X-Request-Id response header.

errorobjectrequired
Show properties
codestring
messagestring
detailsobject
409

The request conflicts with current resource state or a concurrent decision.

successbooleanrequired
requestIdstringrequired

Correlation ID matching the X-Request-Id response header.

errorobjectrequired
Show properties
codestring
messagestring
detailsobject
429

Too Many Requests - Rate limit exceeded

successbooleanrequired
requestIdstringrequired

Correlation ID matching the X-Request-Id response header.

errorobjectrequired
Show properties
codestring
messagestring
detailsobject
Try it
Server
Authorization
Parameters
Request
curl -X POST 'https://api.anlyon.com/api/v2/actions/effects/string/reconcile' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
{
  "success": true,
  "data": {
    "id": "eff_01JABCDEF",
    "invocationId": "string",
    "operationKey": "string",
    "environmentId": "19f5cc2e-7657-437a-9268-83cd3d563563",
    "action": {
      "name": "string",
      "versionId": "string"
    },
    "adapter": {
      "type": "string",
      "version": "string"
    },
    "stage": "awaiting_approval",
    "outcome": "not_dispatched",
    "partialEffect": "none",
    "grade": "confirmed",
    "verification": "provider",
    "providerReference": "string",
    "target": {},
    "impact": [
      {
        "dimension": "money",
        "currency": "usd",
        "amount": 0,
        "bound": "exact"
      }
    ],
    "previewId": "string",
    "approvalId": "string",
    "bindingDigest": "string",
    "dependsOn": [
      {
        "effectId": "string",
        "outcome": "string"
      }
    ],
    "compensates": "string",
    "rejectionReason": "string",
    "unresolvedExposure": true,
    "reconciliation": {
      "attempts": 0,
      "nextAt": "2019-08-24T14:15:22Z",
      "exhausted": true
    },
    "createdAt": "2019-08-24T14:15:22Z",
    "firstDispatchedAt": "2019-08-24T14:15:22Z",
    "outcomeAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "request": {},
    "capabilities": {},
    "attempts": [
      {
        "number": 0,
        "kind": "dispatch",
        "status": "started",
        "observedOutcome": "string",
        "error": "string",
        "startedAt": "2019-08-24T14:15:22Z",
        "finishedAt": "2019-08-24T14:15:22Z"
      }
    ],
    "evidence": [
      {
        "id": "string",
        "source": "preview",
        "observedAt": "2019-08-24T14:15:22Z",
        "impliedOutcome": "string",
        "providerIds": {
          "property1": "string",
          "property2": "string"
        },
        "summary": "string",
        "details": {},
        "actor": {
          "type": "string",
          "id": "string"
        },
        "recordedAt": "2019-08-24T14:15:22Z"
      }
    ],
    "reservations": [
      {
        "limitId": "string",
        "name": "string",
        "dimension": "money",
        "currency": "string",
        "period": "string",
        "amount": 0,
        "state": "reserved",
        "exposure": "dispatching",
        "settled": 0,
        "released": 0,
        "createdAt": "2019-08-24T14:15:22Z",
        "finishedAt": "2019-08-24T14:15:22Z"
      }
    ],
    "preview": {
      "id": "prv_01JABCDEF",
      "action": {
        "id": "string",
        "name": "string",
        "versionId": "string"
      },
      "adapter": {
        "type": "string",
        "version": "string"
      },
      "environment": {
        "id": "string",
        "name": "string",
        "kind": "string"
      },
      "target": {},
      "request": {},
      "impact": [
        {
          "dimension": "money",
          "currency": "usd",
          "amount": 0,
          "bound": "exact"
        }
      ],
      "blocks": [
        {
          "type": "fields",
          "title": "string",
          "fields": [
            {
              "label": "string",
              "value": "string"
            }
          ],
          "path": "string",
          "before": "string",
          "after": "string",
          "truncated": true,
          "quantities": [
            {
              "dimension": "money",
              "currency": "usd",
              "amount": 0,
              "bound": "exact"
            }
          ],
          "items": [
            {
              "kind": "guarantee",
              "text": "string"
            }
          ]
        }
      ],
      "preconditions": {},
      "capabilities": {},
      "allowances": [
        {}
      ],
      "evidenceObservedAt": "2019-08-24T14:15:22Z",
      "expiresAt": "2019-08-24T14:15:22Z",
      "expired": true,
      "requestDigest": "string",
      "bindingDigest": "string",
      "supersedes": "string",
      "effectId": "string",
      "createdAt": "2019-08-24T14:15:22Z"
    }
  }
}