Wallet and Transaction API Calls

This document provides detailed information about all API calls used in wallet management and transaction processing. Each API call includes the endpoint, method, request parameters, and response format.

Get Customer Wallets

Retrieves all wallets associated with a customer. Endpoint: /api/v2/wallet/customer-wallets Microservice: walletMicroService Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "customerId": "cust_12345678"
}
Response:
{
  "wallets": [
    {
      "walletId": "wallet_12345678",
      "walletAddress": "0x1234567890abcdef",
      "walletType": "FIAT",
      "currency": "EUR",
      "balance": "1000.50",
      "availableBalance": "950.25",
      "status": "ACTIVE",
      "createdAt": "2025-05-15T10:30:00Z"
    },
    {
      "walletId": "wallet_87654321",
      "walletAddress": "0xabcdef1234567890",
      "walletType": "CRYPTO",
      "currency": "BTC",
      "balance": "0.05",
      "availableBalance": "0.05",
      "status": "ACTIVE",
      "createdAt": "2025-05-16T14:20:00Z"
    }
  ]
}
Status Codes:
  • 200 OK: Wallets retrieved successfully
  • 401 Unauthorized: Invalid or expired token
  • 404 Not Found: No wallets found for customer

Get Transaction History

Retrieves transaction history for a customer. Endpoint: /api/v2/wallet/transaction-history Microservice: walletMicroService Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "consumerId": "cust_12345678",
  "pageNumber": 0,
  "pageSize": 10,
  "searchKey": "",
  "fromDate": "2025-05-01T00:00:00Z",
  "toDate": "2025-06-01T23:59:59Z",
  "transactionType": "ALL" // or "DEPOSIT", "WITHDRAWAL", "TRANSFER"
}
Response:
{
  "over_all_transaction_history_by_customer": [
    {
      "transactionId": "txn_12345678",
      "orderId": "order_12345678",
      "transactionType": "DEPOSIT",
      "amount": "500.00",
      "currency": "EUR",
      "status": "COMPLETED",
      "sourceWallet": "0x1234567890abcdef",
      "destinationWallet": "0x1234567890abcdef",
      "fee": "2.50",
      "description": "Bank transfer deposit",
      "createdAt": "2025-05-20T09:15:00Z",
      "completedAt": "2025-05-20T09:20:00Z"
    },
    {
      "transactionId": "txn_87654321",
      "orderId": "order_87654321",
      "transactionType": "TRANSFER",
      "amount": "100.00",
      "currency": "EUR",
      "status": "COMPLETED",
      "sourceWallet": "0x1234567890abcdef",
      "destinationWallet": "IBAN: DE89370400440532013000",
      "fee": "1.00",
      "description": "SEPA transfer to external account",
      "createdAt": "2025-05-25T14:30:00Z",
      "completedAt": "2025-05-25T14:35:00Z"
    }
  ],
  "total_count": 24
}
Status Codes:
  • 200 OK: Transaction history retrieved successfully
  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Invalid or expired token

Process Transaction Fee

Calculates fees for a transaction. Endpoint: /api/v2/wallet/process-fee Microservice: customerMicroService Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "customerId": "cust_12345678",
  "transactionType": "TRANSFER",
  "amount": "100.00",
  "currency": "EUR",
  "sourceWalletId": "wallet_12345678",
  "destinationType": "EXTERNAL_IBAN"
}
Response:
{
  "feeAmount": "1.00",
  "feeCurrency": "EUR",
  "feeType": "PERCENTAGE",
  "feePercentage": "1.00",
  "totalAmount": "101.00",
  "description": "1% fee for external SEPA transfers"
}
Status Codes:
  • 200 OK: Fee calculated successfully
  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Invalid or expired token

Process Transaction Limit

Validates that a transaction does not exceed applicable limits. Endpoint: /api/v2/wallet/process-limit Microservice: customerMicroService Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "customerId": "cust_12345678",
  "transactionType": "TRANSFER",
  "amount": "100.00",
  "currency": "EUR",
  "sourceWalletId": "wallet_12345678"
}
Response:
{
  "limitCheck": "PASSED",
  "dailyLimit": "5000.00",
  "dailyUsed": "100.00",
  "dailyRemaining": "4900.00",
  "monthlyLimit": "20000.00",
  "monthlyUsed": "600.00",
  "monthlyRemaining": "19400.00",
  "singleTransactionLimit": "10000.00"
}
Status Codes:
  • 200 OK: Limit check passed
  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Invalid or expired token
  • 403 Forbidden: Transaction exceeds limits

Send 2FA Verification Code

Sends a verification code for transaction authorization. Endpoint: /api/v2/auth/2fa/send-code Microservice: bffMs Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "customerId": "cust_12345678",
  "phoneNumber": "+12125551234"
}
Response:
{
  "status": "SENT",
  "expiresAt": "2025-06-01T09:25:00Z"
}
Status Codes:
  • 200 OK: Verification code sent successfully
  • 400 Bad Request: Invalid phone number
  • 401 Unauthorized: Invalid or expired token
  • 429 Too Many Requests: Too many verification attempts

Verify 2FA Code

Verifies the 2FA code for transaction authorization. Endpoint: /api/v2/auth/2fa/verify-code Microservice: bffMs Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "customerId": "cust_12345678",
  "verificationCode": "123456"
}
Response:
{
  "status": "VERIFIED",
  "message": "Verification successful"
}
Status Codes:
  • 200 OK: Verification successful
  • 400 Bad Request: Invalid verification code
  • 401 Unauthorized: Invalid or expired token
  • 410 Gone: Verification code expired
  • 429 Too Many Requests: Too many verification attempts

