Skip to main content

Practical Use Cases

This section describes real implementation scenarios of Max Capital APIs, with concrete examples based on available endpoints.

🏒 Companies: Accounting Automation​

Business Problem​

A corporate company invests in investment funds through its treasurer who operates directly with Max Capital. It needs:

  • Automate daily download of current account movements
  • Automatically record these movements in its ERP/accounting system
  • Reconcile balances without manual intervention
  • Generate automatic reports for auditing and management control

Solution with Max Capital APIs​

Automate the download of current account movements using the Statements API for direct integration with the ERP.

Automation Flow​

1. Automatic Download of Daily Movements​

# Query movements from the previous day (run daily at 8:00 AM)
GET /v1/current-account/instruments?number=12345678&dateFrom=2024-06-01&dateTo=2024-06-01&dateType=operation

# Response with movements for the ERP:
[{
"isPreviousBalance": false,
"currentAccountCode": 12345678,
"operationDate": "2024-06-01",
"settlementDate": "2024-06-01",
"detail": "SuscripciΓ³n FCI MAX RENTA FIJA - Orden 789456",
"isAvailable": true,
"instrumentDescription": "MAX RENTA FIJA CLASE A",
"amount": 1000000.00,
"net": 1000000.00,
"gross": 1000000.00,
"balance": 5500000.00,
"currencyCode": "ARS",
"instrumentTypeCode": "FCI"
}]

2. Query Movements by Period​

# For monthly reconciliation or specific reports
GET /v1/current-account/instruments?number=12345678&dateFrom=2024-06-01&dateTo=2024-06-30&dateType=settlement

3. ERP Integration​

// Service that runs daily at end of day
async function syncAccountMovements() {
const yesterday = getYesterday(); // 2024-06-01

// 1. Download movements from previous day
const movements = await maxAPI.get('/v1/current-account/instruments', {
params: {
number: company.accountNumber,
dateFrom: yesterday,
dateTo: yesterday,
dateType: 'operation'
}
});

// 2. Process each movement
movements.forEach(movement => {
// Determine journal entry type based on movement
let accountMapping = getAccountMapping(movement.instrumentTypeCode, movement.amount);

// Record in accounting system
erpSystem.createJournalEntry({
date: movement.settlementDate,
reference: movement.detail,
entries: [
{
account: accountMapping.debit,
debit: Math.abs(movement.net)
},
{
account: accountMapping.credit,
credit: Math.abs(movement.net)
}
],
externalRef: `MC-${movement.currentAccountCode}-${movement.operationDate}`
});

// Update reconciliation control
updateReconciliationControl(movement);
});
}

function getAccountMapping(instrumentType, amount) {
// Account mapping based on instrument type and debit/credit
const mappings = {
'FCI': {
debit: amount > 0 ? '1.1.3.001' : '1.1.1.001', // FCI Investments : Bank
credit: amount > 0 ? '1.1.1.001' : '1.1.3.001' // Bank : FCI Investments
},
'PLAZO_FIJO': {
debit: amount > 0 ? '1.1.2.001' : '1.1.1.001', // Term Deposits : Bank
credit: amount > 0 ? '1.1.1.001' : '1.1.2.001' // Bank : Term Deposits
}
};
return mappings[instrumentType] || mappings['FCI'];
}

βš™οΈ Report Automation​

Monthly Report for Auditing​

async function generateMonthlyReport(month, year) {
const startDate = `${year}-${month.toString().padStart(2, '0')}-01`;
const endDate = new Date(year, month, 0).toISOString().split('T')[0];

// Get all operations for the month
const operations = [];
for (let date = startDate; date <= endDate; date = nextDay(date)) {
const dailyOps = await Promise.all([
maxAPI.get('/v1/subscriptions', {
params: {
operationDate: date,
accountHolderNumber: company.accountNumber
}
}),
maxAPI.get('/v1/redemptions', {params: {operationDate: date, accountHolderNumber: company.accountNumber}})
]);
operations.push(...dailyOps.flat());
}

// Generate Excel report for auditing
const report = {
period: `${month}/${year}`,
totalSubscriptions: operations.filter(op => op.type === 'subscription').reduce((sum, op) => sum + op.amount, 0),
totalRedemptions: operations.filter(op => op.type === 'redemption').reduce((sum, op) => sum + op.amount, 0),
finalPosition: await getCurrentPosition(),
operations: operations
};

return generateExcelReport(report);
}

πŸ“Š Benefits Obtained​

  • 100% automation of accounting registration
  • 95% reduction in monthly reconciliation time
  • Complete traceability for audits
  • Daily valuation of investment portfolio
  • Automatic reports ready for AFIP and auditing

πŸ“‹ Implementation Checklist​

  • Map accounting accounts
  • Develop ERP connectors
  • Configure scheduled queries
  • Implement report generation
  • Establish reconciliation procedures

πŸ’³ PSP/Wallet: Balance Remuneration​

Business Problem​

A PSP or digital wallet has users with inactive balances that don't generate returns. It wants to offer automatic remuneration of these balances to:

  • Increase user retention
  • Generate commission income
  • Compete with traditional banks

Solution with Max Capital APIs​

Automate the investment of idle balances in high-liquidity money market funds using the Onboarding, Mutual Funds and Auth APIs.

Implementation Flow​

1. User Onboarding​

# Create onboarding process for wallet user
POST /v1/onboardings
{
"account": {
"people": [{
"type": "HUMAN",
"ownership_type": "OWNER",
"signature_type": "INDIVIDUAL",
"personal_info": {
"first_name": "MarΓ­a",
"last_name": "GonzΓ‘lez",
"document": {
"type": "DNI_AR",
"code": "35123456"
},
"email": "[email protected]",
"phone": "+5491156781234"
},
"tax_info": {
"document": {
"type": "CUIT_AR",
"code": "27351234567"
},
"economic_activity": "47"
}
}]
}
}

2. Query Available Funds​

# Get money market fund information
GET /v1/mutual-funds/3852
# Response: "MAX MONEY MARKET Class A" fund with T+0 liquidity

3. Automate Subscriptions​

# When balance exceeds $10,000, invest automatically
POST /v1/subscriptions
{
"mutualFundCafciCode": 3852,
"currencyIsoCode": "ARS",
"accountHolderNumber": 11772,
"amount": 25000,
"cvu": "0000003100059118503787"
}

4. Automatic Redemptions​

# When user needs liquidity, redeem automatically
POST /v1/redemptions
{
"mutualFundCafciCode": 3852,
"accountHolderNumber": 11772,
"amount": 5000,
"redeemAll": false,
"assetsDestination": "ECHEQ_ORDER"
}

βš™οΈ Benefits Obtained​

  • +3.5% annual return for users vs 0% in current account
  • +25% retention of users with remunerated balances
  • 0.8% annual commission on managed assets as new income source

πŸ”„ Complete flow example: PSP with Automation​

A PSP that combines both use cases: remunerates end-user balances AND automates its own accounting.

πŸ“Š Success Metrics​

  • Implementation time: 8-12 weeks vs 12+ months own development
  • Operational cost: 60% reduction in manual tasks
  • Compliance: 100% regulatory compliance from day 1
  • Revenue: New revenue line through asset management

πŸ“‹ Implementation Checklist​

  • Get development credentials
  • Implement onboarding flow
  • Configure automatic subscription logic
  • Develop on-demand redemption functionality
  • Integrate return notifications

Is your use case similar? Contact our integration team for a personalized technical consultation: [email protected]