URL: /baas/api/integration/flows/individual-customer/payment-operations
---
title: 'Phase 7: Payment Operations'
description: 'Add beneficiaries, prepare orders, and execute transfers'
---
# Phase 7: Payment Operations
The final phase covers payment operations: adding beneficiaries, preparing orders, and executing transfers.
## Payment Flow
```mermaid
flowchart LR
A[Add Beneficiary] --> B[Prepare Order]
B --> C[Execute Order]
C --> D[Monitor Status]
style A fill:#e3f2fd
style B fill:#fff8e1
style C fill:#e8f5e9
style D fill:#e8f5e9
```
---
## Step 1: Add Beneficiary
Beneficiaries must be pre-registered before making transfers.
**Endpoint:** `POST /api/v2.1/fintrans/{accountId}/beneficiaries`
**Headers:**
```http
Authorization: Bearer {jwt-token}
Content-Type: application/json
```
**Request Body:**
```json
{
"partyType": "INDIVIDUAL_CUSTOMER",
"firstName": "Jane",
"lastName": "Smith",
"iban": "GB82WEST12345698765432",
"currency": "EUR",
"country": "GB",
"email": "jane.smith@example.com",
"phoneNumber": "+442071234567",
"shortName": "Jane S",
"bicSwiftCode": "WESTGB21",
"networkName": "SEPA",
"bankName": "Westminster Bank",
"bankAddress": "London, UK",
"purposeCode": "FAMILY_SUPPORT"
}
```
**Status:** `201 Created`
```json
{
"code": 201,
"message": "Beneficiary created successfully",
"data": {
"beneficiaryId": "benef-cc0e8400-e29b-41d4-a716-446655440060",
"accountId": "wallet-aa0e8400-e29b-41d4-a716-446655440050",
"partyType": "INDIVIDUAL_CUSTOMER",
"beneficiaryName": "Jane Smith",
"iban": "GB82WEST12345698765432",
"bic": "WESTGB21",
"bicType": "external",
"currency": "EUR",
"country": "GB",
"networkName": "SEPA",
"pepCheckResult": "VERIFIED",
"status": "active",
"createdAt": "2026-01-14T15:00:00.000Z"
}
}
```
### Beneficiary Party Types
| Party Type | Description |
|------------|-------------|
| `INDIVIDUAL_CUSTOMER` | Personal beneficiary |
| `BUSINESS_CUSTOMER` | Business beneficiary |
### PEP Check Results
| Result | Description |
|--------|-------------|
| `VERIFIED` | PEP check passed |
| `PENDING` | PEP check in progress |
| `FLAGGED` | Requires additional review |
---
## Step 2: List Beneficiaries
**Endpoint:** `GET /api/v2.1/fintrans/{accountId}/beneficiaries`
**Headers:**
```http
Authorization: Bearer {jwt-token}
```
**Status:** `200 OK`
```json
{
"code": 200,
"message": "Beneficiaries retrieved successfully",
"data": [
{
"beneficiaryId": "benef-cc0e8400-e29b-41d4-a716-446655440060",
"beneficiaryName": "Jane Smith",
"iban": "GB82WEST12345698765432",
"network": "SEPA",
"status": "active",
"lastUsed": null
}
]
}
```
---
## Step 3: Prepare Transfer Order
**Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/transfer/prepare`
**Request Body:**
```json
{
"sourceAccount": {
"walletId": "wallet-aa0e8400-e29b-41d4-a716-446655440050",
"iban": "FR7630001007941234567890185"
},
"targetAccount": {
"iban": "GB82WEST12345698765432",
"beneficiaryName": "Jane Smith",
"bic": "WESTGB21"
},
"amount": {
"value": "100000",
"currency": "EUR"
},
"description": "Family support payment",
"reference": "FAM-2026-001"
}
```
**Status:** `200 OK`
```json
{
"code": 200,
"message": "Order prepared successfully",
"data": {
"preparedOrderId": "prep-dd0e8400-e29b-41d4-a716-446655440070",
"operationType": "TRANSFER",
"status": "PREPARED",
"amount": {
"value": "100000",
"valueFormatted": "1000.00",
"currency": "EUR"
},
"fees": {
"value": "150",
"valueFormatted": "1.50",
"currency": "EUR"
},
"totalAmount": {
"value": "100150",
"valueFormatted": "1001.50",
"currency": "EUR"
},
"estimatedExecutionTime": "2026-01-14T16:00:00.000Z",
"validUntil": "2026-01-14T18:00:00.000Z",
"warnings": [],
"requiredApprovals": []
}
}
```
### Prepared Order Fields
| Field | Description |
|-------|-------------|
| `preparedOrderId` | ID for executing the order |
| `amount` | Transfer amount |
| `fees` | Transaction fees |
| `totalAmount` | Amount + fees |
| `validUntil` | Order expiry time |
**Order Validity:** Prepared orders expire after 2-3 hours. Execute before `validUntil` timestamp.
---
## Step 4: Execute Transfer Order
**Endpoint:** `POST /api/v2.1/fintrans/{accountId}/types/transfer/execute`
**Request Body:**
```json
{
"preparedOrderId": "prep-dd0e8400-e29b-41d4-a716-446655440070",
"consentConfirmation": {
"confirmed": true,
"confirmationMethod": "EXPLICIT",
"confirmationTimestamp": "2026-01-14T15:45:00.000Z"
}
}
```
**Status:** `200 OK`
```json
{
"code": 200,
"message": "Order executed successfully",
"data": {
"executionId": "exec-ee0e8400-e29b-41d4-a716-446655440080",
"orderId": "order-ff0e8400-e29b-41d4-a716-446655440081",
"preparedOrderId": "prep-dd0e8400-e29b-41d4-a716-446655440070",
"status": "EXECUTING",
"executionTimestamp": "2026-01-14T15:45:30.000Z",
"estimatedCompletionTime": "2026-01-14T16:00:00.000Z",
"transactionReference": "TXN-20260114-001",
"confirmationNumber": "CNF-20260114-001"
}
}
```
---
## Order Status Flow
```mermaid
flowchart LR
A[PREPARED] --> B[EXECUTING]
B --> C{Outcome}
C -->|Success| D[COMPLETED]
C -->|Failure| E[FAILED]
C -->|Cancelled| F[CANCELLED]
```
### Order Statuses
| Status | Description |
|--------|-------------|
| `PREPARED` | Order created, awaiting execution |
| `EXECUTING` | Order being processed |
| `COMPLETED` | Order successfully completed |
| `FAILED` | Order failed |
| `CANCELLED` | Order cancelled |
---
## Step 5: Check Order Status
**Endpoint:** `GET /api/v2.1/fintrans/{accountId}/orders/{orderId}`
**Headers:**
```http
Authorization: Bearer {jwt-token}
```
**Status:** `200 OK`
```json
{
"code": 200,
"message": "Order retrieved successfully",
"data": {
"orderId": "order-ff0e8400-e29b-41d4-a716-446655440081",
"operationType": "TRANSFER",
"status": "COMPLETED",
"amount": "100000",
"amountFormatted": "1000.00",
"currency": "EUR",
"fees": "150",
"feesFormatted": "1.50",
"beneficiaryName": "Jane Smith",
"beneficiaryIban": "GB82WEST12345698765432",
"reference": "FAM-2026-001",
"transactionReference": "TXN-20260114-001",
"createdAt": "2026-01-14T15:45:00.000Z",
"executedAt": "2026-01-14T15:45:30.000Z",
"completedAt": "2026-01-14T15:50:00.000Z"
}
}
```
---
## Transfer Types
| Type | Endpoint Suffix | Description |
|------|-----------------|-------------|
| Transfer | `/types/transfer/prepare` | Standard transfer |
| Topup | `/types/topup/prepare` | Add funds to wallet |
| Payment | `/types/payment/prepare` | Make a payment |
---
## Fee Structure
| Transaction Type | Fee |
|------------------|-----|
| SEPA Transfer | €1.50 |
| SWIFT Transfer | €15.00 |
| Internal Transfer | Free |
---
## Complete Flow Summary
```
┌─────────────────────────────────────────────────────────────┐
│ INDIVIDUAL CUSTOMER COMPLETE LIFECYCLE │
└─────────────────────────────────────────────────────────────┘
Phase 1: Registration (5 min)
└─→ Customer + User + Wallet created
Phase 2: Session (instant)
└─→ JWT token for API calls
Phase 3: Verification (1-3 days)
└─→ KYC documents submitted and approved
Phase 4: Consents (5 min)
└─→ Terms, Privacy, Data Processing accepted
Phase 5: Activation (instant)
└─→ IBAN generated, wallet activated
Phase 6: Wallet Operations (ongoing)
└─→ Balance queries, limits check
Phase 7: Payment Operations (ongoing)
└─→ Beneficiaries, transfers, payments
```
---
## Related Resources
Common errors and troubleshooting
Implementation best practices