vaultix_create_refund
Create refunds for paid charges in the Vaultix payment system. Specify a charge ID, optional partial amount in cents, and reason for processing refunds through the payment API.
Instructions
Create a refund for a paid charge. Amount in cents for partial refund.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| charge | Yes | Charge ID to refund | |
| amount | No | Amount in cents (optional, for partial refund) | |
| reason | No | Reason for refund |
Implementation Reference
- src/tools/index.ts:481-486 (handler)Handler for 'vaultix_create_refund' tool: Posts refund request to /refunds endpoint with charge ID, optional amount, and reason.case 'vaultix_create_refund': return client.post('/refunds', { charge: args.charge, amount: args.amount, reason: args.reason, })
- src/tools/index.ts:131-143 (schema)Tool definition including name, description, and input schema for 'vaultix_create_refund'.{ name: 'vaultix_create_refund', description: 'Create a refund for a paid charge. Amount in cents for partial refund.', inputSchema: { type: 'object', properties: { charge: { type: 'string', description: 'Charge ID to refund' }, amount: { type: 'number', description: 'Amount in cents (optional, for partial refund)' }, reason: { type: 'string', description: 'Reason for refund' }, }, required: ['charge'], }, },
- src/tools/index.ts:14-417 (registration)The tools array exports all tool definitions, registering 'vaultix_create_refund' among others.export const tools: Tool[] = [ // ==================== CHARGES ==================== { name: 'vaultix_create_charge', description: 'Create a new payment charge (PIX, Credit Card, or Boleto). Amount is in cents (e.g., 5000 = R$ 50,00)', inputSchema: { type: 'object', properties: { amount: { type: 'number', description: 'Amount in cents (minimum 100 = R$ 1,00)' }, payment_method: { type: 'string', enum: ['pix', 'credit_card', 'boleto'], description: 'Payment method' }, customer_name: { type: 'string', description: 'Customer name' }, customer_email: { type: 'string', description: 'Customer email' }, customer_document: { type: 'string', description: 'Customer CPF/CNPJ' }, description: { type: 'string', description: 'Charge description' }, }, required: ['amount', 'payment_method', 'customer_name', 'customer_email'], }, }, { name: 'vaultix_get_charge', description: 'Retrieve a charge by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Charge ID (ch_...)' }, }, required: ['id'], }, }, { name: 'vaultix_list_charges', description: 'List all charges with optional filters', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, status: { type: 'string', enum: ['pending', 'paid', 'failed', 'canceled', 'refunded'], description: 'Filter by status' }, payment_method: { type: 'string', enum: ['pix', 'credit_card', 'boleto'], description: 'Filter by payment method' }, }, }, }, { name: 'vaultix_cancel_charge', description: 'Cancel a pending or authorized charge', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Charge ID to cancel' }, }, required: ['id'], }, }, // ==================== CUSTOMERS ==================== { name: 'vaultix_create_customer', description: 'Create a new customer', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Customer name' }, email: { type: 'string', description: 'Customer email' }, document: { type: 'string', description: 'CPF/CNPJ' }, phone: { type: 'string', description: 'Phone number' }, }, required: ['name'], }, }, { name: 'vaultix_get_customer', description: 'Retrieve a customer by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Customer ID (cus_...)' }, }, required: ['id'], }, }, { name: 'vaultix_list_customers', description: 'List all customers', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, email: { type: 'string', description: 'Filter by email' }, }, }, }, { name: 'vaultix_update_customer', description: 'Update a customer', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Customer ID' }, name: { type: 'string', description: 'New name' }, email: { type: 'string', description: 'New email' }, phone: { type: 'string', description: 'New phone' }, }, required: ['id'], }, }, { name: 'vaultix_delete_customer', description: 'Delete a customer', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Customer ID to delete' }, }, required: ['id'], }, }, // ==================== REFUNDS ==================== { name: 'vaultix_create_refund', description: 'Create a refund for a paid charge. Amount in cents for partial refund.', inputSchema: { type: 'object', properties: { charge: { type: 'string', description: 'Charge ID to refund' }, amount: { type: 'number', description: 'Amount in cents (optional, for partial refund)' }, reason: { type: 'string', description: 'Reason for refund' }, }, required: ['charge'], }, }, { name: 'vaultix_get_refund', description: 'Retrieve a refund by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Refund ID (re_...)' }, }, required: ['id'], }, }, { name: 'vaultix_list_refunds', description: 'List all refunds', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, charge: { type: 'string', description: 'Filter by charge ID' }, }, }, }, // ==================== BALANCE ==================== { name: 'vaultix_get_balance', description: 'Get current account balance (available and pending)', inputSchema: { type: 'object', properties: {}, }, }, { name: 'vaultix_list_balance_transactions', description: 'List balance transactions (statement)', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, type: { type: 'string', enum: ['charge', 'refund'], description: 'Filter by type' }, }, }, }, // ==================== PRODUCTS ==================== { name: 'vaultix_create_product', description: 'Create a new product in the catalog. Price is in cents.', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Product name' }, price: { type: 'number', description: 'Price in cents' }, description: { type: 'string', description: 'Product description' }, stock_quantity: { type: 'number', description: 'Stock quantity' }, sku: { type: 'string', description: 'SKU code' }, }, required: ['name', 'price'], }, }, { name: 'vaultix_get_product', description: 'Retrieve a product by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Product ID (prod_...)' }, }, required: ['id'], }, }, { name: 'vaultix_list_products', description: 'List all products', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, status: { type: 'string', enum: ['active', 'draft', 'archived'], description: 'Filter by status' }, search: { type: 'string', description: 'Search by name or SKU' }, }, }, }, { name: 'vaultix_update_product', description: 'Update a product', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Product ID' }, name: { type: 'string', description: 'New name' }, price: { type: 'number', description: 'New price in cents' }, stock_quantity: { type: 'number', description: 'New stock quantity' }, }, required: ['id'], }, }, { name: 'vaultix_delete_product', description: 'Delete a product', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Product ID to delete' }, }, required: ['id'], }, }, // ==================== ORDERS ==================== { name: 'vaultix_get_order', description: 'Retrieve an order by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Order ID' }, expand: { type: 'string', enum: ['items'], description: 'Expand items' }, }, required: ['id'], }, }, { name: 'vaultix_list_orders', description: 'List all orders', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, status: { type: 'string', enum: ['pending', 'processing', 'completed', 'canceled'], description: 'Filter by status' }, payment_status: { type: 'string', enum: ['pending', 'paid', 'failed'], description: 'Filter by payment status' }, }, }, }, // ==================== TRANSACTIONS ==================== { name: 'vaultix_get_transaction', description: 'Retrieve a transaction by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Transaction ID' }, }, required: ['id'], }, }, { name: 'vaultix_list_transactions', description: 'List all transactions (unified view of charges, refunds, payouts)', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, type: { type: 'string', enum: ['charge', 'refund', 'payout'], description: 'Filter by type' }, source: { type: 'string', enum: ['charge', 'refund', 'payout'], description: 'Filter by source' }, }, }, }, { name: 'vaultix_get_transactions_summary', description: 'Get transaction summary for a period', inputSchema: { type: 'object', properties: { period: { type: 'string', enum: ['24h', '7d', '30d', '90d'], description: 'Period for summary (default: 30d)' }, }, }, }, // ==================== PAYMENT LINKS ==================== { name: 'vaultix_create_payment_link', description: 'Create a shareable payment link. Amount in cents.', inputSchema: { type: 'object', properties: { amount: { type: 'number', description: 'Amount in cents (minimum 100)' }, description: { type: 'string', description: 'Link description' }, payment_methods: { type: 'array', items: { type: 'string' }, description: 'Allowed methods: pix, credit_card' }, success_url: { type: 'string', description: 'Redirect URL after payment' }, max_uses: { type: 'number', description: 'Maximum number of uses' }, }, required: ['amount'], }, }, { name: 'vaultix_get_payment_link', description: 'Retrieve a payment link by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Payment Link ID (plink_...)' }, }, required: ['id'], }, }, { name: 'vaultix_list_payment_links', description: 'List all payment links', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, status: { type: 'string', enum: ['active', 'inactive'], description: 'Filter by status' }, }, }, }, { name: 'vaultix_deactivate_payment_link', description: 'Deactivate a payment link', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Payment Link ID to deactivate' }, }, required: ['id'], }, }, // ==================== PAYOUTS ==================== { name: 'vaultix_create_payout', description: 'Create a payout (withdrawal) via PIX or bank transfer. Amount in cents.', inputSchema: { type: 'object', properties: { amount: { type: 'number', description: 'Amount in cents (minimum 100)' }, pix_key: { type: 'string', description: 'PIX key (for PIX payout)' }, bank_code: { type: 'string', description: 'Bank code (for bank transfer)' }, branch: { type: 'string', description: 'Branch number' }, account: { type: 'string', description: 'Account number' }, account_type: { type: 'string', enum: ['checking', 'savings'], description: 'Account type' }, holder_name: { type: 'string', description: 'Account holder name' }, holder_document: { type: 'string', description: 'Holder CPF/CNPJ' }, description: { type: 'string', description: 'Payout description' }, }, required: ['amount'], }, }, { name: 'vaultix_get_payout', description: 'Retrieve a payout by ID', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Payout ID (po_...)' }, }, required: ['id'], }, }, { name: 'vaultix_list_payouts', description: 'List all payouts', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum results (1-100)' }, status: { type: 'string', enum: ['pending', 'in_transit', 'completed', 'failed', 'canceled'], description: 'Filter by status' }, }, }, }, { name: 'vaultix_cancel_payout', description: 'Cancel a pending payout', inputSchema: { type: 'object', properties: { id: { type: 'string', description: 'Payout ID to cancel' }, }, required: ['id'], }, }, ]