These tools act on your live Sokin account. Most of them only read
data, but some move real money: sending a payment, and converting between
accounts. Your client asks you to confirm before either one runs, and
Moving money below explains how.
| Tool | What it is for |
|---|---|
list_corporates | Which companies your login can act for |
list_accounts | A company's currency accounts and balances |
get_account | One account in full, including pay-in details |
get_account_ledger | Transaction history for an account |
list_beneficiaries | Who a company can pay |
get_beneficiary | One payee in full, with account details and verification |
get_beneficiary_schema | What details a new payee needs |
validate_beneficiary | Check payee details, or an e-Transfer email, before relying on them |
create_beneficiary | Creates a new payee, behind an emailed code |
update_beneficiary | Changes an existing payee, behind an emailed code |
list_financial_institutions | Banks available when setting up a payee |
list_financial_institution_branches | A bank's branches and routing numbers |
list_instructions | Payments and conversions, listed |
get_instruction | One payment or conversion in full |
get_instruction_request | How a submitted payment actually turned out |
validate_payment_instruction | Check a payment without sending it |
create_payment_instruction | Prepare a payment for review. Sends nothing |
submit_payment_instruction | Sends a real payment |
create_fx_payment_instruction | Prepare a pay-in-another-currency payment. Sends nothing |
submit_fx_payment_instruction | Sends a real payment, converting as it goes |
get_fx_quote | Open the quote card for converting between your own accounts (no rate without cards) |
create_fx_quote | Create a real, short-lived rate. Moves no money |
settle_fx_quote | Converts real money between your own accounts |
visualize | Draw a diagram or chart in the chat |
get_documentation_links | Where Sokin's documentation lives |
play_cheetah_dash | An arcade game, in the chat |
| If you want to | The tools behind it |
|---|---|
| See which companies you can act for | list_corporates |
| See balances across accounts | list_accounts, get_account |
| See transaction history | get_account_ledger |
| Look up who you can pay | list_beneficiaries, get_beneficiary |
| Check a payee's details are right | validate_beneficiary |
| Add a payee, or change one's details | get_beneficiary_schema, then create_beneficiary or update_beneficiary |
| Look up a bank or branch | list_financial_institutions, list_financial_institution_branches |
| Check on payments already made | list_instructions, get_instruction, get_instruction_request |
| Check a payment before sending it | validate_payment_instruction |
| Send a payment | create_payment_instruction, then submit_payment_instruction |
| Pay someone in a currency you do not hold | create_fx_payment_instruction, then submit_fx_payment_instruction |
| Start a conversion between your own accounts (see the rate on a card) | get_fx_quote |
| Convert between your own accounts | create_fx_quote, then settle_fx_quote |
| Draw a chart or diagram of a result | visualize |
| Find Sokin's documentation | get_documentation_links |
get_account_ledger,list_instructions, list_beneficiaries andlist_financial_institution_branches. When there is more, the result says so| Client with cards | Client without | |
|---|---|---|
| All the read-only tools | Work | Work |
get_fx_quote | Interactive quote card | No rate and no quote, just a link to the Sokin portal to see the rate and trade |
create_fx_quote, settle_fx_quote | Driven by the card's buttons | Not available |
| Paying a beneficiary, either pair | Review card with Approve | Works — you confirm in the chat |
visualize, play_cheetah_dash | Render | Return their content as text |
validate_payment_instruction is acreate_fx_quote and settle_fx_quote refuse to run, however they areget_fx_quote gives you a link to the Sokin portal instead.create_fx_quote,create_fx_payment_instruction, validate_beneficiary, create_beneficiaryupdate_beneficiary — write something without moving a penny. None of| Tool | What it does |
|---|---|
settle_fx_quote | Converts real money between two of your own accounts |
submit_payment_instruction | Sends a real payment to a beneficiary |
submit_fx_payment_instruction | Sends a real payment, converting as it goes |
| You want to | Pair |
|---|---|
| Pay someone in a currency you hold | create_payment_instruction → submit_payment_instruction |
| Pay someone in a currency you do not hold | create_fx_payment_instruction → submit_fx_payment_instruction |
| Convert between two of your own accounts | get_fx_quote card → create_fx_quote → settle_fx_quote |
get_instruction_request confirms the payment or conversion was created;get_instruction shows where it stands — waiting for approval, processed,list_corporatesWhich companies can I act for in Sokin?
assignmentType is direct if you were given access to that company, orinherited if it comes via a parent.list_accounts| Takes | Required | What it is |
|---|---|---|
corporate_reference | yes | From list_corporates |
Show me all my Sokin accounts and their balances.
balance, so it will not match theget_account_ledger shows the movement itself: a Boost deposit appearsboost_maturity_payout entry.get_account| Takes | Required | What it is |
|---|---|---|
account_reference | yes | An account reference from list_accounts |
What details should a customer use to pay into our GBP account?
list_accounts above —get_account_ledger| Takes | Required | What it is |
|---|---|---|
account_reference | yes | The account to look at |
from_date | no | Only entries from this date (YYYY-MM-DD) |
to_date | no | Only entries up to this date |
limit | no | Entries per page (default 25, max 100) |
next_token | no | Ask for the next page, using the token from the last one |
Show me the transactions on our GBP account since 1 August.
list_beneficiariescreate_beneficiary adds one and update_beneficiary changes its bank orget_beneficiary_schema tells you what a new payee needs, andvalidate_beneficiary checks details before you commit to them.| Takes | Required | What it is |
|---|---|---|
corporate_reference | no, but effectively yes | The company whose payees you want |
search | no | Match against the name. Leave out to list everyone |
search_mode | no | "contains" (default) or "starts_with" |
limit | no | Per page |
next_token | no | Token from the previous page |
Do we already have Fabrikam GmbH as a payee?
page and offset, purely so it can tell you clearlylimit and next_token.get_beneficiarylist_beneficiaries collapses a payee| Takes | Required | What it is |
|---|---|---|
beneficiary_id | yes | The payee's reference from list_beneficiaries |
corporate_reference | no, but effectively yes | The company the payee belongs to |
Show me Fabrikam's bank details and whether they have been verified.
matched means the account details were checked against the account holder'snot_validated means they were not. It is per destination, so the sameget_beneficiary_schema| Method | Rails |
|---|---|
bank_account | faster_payments, sepa, swift, ach, eft, and the rest |
e_transfer | e_transfer |
virtual_account | pix |
sokin_internal | internal |
crypto | base, tron, ethereum, polygon, solana |
| Takes | Required | What it is |
|---|---|---|
payment_method | yes | One of the five above. crypto is always refused — Sokin cannot describe crypto payees here yet |
currency_code | unless sokin_internal | Currency the payee is paid in |
country_code | unless sokin_internal | Country of the payee's account |
entity_type | unless sokin_internal | individual or company |
autodeposit_enrolled | no | e-Transfer only: "true", "false" or "unknown". Pass "unknown" rather than omitting it when you have not checked — omitting behaves like "true" and leaves the security question optional |
corporate_reference | no, but effectively yes | The company the payee will belong to |
What do I need to add a UK supplier we pay by Faster Payments?
address.city orbankAccount.accountNumber. "Only for rails" means required just for thosevalidate_beneficiarycreate_beneficiary.| To check | Pass |
|---|---|
| An existing payee, all destinations | beneficiary_id |
| Whether an e-Transfer email can auto-deposit | email |
| An IBAN against a name | iban + bic + account_name |
| A UK account against a name | sort_code + account_number + account_name |
| Takes | Required | What it is |
|---|---|---|
beneficiary_id | for the first check | The payee's reference from list_beneficiaries |
email | for the second | Recipient email to probe |
iban | for the third | The IBAN, 15–34 characters |
bic | for the third | BIC/SWIFT, 8 or 11 characters |
account_name | third and fourth | The account holder name to verify |
sort_code | for the fourth | UK sort code, 6 digits. Spaces and hyphens are fine |
account_number | for the fourth | UK account number, 8 digits |
corporate_reference | no, but effectively yes | The company to check under |
Check that sort code 12-34-56 and account 12345678 belong to Jane Okafor.
| Status | What it means |
|---|---|
matched | The name checks out |
close_match | Nearly — compare both names before going further |
no_match, invalid | Not verified |
check_not_possible, not_validated | The check did not run. Not a pass |
not_validated, meaning "not applicable"create_beneficiaryvalidate_beneficiary: Confirmation of Payee for a UK account, Verification| Takes | Required | What it is |
|---|---|---|
display_name | yes | Payee name, 1–255 characters |
currency_code | yes | ISO 4217, or the stablecoin code for a crypto rail |
payment_rail | yes | e.g. faster_payments, sepa, swift, eft, e_transfer, internal, pix |
entity_type | unless rail internal | individual or company |
country_code | unless rail internal | Country of the payee's account |
| one destination object | yes | bank_account, e_transfer, virtual_account, sokin_internal or crypto — whichever matches the rail. get_beneficiary_schema tells you the fields |
individual / company | per entity_type | Identity details |
address | bank rails and e_transfer | Not needed for internal, pix or crypto |
corporate_reference | no, but effectively yes | The company to create under |
otp_code | on the second call | The 6-character code from your email |
confirm_verified_payee_name | no | Only after a name mismatch you have checked and accepted. It restarts the flow with a fresh code |
Add Contoso Ltd as a payee for GBP payments by Faster Payments.
list_beneficiaries first. There is no duplicate detection: addupdate_beneficiarycreate_beneficiary. Called twice, like creating| Takes | Required | What it is |
|---|---|---|
beneficiary_id | yes | The payee to change, from list_beneficiaries |
currency_code + payment_rail | if the payee has more than one destination | Which destination you mean, not a change to it. Supply both together |
bank_account, e_transfer, virtual_account, sokin_internal, crypto, individual, company | at least one | The fields to change |
corporate_reference | no, but effectively yes | The company the payee belongs to |
otp_code | on the second call | The 6-character code from your email |
confirm_verified_payee_name | no | Only after a name mismatch you have checked and accepted. It restarts the flow with a fresh code |
Change Contoso's bank account number to 87654321.
validate_beneficiary: the change resets that route to unchecked, and eurobeneficiary_id,create_beneficiary's, including that fivelist_financial_institutionsWhich Canadian banks can I pick from for an EFT payee?
list_financial_institution_branches| Takes | Required | What it is |
|---|---|---|
financial_institution_id | yes | The id from list_financial_institutions |
limit | no | Per page |
next_token | no | Token from the previous page |
List the branches of Royal Bank of Canada.
list_instructions| Takes | Required | What it is |
|---|---|---|
corporate_reference | one of these two | List for a whole company |
cca_reference | one of these two | List for a single account |
completed | no | Being phased out — true for finished (including failed ones — see below), false for still in progress |
exclude_display_status | no | Leave out rows with this status: Processed, Failed, or both. Mutually exclusive with completed |
limit | no | Per page (default 20, max 100) |
next_token | no | Token from the previous page |
sort_order | no | desc (default, newest first) or asc (oldest first) |
completed means finished, not successful. completed=true includescompleted=false for what's still outstanding misses every failed one —exclude_display_status instead — completed is being phased out, soProcessed andFailed gives you what's genuinely still in progress; leaving out justProcessed gives you everything that isn't a clean success, in-progress andFailed;get_instruction shows it as Rejected.Which payments on our GBP account are still outstanding?
get_instruction| Takes | Required | What it is |
|---|---|---|
instruction_reference | yes | The instruction to look up |
Show me everything about payment INS-5513.
get_instruction_requestget_instruction shows where it| Takes | Required | What it is |
|---|---|---|
instruction_request_reference | yes | The receipt reference from submitting. Not an instruction reference — those go to get_instruction |
Did the payment I just sent go through?
| Status | What it actually means |
|---|---|
Created | Still being created. Not a success yet |
Accepted | Created. It now waits for approval — use get_instruction for where it stands |
Rejected | Refused, and the reason is in the result. Nothing was created |
validate_payment_instruction| Takes | Required | What it is |
|---|---|---|
corporate_currency_account | yes | The account to pay from |
beneficiary_reference | yes | Who to pay, from list_beneficiaries |
amount | yes | Plain decimal, up to 2 places, above zero (e.g. "125.50") |
reseller_fee | no | Same format, zero or more |
sender_reference | no | Text the recipient sees, max 18 characters |
payment_purpose | no | One of a fixed list of purpose codes, e.g. ACCOUNTS_PAYABLE. Any other value is refused |
amount_is_fees_inclusive | no | true takes fees out of the amount; default adds them on top |
Check whether we could pay Contoso 1,250 GBP from our GBP account, without sending anything.
create_payment_instructionvalidate_payment_instruction first and fix anything it flags. Thisvalidate_payment_instruction.Pay Contoso 1,250 GBP from our GBP account.
submit_payment_instructionYes, that is right. Send it.
get_instruction_request confirms the payment was created, andget_instruction then shows whether it was approved and processed.create_fx_payment_instructioncreate_payment_instruction| Takes | Required | What it is |
|---|---|---|
corporate_currency_account | yes | The account to pay from |
beneficiary_reference | yes | Who to pay, from list_beneficiaries |
buy_currency | yes | What the beneficiary receives, e.g. "USD" |
sell_currency | yes | What you are spending, e.g. "GBP" |
amount | yes | The amount of whichever side fixed_side names |
fixed_side | no | "BUY" or "SELL". Default "SELL" |
corporate_reference | no, but effectively yes | The company to quote for |
reseller_fee | no | Plain decimal, zero or more |
sender_reference | no | Text the recipient sees, max 18 characters |
payment_purpose | no | One of a fixed list of purpose codes, e.g. ACCOUNTS_PAYABLE. Any other value is refused |
Pay Fabrikam 1,000 EUR from our GBP account.
create_payment_instruction: the card checks with Sokin first, andRejected) or takes a fresh rate, which closes this payment as Failed withFX quote expired at approval. You find out from the payment'ssubmit_fx_payment_instructioncreate_fx_payment_instruction preparedYes, that is right. Send it.
get_instruction shows when thatget_fx_quote| Takes | Required | What it is |
|---|---|---|
buy_currency | yes | What you are buying, e.g. "USD" |
sell_currency | yes | What you are selling, e.g. "GBP" |
amount | yes | The amount of whichever side fixed_side names |
fixed_side | no | "BUY" or "SELL". Default "SELL" |
corporate_reference | yes | Which company to quote for. From list_corporates |
corporate_currency_account | no | The account a later conversion would come from |
Convert 1,000 GBP to USD between our own accounts.
IR- reference, and the card carries on tracking it,create_fx_quoteget_fx_quote. Only available on a client with interactive cards.Convert 1,000 GBP to USD between our own accounts.
settle_fx_quoteConvert 1,000 GBP to USD between our own accounts.
get_instruction_request confirmsget_instruction shows where it stands,Rejected)Failed with the reasonFX quote expired at approval. In that case, check the Sokin portal beforevisualize| Takes | Required | What it is |
|---|---|---|
markdown | yes | Markdown to render. Code blocks tagged mermaid become diagrams |
title | no | The card's heading |
Chart my account balances by currency.
get_documentation_links| Takes | Required | What it is |
|---|---|---|
topic | no | "b2b_api", "mcp_server", or "all". Default "all" |
Where is the documentation for Sokin's MCP server?
(none available) and says why, which is more useful than a link thatplay_cheetah_dashLet's play Cheetah Dash.
| Idea | Tools | Prompt to try |
|---|---|---|
| Multi-currency balance dashboard | list_corporates, list_accounts | "Build a dashboard of all my Sokin balances by currency, with a bar chart of the biggest five." |
| Payment tracker | list_instructions | "Build a page listing this week's payments and conversions, showing which are still waiting for approval." |
| Transaction history explorer | get_account_ledger | "Build a screen to pick an account and list its recent transactions, newest first, with a date filter." |
| Beneficiary directory | list_beneficiaries | "Create a searchable directory of my saved beneficiaries with currency and country." |
| Payment pre-flight checker | validate_payment_instruction | "Let me pick a saved payee, an account and an amount, and flag any problems without submitting anything." |
validate_payment_instruction saves nothing and moves no money.https://docs.sokin.com, orhttps://docs.sokin.com/llms.txt for the machine-readable index.get_documentation_links will return them.