URL: /baas/api/integration/flows/organization-customer/transaction-operations --- title: 'Phase 8: Transaction Operations' description: 'Fund wallet, execute transfers, and manage high-value transactions' --- # Phase 8: Transaction Operations The final phase covers transaction operations: funding the wallet, preparing transfers, executing payments, and handling high-value transactions with document requirements. ## Transaction Flow ```mermaid flowchart LR A[Fund Wallet] --> B[Prepare Transfer] B --> C{High Value?} C -->|Yes| D[Upload Documents] C -->|No| E[Execute Transfer] D --> E E --> F[Monitor Status] ``` --- ## Step 1: Fund Wallet (Topup) **Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/topup/prepare` **Request Body:** ```json { "sourceAccount": { "iban": "FR7612345678901234567890123", "accountHolder": "Acme Corporation Limited", "bic": "BNPAFRPP" }, "targetAccount": { "walletId": "wallet-aa0e8400-e29b-41d4-a716-446655440120", "iban": "FR7630001007941234567890186" }, "amount": { "value": "5000000", "currency": "EUR" }, "description": "Initial wallet funding", "reference": "FUND-2026-001" } ``` **Status:** `200 OK` ```json { "code": 200, "message": "Topup order prepared successfully", "data": { "preparedOrderId": "prep-4455e8400-e29b-41d4-a716-446655440210", "operationType": "TOPUP", "status": "PREPARED", "amount": { "value": "5000000", "valueFormatted": "50000.00", "currency": "EUR" }, "fees": { "value": "0", "valueFormatted": "0.00", "currency": "EUR" }, "totalAmount": { "value": "5000000", "valueFormatted": "50000.00", "currency": "EUR" }, "estimatedExecutionTime": "2026-01-15T17:00:00.000Z", "validUntil": "2026-01-15T20:00:00.000Z" } } ``` **Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/topup/execute` **Request Body:** ```json { "preparedOrderId": "prep-4455e8400-e29b-41d4-a716-446655440210", "consentConfirmation": { "confirmed": true, "confirmationMethod": "EXPLICIT" } } ``` **Status:** `200 OK` ```json { "code": 200, "message": "Topup executed successfully", "data": { "executionId": "exec-5566e8400-e29b-41d4-a716-446655440220", "orderId": "order-6677e8400-e29b-41d4-a716-446655440221", "status": "EXECUTING", "estimatedCompletionTime": "2026-01-15T17:00:00.000Z" } } ``` --- ## Step 2: High-Value Transfer with Documents For transactions ≥ €10,000, supporting documents may be required. ### Upload Payment Document **Endpoint:** `POST /api/v2.1/fintrans/{walletId}/payment-documents` **Content-Type:** `multipart/form-data` **Form Data:** ``` documentType: INVOICE file: [invoice_INV-2026-001.pdf] transactionReference: INV-2026-001 amount: 15000.00 currency: EUR beneficiaryName: Supplier Corporation Ltd description: Invoice payment for software licenses ``` **Status:** `201 Created` ```json { "code": 201, "message": "Payment document uploaded successfully", "data": { "documentId": "doc-7788e8400-e29b-41d4-a716-446655440230", "transactionReference": "INV-2026-001", "status": "VERIFIED" } } ``` ### Payment Document Types | Document Type | Description | |---------------|-------------| | `INVOICE` | Supplier invoice | | `CONTRACT` | Service contract | | `PURCHASE_ORDER` | Purchase order | | `PROFORMA` | Proforma invoice | | `TAX_DOCUMENT` | Tax-related document | --- ## Step 3: Prepare Business Transfer **Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/transfer/prepare` **Request Body:** ```json { "sourceAccount": { "walletId": "wallet-aa0e8400-e29b-41d4-a716-446655440120", "iban": "FR7630001007941234567890186" }, "targetAccount": { "iban": "GB82WEST12345698765432", "beneficiaryName": "Supplier Corporation Ltd", "bic": "WESTGB21" }, "amount": { "value": "1500000", "currency": "EUR" }, "description": "Invoice payment #INV-2026-001", "reference": "INV-2026-001", "paymentConsentId": "consent-3344e8400-e29b-41d4-a716-446655440200", "supportingDocuments": [ "doc-7788e8400-e29b-41d4-a716-446655440230" ], "metadata": { "invoiceNumber": "INV-2026-001", "invoiceDate": "2026-01-10", "purchaseOrderNumber": "PO-2026-001", "contractReference": "CNT-2024-001" } } ``` **Status:** `200 OK` ```json { "code": 200, "message": "Order prepared successfully", "data": { "preparedOrderId": "prep-8899e8400-e29b-41d4-a716-446655440240", "operationType": "TRANSFER", "status": "PREPARED", "amount": { "value": "1500000", "valueFormatted": "15000.00", "currency": "EUR" }, "fees": { "value": "150", "valueFormatted": "1.50", "currency": "EUR" }, "totalAmount": { "value": "1500150", "valueFormatted": "15001.50", "currency": "EUR" }, "validUntil": "2026-01-15T20:00:00.000Z", "warnings": [], "requiredApprovals": [ { "reason": "Amount exceeds approval threshold", "threshold": "5000000", "requiredRoles": ["TRANSACTION_APPROVER", "ADMIN_USER"] } ] } } ``` --- ## Step 4: Execute Transfer **Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/transfer/execute` **Request Body:** ```json { "preparedOrderId": "prep-8899e8400-e29b-41d4-a716-446655440240", "consentConfirmation": { "confirmed": true, "confirmationMethod": "EXPLICIT", "confirmationTimestamp": "2026-01-15T16:00:00.000Z" } } ``` **Status:** `200 OK` ```json { "code": 200, "message": "Order executed successfully", "data": { "executionId": "exec-9900e8400-e29b-41d4-a716-446655440250", "orderId": "order-0011e8400-e29b-41d4-a716-446655440251", "preparedOrderId": "prep-8899e8400-e29b-41d4-a716-446655440240", "status": "EXECUTING", "executionTimestamp": "2026-01-15T16:00:30.000Z", "estimatedCompletionTime": "2026-01-15T17:00:00.000Z", "transactionReference": "TXN-20260115-001", "confirmationNumber": "CNF-20260115-001" } } ``` --- ## Order Status Flow ```mermaid flowchart LR A[PREPARED] --> B{Approval Required?} B -->|No| C[EXECUTING] B -->|Yes| D[PENDING_APPROVAL] D --> E{Approved?} E -->|Yes| C E -->|No| F[REJECTED] C --> G{Outcome} G -->|Success| H[COMPLETED] G -->|Failure| I[FAILED] ``` --- ## Get Order Status **Endpoint:** `GET /api/v2.1/fintrans/{accountId}/orders/{orderId}` ```json { "code": 200, "message": "Order retrieved successfully", "data": { "orderId": "order-0011e8400-e29b-41d4-a716-446655440251", "operationType": "TRANSFER", "status": "COMPLETED", "amount": "1500000", "amountFormatted": "15000.00", "currency": "EUR", "fees": "150", "feesFormatted": "1.50", "beneficiaryName": "Supplier Corporation Ltd", "beneficiaryIban": "GB82WEST12345698765432", "reference": "INV-2026-001", "transactionReference": "TXN-20260115-001", "createdAt": "2026-01-15T16:00:00.000Z", "executedAt": "2026-01-15T16:00:30.000Z", "completedAt": "2026-01-15T16:05:00.000Z" } } ``` --- ## Fee Structure | Transaction Type | Fee | |------------------|-----| | SEPA Transfer | €1.50 | | SWIFT Transfer | €15.00 | | Topup (Incoming) | Free | | Internal Transfer | Free | | Bulk Payment (per item) | €0.50 | --- ## Complete B2B Flow Summary ``` ┌─────────────────────────────────────────────────────────────┐ │ ORGANIZATION CUSTOMER COMPLETE LIFECYCLE │ └─────────────────────────────────────────────────────────────┘ Phase 1: Registration (10 min) └─→ Organization + Default Admin created Phase 2: Personnel (20 min) └─→ Directors, Shareholders, Employees added Phase 3: Verification (2-5 days) └─→ KYB documents submitted and approved Phase 4: Consents (10 min) └─→ Organization consents with authorized signatory Phase 5: Activation (instant) └─→ Role validation, IBAN generated, wallet activated Phase 6: Beneficiaries (ongoing) └─→ Business beneficiaries with due diligence Phase 7: Payment Consent (5 min) └─→ Consent with limits and restrictions Phase 8: Transactions (ongoing) └─→ Topup, transfers, payments with documents ``` --- ## Related Resources Common errors and troubleshooting Implementation best practices