Agent-TS Tools Reference
The Agent uses OpenAI function calling with 20 tools organized into 5 categories.
| Category | Tools | Purpose |
|---|
| Registration | 2 | User registration and status |
| KYC | 2 | Document upload and verification |
| Wallet | 6 | Balance, transfers, statements |
| Cards | 6 | Card management operations |
| Agent | 4 | Agent/merchant operations |
check_user_registration
Check if a phone number is registered as subscriber or agent.
{
name: "check_user_registration",
parameters: {
phoneE164: string // E.164 format phone number
}
}
Returns: Registration status, user type, KYC level
register_subscriber
Register a new subscriber account.
{
name: "register_subscriber",
parameters: {
phoneE164: string, // Phone number
firstName: string, // First name
lastName: string, // Last name
pin: string // 4-digit PIN
}
}
upload_kyc_image
Upload and validate a KYC document image.
{
name: "upload_kyc_image",
parameters: {
phoneE164: string, // User phone
side: "front" | "back" // ID side
}
}
Image data is passed via message context, not as a parameter.
upgrade_kyc
Complete KYC upgrade after both ID sides are validated.
{
name: "upgrade_kyc",
parameters: {
phoneE164: string,
confirm: boolean // User confirmation
}
}
check_balance
Check wallet balance. Requires PIN.
{
name: "check_balance",
parameters: {
phoneE164: string, // User phone
pin: string // 4-digit PIN (REQUIRED)
}
}
Returns: { balance: number, currency: string }
get_transactions
Get transaction history. Requires PIN.
{
name: "get_transactions",
parameters: {
phoneE164: string,
pin: string,
limit?: number // Default: 10
}
}
initiate_transfer
P2P transfer to another user’s card. Requires PIN.
{
name: "initiate_transfer",
parameters: {
senderPhoneE164: string, // Sender phone
recipientCardSerial: string, // Recipient card (e.g., "CARD0005")
amount: number, // Amount in SLE
pin: string // Sender's PIN
}
}
get_account_limits
Get transaction limits based on KYC level.
{
name: "get_account_limits",
parameters: {
phoneE164: string
}
}
Returns: Single transaction, daily, monthly limits
change_subscriber_pin
Change subscriber’s PIN. Requires old PIN.
{
name: "change_subscriber_pin",
parameters: {
phoneE164: string,
oldPin: string, // Current PIN
newPin: string // New PIN
}
}
request_account_statement
Generate and send PDF account statement.
{
name: "request_account_statement",
parameters: {
phoneE164: string,
startDate: string, // YYYY-MM-DD
endDate: string // YYYY-MM-DD
}
}
get_user_cards
List all cards linked to user.
{
name: "get_user_cards",
parameters: {
phoneE164: string
}
}
link_card
Link a new card to account.
{
name: "link_card",
parameters: {
phoneE164: string,
cardSerial: string,
pin: string
}
}
create_child_card
Create a child card with spending limits.
{
name: "create_child_card",
parameters: {
phoneE164: string,
parentCardSerial: string,
childCardSerial: string,
childName: string,
dailyLimit: number,
parentPin: string,
childPin: string
}
}
change_child_card_pin
Change PIN for a child card.
{
name: "change_child_card_pin",
parameters: {
phoneE164: string,
cardSerial: string,
parentPin: string,
newChildPin: string
}
}
block_card
Block a card.
{
name: "block_card",
parameters: {
phoneE164: string,
cardSerial: string,
pin: string,
reason?: string
}
}
unblock_card
Unblock a blocked card.
{
name: "unblock_card",
parameters: {
phoneE164: string,
cardSerial: string,
pin: string
}
}
check_agent_balance
Check agent float balance. Requires PIN.
{
name: "check_agent_balance",
parameters: {
phoneE164: string,
pin: string
}
}
agent_cash_in
Perform cash-in for a subscriber. Requires PIN.
{
name: "agent_cash_in",
parameters: {
agentPhoneE164: string,
subscriberPhoneE164: string,
amount: number,
pin: string
}
}
transfer_to_sub_agent
Transfer float to sub-agent. Requires PIN.
{
name: "transfer_to_sub_agent",
parameters: {
fromAgentPhone: string,
toAgentPhone: string,
amount: number,
pin: string
}
}
change_agent_pin
Change agent’s PIN. Requires old PIN.
{
name: "change_agent_pin",
parameters: {
phoneE164: string,
oldPin: string,
newPin: string
}
}
Security Notes
PIN Requirements: Most financial operations require the user’s 4-digit PIN. The agent is instructed to always ask for PIN before calling these functions.
Phone Validation: The phoneE164 parameter must match the texting user’s phone number. The agent will not accept requests to operate on different phone numbers.
Next Steps