Fetch the current balance for each Moov wallet via GET /accounts/{accountID}/wallets; note that Moov may have multiple wallet currency types per account
Pull all transfers for a reconciliation period using GET /transfers with createdOnOrAfter and createdOnOrBefore date filters; paginate using the skip and count parameters until all transfers are retrieved
For each transfer, identify the source and destination wallet IDs and amounts; extract the completedOn timestamp (not initiatedOn) as the settlement date for ledger posting
Match each settled Moov transfer to the corresponding entry in your general ledger by your internal referenceID (stored in transfer.metadata when you created the transfer) or by amount + date proximity
Flag any Moov transfer without a GL match (potential missing GL entry) and any GL entry without a Moov match (potential phantom GL posting); investigate each discrepancy manually
For transfers with status=failed or reversed, verify that the corresponding GL entries have been reversed; post correcting entries for any unreversed GL amounts tied to failed transfers
Known gotchas
Moov wallet balance is the authoritative source for available funds — your GL balance and Moov balance will differ temporarily due to in-flight transfers; only reconcile using completedOn transfers, not initiated ones
The metadata field on a Moov transfer is set at creation time and is not editable after; if you forget to set referenceID at transfer creation, you will need to match by amount+date which is error-prone for same-day high-volume scenarios
Transfer fees (if any) are deducted from the transfer amount and appear as a separate fee event in the transfer object; ensure your GL accounts for fees separately from principal to avoid balance sheet discrepancies
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp