Tool tree
gradeNot graded
get_desk_statusAnswer
Orientation for the whole desk: who is on it, what authority you currently hold as an agent, how the payment queue breaks down, which payments are blocked and why, account balances, and how long until each payment rail closes for the day. Call this first.
View tool JSON
{
"name": "get_desk_status",
"kind": "answer",
"impl": "imperative",
"description": "Orientation for the whole desk: who is on it, what authority you currently hold as an agent, how the payment queue breaks down, which payments are blocked and why, account balances, and how long until each payment rail closes for the day. Call this first.",
"inputSchema": {
"type": "object",
"properties": {}
}
}explain_my_limitsAnswer
Read-only report of the limits you are already operating under on this desk, and why they apply. Use it to understand a refusal you have received. It reports only and changes nothing.
View tool JSON
{
"name": "explain_my_limits",
"kind": "answer",
"impl": "imperative",
"description": "Read-only report of the limits you are already operating under on this desk, and why they apply. Use it to understand a refusal you have received. It reports only and changes nothing.",
"inputSchema": {
"type": "object",
"properties": {}
}
}search_paymentsAnswer
Search the payment queue. Filter by status, rail, beneficiary name, reference, minimum or maximum amount, or restrict to only those payments that currently cannot move. Returns a summary of each match.
View tool JSON
{
"name": "search_payments",
"kind": "answer",
"impl": "imperative",
"description": "Search the payment queue. Filter by status, rail, beneficiary name, reference, minimum or maximum amount, or restrict to only those payments that currently cannot move. Returns a summary of each match.",
"inputSchema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"draft",
"held",
"authorized",
"released",
"settled",
"any"
],
"description": "Payment status to filter on. Use \"any\" for no status filter."
},
"rail": {
"type": "string",
"enum": [
"sepa_inst",
"sepa_ct",
"swift",
"chaps",
"fps",
"ach",
"any"
],
"description": "Payment rail to filter on."
},
"beneficiary": {
"type": "string",
"description": "Case-insensitive substring of the beneficiary name."
},
"reference": {
"type": "string",
"description": "Case-insensitive substring of the payment reference."
},
"minAmount": {
"type": "string",
"description": "Minimum amount as written, for example \"1000.00\". Do not convert to cents."
},
"maxAmount": {
"type": "string",
"description": "Maximum amount as written, for example \"5000.00\". Do not convert to cents."
},
"onlyBlocked": {
"type": "boolean",
"description": "If true, return only payments that cannot move as they stand."
}
}
}
}get_paymentAnswer
Full detail on one payment, including every control the desk evaluates against it and the plain-English result of each. Use this before asking anyone to approve anything.
View tool JSON
{
"name": "get_payment",
"kind": "answer",
"impl": "imperative",
"description": "Full detail on one payment, including every control the desk evaluates against it and the plain-English result of each. Use this before asking anyone to approve anything.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Payment id, for example \"PMT-2041\"."
}
},
"required": [
"id"
]
}
}explain_holdAction
Explain in plain language why a specific payment cannot move, and list the concrete routes forward. Use this to give a person a straight answer instead of a status code.
View tool JSON
{
"name": "explain_hold",
"kind": "act",
"impl": "imperative",
"description": "Explain in plain language why a specific payment cannot move, and list the concrete routes forward. Use this to give a person a straight answer instead of a status code.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Payment id, for example \"PMT-2048\"."
}
},
"required": [
"id"
]
}
}search_beneficiariesAnswer
Search the beneficiary register by name or country, with verification status, screening status and payment history for each.
View tool JSON
{
"name": "search_beneficiaries",
"kind": "answer",
"impl": "imperative",
"description": "Search the beneficiary register by name or country, with verification status, screening status and payment history for each.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Case-insensitive substring of the beneficiary name or two-letter country code."
},
"status": {
"type": "string",
"enum": [
"verified",
"unverified",
"any"
],
"description": "Verification status filter."
}
}
}
}get_exposureAnswer
Cash position per account: what is available, what the queue has already pledged against it, and what is genuinely free to spend. Use this before promising anyone that a payment can be funded.
View tool JSON
{
"name": "get_exposure",
"kind": "answer",
"impl": "imperative",
"description": "Cash position per account: what is available, what the queue has already pledged against it, and what is genuinely free to spend. Use this before promising anyone that a payment can be funded.",
"inputSchema": {
"type": "object",
"properties": {}
}
}recheck_screening_with_bureauAction
Re-check a beneficiary against the Sentinel screening bureau, a separate organisation on its own origin that holds the sanctions watchlist. Use this when a payment is stopped on a screening match and someone needs to know whether the match still stands today. The bureau answers with a decision and a reason; it never releases the underlying list, and this desk cannot overrule it.
View tool JSON
{
"name": "recheck_screening_with_bureau",
"kind": "act",
"impl": "imperative",
"description": "Re-check a beneficiary against the Sentinel screening bureau, a separate organisation on its own origin that holds the sanctions watchlist. Use this when a payment is stopped on a screening match and someone needs to know whether the match still stands today. The bureau answers with a decision and a reason; it never releases the underlying list, and this desk cannot overrule it.",
"inputSchema": {
"type": "object",
"properties": {
"beneficiaryId": {
"type": "string",
"description": "Beneficiary id from search_beneficiaries, for example \"BEN-06\"."
}
},
"required": [
"beneficiaryId"
]
}
}get_audit_trailAnswer
The desk audit trail in plain English: every action taken by a person or an agent, in order, with who did it and when. Nothing an agent does on this desk is unlogged.
View tool JSON
{
"name": "get_audit_trail",
"kind": "answer",
"impl": "imperative",
"description": "The desk audit trail in plain English: every action taken by a person or an agent, in order, with who did it and when. Nothing an agent does on this desk is unlogged.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "How many of the most recent entries to return. Defaults to 20."
}
}
}
}draft_paymentAction
Prepare a new payment as a draft. This moves no money: it creates something a person or a mandate can later release. The draft appears on the desk screen immediately.
View tool JSON
{
"name": "draft_payment",
"kind": "act",
"impl": "imperative",
"description": "Prepare a new payment as a draft. This moves no money: it creates something a person or a mandate can later release. The draft appears on the desk screen immediately.",
"inputSchema": {
"type": "object",
"properties": {
"accountId": {
"type": "string",
"description": "Account to debit, for example \"ACC-EUR-01\". Use get_exposure to list them."
},
"beneficiaryId": {
"type": "string",
"description": "Beneficiary id from search_beneficiaries, for example \"BEN-01\"."
},
"amount": {
"type": "string",
"description": "Amount as written, for example \"4820.00\". Do not convert to cents."
},
"currency": {
"type": "string",
"enum": [
"EUR",
"GBP",
"USD"
],
"description": "Currency of the payment."
},
"rail": {
"type": "string",
"enum": [
"sepa_inst",
"sepa_ct",
"swift",
"chaps",
"fps",
"ach"
],
"description": "Payment rail to send it on."
},
"reference": {
"type": "string",
"description": "Payment reference, usually an invoice number."
}
},
"required": [
"accountId",
"beneficiaryId",
"amount",
"currency",
"rail"
]
}
}amend_paymentSensitive Action
Change a draft payment: its amount, rail, reference or beneficiary. Only drafts can be amended; anything already approved or released cannot be edited.
View tool JSON
{
"name": "amend_payment",
"kind": "transact",
"impl": "imperative",
"description": "Change a draft payment: its amount, rail, reference or beneficiary. Only drafts can be amended; anything already approved or released cannot be edited.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Payment id to amend."
},
"amount": {
"type": "string",
"description": "New amount as written, for example \"4820.00\"."
},
"rail": {
"type": "string",
"enum": [
"sepa_inst",
"sepa_ct",
"swift",
"chaps",
"fps",
"ach"
],
"description": "New rail."
},
"reference": {
"type": "string",
"description": "New payment reference."
},
"beneficiaryId": {
"type": "string",
"description": "New beneficiary id."
}
},
"required": [
"id"
]
}
}attach_evidenceAction
Attach supporting evidence to a payment - an invoice, contract clause or written instruction that explains why the money is owed. Audit expects every payment to carry this.
View tool JSON
{
"name": "attach_evidence",
"kind": "act",
"impl": "imperative",
"description": "Attach supporting evidence to a payment - an invoice, contract clause or written instruction that explains why the money is owed. Audit expects every payment to carry this.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Payment id."
},
"label": {
"type": "string",
"description": "What the evidence is, for example \"Invoice INV-CS-20551\" or \"Supply agreement SA-2024-11 clause 7\"."
},
"kind": {
"type": "string",
"enum": [
"invoice",
"contract",
"po",
"instruction"
],
"description": "Type of evidence."
}
},
"required": [
"id",
"label",
"kind"
]
}
}request_authorizationSensitive Action
Route one specific payment, identified by its id, to a person at the desk for approval. Covers that single payment and nothing else. This does not return until they decide, so you get their actual answer rather than an acknowledgement.
View tool JSON
{
"name": "request_authorization",
"kind": "transact",
"impl": "imperative",
"description": "Route one specific payment, identified by its id, to a person at the desk for approval. Covers that single payment and nothing else. This does not return until they decide, so you get their actual answer rather than an acknowledgement.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Payment id to route for authorisation."
},
"note": {
"type": "string",
"description": "What you want them to know: why this is owed, what you checked, and anything that needs their judgement. Write it for a person, not a log."
}
},
"required": [
"id",
"note"
]
}
}release_paymentSensitive Action
Release a payment so it actually goes out. You can only do this on your own if a person has granted you a mandate that covers it; otherwise this refuses and tells you the route that would work.
View tool JSON
{
"name": "release_payment",
"kind": "transact",
"impl": "imperative",
"description": "Release a payment so it actually goes out. You can only do this on your own if a person has granted you a mandate that covers it; otherwise this refuses and tells you the route that would work.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Payment id to release."
}
},
"required": [
"id"
]
}
}propose_mandateSensitive Action
Request permission from a person. Use this whenever you need authority you do not have: after being refused for lack of authority, or when someone tells you to ask them for permission to act on your own. You propose the limits - the most per payment, a total budget, how long it lasts, which rails - and they can tighten any part before agreeing, or refuse outright. This does not return until a person decides. If they agree, new tools become available to you immediately.
View tool JSON
{
"name": "propose_mandate",
"kind": "transact",
"impl": "imperative",
"description": "Request permission from a person. Use this whenever you need authority you do not have: after being refused for lack of authority, or when someone tells you to ask them for permission to act on your own. You propose the limits - the most per payment, a total budget, how long it lasts, which rails - and they can tighten any part before agreeing, or refuse outright. This does not return until a person decides. If they agree, new tools become available to you immediately.",
"inputSchema": {
"type": "object",
"properties": {
"perPayment": {
"type": "string",
"description": "The most you are asking to be able to release in a single payment, as written, for example \"5000.00\"."
},
"total": {
"type": "string",
"description": "The total you are asking to be able to release across all payments under this mandate, for example \"50000.00\"."
},
"currency": {
"type": "string",
"enum": [
"EUR",
"GBP",
"USD"
],
"description": "Currency the limits are expressed in."
},
"minutes": {
"type": "number",
"description": "How long you are asking the authority to last, in minutes. Keep it short; ask again if you need longer."
},
"rails": {
"type": "array",
"items": {
"type": "string",
"enum": [
"sepa_inst",
"sepa_ct",
"swift",
"chaps",
"fps",
"ach"
]
},
"description": "The rails you are asking to cover."
},
"knownBeneficiariesOnly": {
"type": "boolean",
"description": "Whether to limit the mandate to beneficiaries already verified on file. Asking for true makes a person far more likely to agree."
},
"reason": {
"type": "string",
"description": "Why you are asking, in plain language: what you intend to do with it and what it saves the person. They read this before deciding."
}
},
"required": [
"perPayment",
"total",
"currency",
"minutes",
"reason"
]
}
}get_mandateAnswer
The standing mandate in force right now, if any: its limits, how much of its budget is left, and when it expires.
View tool JSON
{
"name": "get_mandate",
"kind": "answer",
"impl": "imperative",
"description": "The standing mandate in force right now, if any: its limits, how much of its budget is left, and when it expires.",
"inputSchema": {
"type": "object",
"properties": {}
}
}undo_last_agent_actionAction
Ask a person to reverse the last thing you did. Use this the moment you realise you have made a mistake, rather than trying to correct it with another payment.
View tool JSON
{
"name": "undo_last_agent_action",
"kind": "act",
"impl": "imperative",
"description": "Ask a person to reverse the last thing you did. Use this the moment you realise you have made a mistake, rather than trying to correct it with another payment.",
"inputSchema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Why it should be reversed, in plain language."
}
},
"required": [
"reason"
]
}
}ask_the_deskSensitive Action
Put a question or a recommendation in front of whoever is at the desk right now and wait for their written answer. Use this when you need a human judgement that is not itself a payment approval, for example whether a supplier relationship is genuine or which of two invoices is the correct one.
View tool JSON
{
"name": "ask_the_desk",
"kind": "transact",
"impl": "declarative",
"description": "Put a question or a recommendation in front of whoever is at the desk right now and wait for their written answer. Use this when you need a human judgement that is not itself a payment approval, for example whether a supplier relationship is genuine or which of two invoices is the correct one.",
"inputSchema": {
"type": "object",
"properties": {
"question": {
"type": "string"
}
}
}
}