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
API Endpoints REST endpoint documentation
KYC Validation Document validation details