Send Funds (Create Order)

Creates a transaction order. Endpoint: /api/v2/wallet/send-fund Microservice: bffMs Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "sourceWalletAddress": "0x1234567890abcdef",
  "destinationWalletAddress": "",
  "amount": "100.00",
  "currency": "EUR",
  "beneficiaryIban": "DE89370400440532013000",
  "beneficiaryName": "Jane Smith",
  "beneficiaryBankName": "Deutsche Bank",
  "beneficiaryCountry": "DE",
  "description": "Monthly rent payment"
}
Response:
{
  "orderId": "order_12345678",
  "transactionId": "txn_12345678",
  "status": "PROCESSING",
  "createdAt": "2025-06-01T09:45:00Z",
  "estimatedCompletionTime": "2025-06-01T10:00:00Z"
}
Status Codes:
  • 201 Created: Order created successfully
  • 400 Bad Request: Invalid request parameters
  • 401 Unauthorized: Invalid or expired token
  • 403 Forbidden: Insufficient funds or limits exceeded
  • 422 Unprocessable Entity: Invalid beneficiary information

Get Order Details

Retrieves details of a specific order. Endpoint: /api/v2/wallet/order-detail Microservice: walletMicroService Method: POST Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Request Body:
{
  "orderId": "order_12345678",
  "walletAddress": "0x1234567890abcdef"
}
Response:
{
  "orderId": "order_12345678",
  "transactionId": "txn_12345678",
  "orderType": "TRANSFER",
  "amount": "100.00",
  "fee": "1.00",
  "totalAmount": "101.00",
  "currency": "EUR",
  "status": "COMPLETED",
  "sourceWallet": "0x1234567890abcdef",
  "destinationDetails": {
    "type": "EXTERNAL_IBAN",
    "iban": "DE89370400440532013000",
    "name": "Jane Smith",
    "bankName": "Deutsche Bank",
    "country": "DE"
  },
  "createdAt": "2025-06-01T09:45:00Z",
  "updatedAt": "2025-06-01T09:50:00Z",
  "completedAt": "2025-06-01T09:50:00Z",
  "description": "Monthly rent payment"
}
Status Codes:
  • 200 OK: Order details retrieved successfully
  • 401 Unauthorized: Invalid or expired token
  • 404 Not Found: Order not found

Internal API Calls

These are the internal API calls used by the system during wallet and transaction processing:

walletV2.getCustomerWallets

Microservice: walletMicroService Description: Retrieves all wallets associated with a customer. Request Parameters:
  • customerId: Customer ID
Response:
  • List of wallets with their details (ID, address, type, currency, balance, status)

walletV2.getOverAllTransactionHistoryByCustomer

Microservice: walletMicroService Description: Retrieves transaction history for a customer. Request Parameters:
  • consumerId: Customer ID
  • pageNumber: Page number for pagination
  • pageSize: Number of records per page
  • searchKey: Optional search term
  • fromDate: Start date for filtering
  • toDate: End date for filtering
  • transactionType: Type of transactions to retrieve
Response:
  • List of transactions with their details
  • Total count of transactions

walletV2.getAssetTransactions

Microservice: walletMicroService Description: Retrieves transactions for a specific asset. Request Parameters:
  • customerId: Customer ID
  • assetId: Asset ID
  • pageNumber: Page number for pagination
  • pageSize: Number of records per page
Response:
  • List of transactions for the specified asset
  • Total count of transactions

walletRule.processFee

Microservice: customerMicroService Description: Calculates fees for a transaction. Request Parameters:
  • customerId: Customer ID
  • transactionType: Type of transaction
  • amount: Transaction amount
  • currency: Transaction currency
  • sourceWalletId: Source wallet ID
  • destinationType: Type of destination
Response:
  • Fee amount and details
  • Total amount including fees

walletRule.processLimit

Microservice: customerMicroService Description: Checks if a transaction exceeds any limits. Request Parameters:
  • customerId: Customer ID
  • transactionType: Type of transaction
  • amount: Transaction amount
  • currency: Transaction currency
  • sourceWalletId: Source wallet ID
Response:
  • Limit check result
  • Daily and monthly limits and usage

bff.resendCode

Microservice: bffMs Description: Sends a verification code for transaction authorization. Request Parameters:
  • customerId: Customer ID
  • phoneNumber: Phone number to send code to
Response:
  • Status of the code sending operation
  • Expiration time of the code

bff.verifySmsCode

Microservice: bffMs Description: Verifies the SMS code for transaction authorization. Request Parameters:
  • customerId: Customer ID
  • verificationCode: Code to verify
Response:
  • Verification status
  • Status message

bff.sendFund

Microservice: bffMs Description: Creates a transaction order. Request Parameters:
  • sourceWalletAddress: Source wallet address
  • destinationWalletAddress: Destination wallet address (optional)
  • amount: Transaction amount
  • currency: Transaction currency
  • beneficiaryIban: Beneficiary IBAN (for SEPA transfers)
  • beneficiaryName: Beneficiary name
  • beneficiaryBankName: Beneficiary bank name
  • beneficiaryCountry: Beneficiary country
Response:
  • Order ID and transaction ID
  • Status and estimated completion time

walletV2.getOrderDetail

Microservice: walletMicroService Description: Retrieves details of a specific order. Request Parameters:
  • orderId: Order ID
  • walletAddress: Wallet address
Response:
  • Detailed order information including status, amounts, source and destination details