> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.redpincompany.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.redpincompany.com/_mcp/server.

# Create a payment session

POST https://api.redpincompany.com/v1/customers/{customer_id}/sessions
Content-Type: application/json

A Payment Session is a temporary, secure, and hosted interaction between your platform and Redpin, designed to facilitate cross-border payments.

The [OAuth 2.0 Authenticated](/api-guide/getting-started/authentication#oauth-20-authentication) Create Payment Session API allows you to create a new hosted payment session.
You provide the payment details (amount, items, recipients, etc.) and session configuration (like allowed domains), and receive a unique session URL in response. This URL can be embedded in your app or website to launch the hosted payment flow in a secure, guided interface.

Payment sessions are time-bound and will automatically expire at the specified `expires_at` timestamp. Once expired, the session URL becomes inaccessible and can no longer be used to complete the payment. If the payment is not completed before the session expires, a new session must be created again to initiate the payment.

For real-time payment status updates, use the Webhook Subscription API to subscribe to the [PAYMENT STATUS](/api-reference/customers/api-integration/webhooks/create-webhook) event.


Reference: https://docs.redpincompany.com/api-reference/customers/hosted-experience/sessions/create-payment-session

## Authentication

- `Authorization` header (bearer token, required) — OAuth 2.0 Bearer token authentication. This API uses OAuth 2.0 Client Credentials flow. Please refer to the [Authentication](/api-guide/getting-started/authentication#oauth-20-authentication) section for detailed information on how to obtain and use your OAuth credentials.

## Servers

- `https://api.redpincompany.com` (Production, default)
- `https://api.currenciesdirect.com` (Production CD)
- `https://sandbox.redpincompany.com` (Sandbox)
- `https://sandbox.currenciesdirect.com` (Sandbox CD)

## Request

### Path parameters

- `customer_id` (string, required) — A unique identifier for the customer initiating the session.

### Body (application/json)

This endpoint expects a PaymentSessionRequest.

- `client_customer_ref` (string, required) — The API caller's internal customer ID for the person initiating the payment. It must be the same reference used when invoking the Pre-eligibility check API.
- `client_reference_id` (string, required) — A unique reference identifier for this payment session in your system. This reference is used to uniquely identify and track this specific payment. **Validation Rules:** - Uniqueness is enforced for third-party payments only: must be unique per customer (per Redpin `customer_id`); duplicate references for the same customer will be rejected. Hosted sessions are third-party, so this applies. - Maximum length: 36 characters - Allowed characters: alphanumeric (A-Z, a-z, 0-9), hyphens (-), and underscores (_)
- `amount` (Amount, required)
- `due_date` (date, required) — The date by which the amount must be credited to all recipient bank accounts. Must follow the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD) and be at least 5 calendar days from the current date.
- `purpose_of_transaction` (enum, required) — Purpose of the transaction. Must be one of the predefined values. **Validation Rules:** - Must be provided and cannot be null or empty - Must be one of the allowed enum values - Case sensitive - must match exactly
  - Allowed values: `PROPERTY_PURCHASE`, `BUSINESS_INVOICES`, `PENSION`, `STUDY_FEES`, `CAR_BOAT_PLANE`, `EMIGRATION`, `LAND`, `MORTGAGE`, `BILL_PAYMENTS`, `BUILDING_REPAIRS_PROPERTY_MAINTENANCE`, `PROPERTY_SALE`, `LIVING_FUNDS`, `OTHERS`, `BUYING_PRODUCTS_SERVICES`, `CHARITABLE_DONATION`, `FREIGHT`, `INVESTMENT`, `PROPERTY_PURCHASE`, `SALARY`, `TRAVEL_EXPENSES`, `INHERITANCE`, `SENDING_TO_FAMILY`, `EXPORT_PROCEEDS`, `ECOMMERCE_SALE`
- `recipient_details` (list of RecipientDetail, required) — List of recipients who will receive payment funds. Independent of items, allowing flexible fund distribution. **Validation Rules:** - At least one recipient is required - Sum of all recipient amounts must equal the session total amount - All recipient currencies must match the session amount currency
- `items` (list of PaymentItem, optional) — List of payment items describing what is being paid for in this session. Each item represents a line item (property, invoice, booking, service fee, etc.). **Validation Rules:** - At least one item is required - Sum of all item amounts must equal the session total amount - All item currencies must match the session amount currency
- `allowed_origins` (list of string, optional) — Origins (or app identifiers) from which the hosted payment session is expected to be launched. Also used as a proxy to determine whether OTP based verification is required. Each entry must be one of the following: - A valid HTTPS origin for web applications (e.g., https://example.com) - A valid Android package name (e.g., com.example.app) for native Android apps - A valid iOS bundle identifier (e.g., com.example.iosapp) for native iOS apps OTP enforcement logic: - If this field is empty or omitted → OTP is required. The customer will be prompted to enter an OTP sent to the mobile number supplied during [Third-Party Customer](/api-reference/customers/api-integration/third-parties/create-third-party-customer) creation. The customer can choose to receive the OTP via SMS or voice call based on their preference. - If this field is set (contains one or more entries) → OTP is not required. Notes: - Wildcards or regular expressions are **not supported**. - If this field is **not provided**, the session will be accessible from **any origin** and OTP will be enforced as described above.

## Response

### 201

Payment session created successfully

- `session_id` (string, required) — A unique identifier automatically generated for each payment session.
- `client_reference_id` (string, required) — The unique payment reference provided by the client in the request, returned for confirmation and tracking purposes.
- `expires_at` (datetime, required) — The exact date and time (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format) when the session becomes invalid. - The session URL becomes inaccessible and can no longer be used to complete the payment. If the payment is not completed before the session expires, a new session must be created again to initiate the payment.
- `session_url` (string, required) — A hosted payment page URL that displays Redpin's secure payment flow. This URL can be integrated into your mobile app (via webview) or website (via redirect or iframe), allowing users to review payment details and complete the cross-border transaction.

## Errors

### 400 Bad Request Error

Bad request - validation failed

- `code` (string, required) — Application-specific error code.
- `description` (string, required) — Summary of the error.
- `type` (enum, required) — Category or type of the error. - `VALIDATION_ERROR`: Error due to invalid input data or format - `AUTHORIZATION_ERROR`: Error related to insufficient permissions - `SYSTEM_ERROR`: Internal system or server errors - `RESOURCE_ERROR`: Error related to resource availability - `BUSINESS_ERROR`: Error related to business logic violations - `DATA_ERROR`: Error related to data inconsistencies or duplication
  - Allowed values: `VALIDATION_ERROR`, `AUTHORIZATION_ERROR`, `SYSTEM_ERROR`, `RESOURCE_ERROR`, `BUSINESS_ERROR`, `DATA_ERROR`
- `field` (string, optional) — (Optional) The specific field or parameter related to the error.
- `details` (string, optional) — (Optional) Additional information that may help in debugging the error.

### 500 Internal Server Error

Internal server error

- `code` (string, required) — Application-specific error code.
- `description` (string, required) — Summary of the error.
- `type` (enum, required) — Category or type of the error. - `VALIDATION_ERROR`: Error due to invalid input data or format - `AUTHORIZATION_ERROR`: Error related to insufficient permissions - `SYSTEM_ERROR`: Internal system or server errors - `RESOURCE_ERROR`: Error related to resource availability - `BUSINESS_ERROR`: Error related to business logic violations - `DATA_ERROR`: Error related to data inconsistencies or duplication
  - Allowed values: `VALIDATION_ERROR`, `AUTHORIZATION_ERROR`, `SYSTEM_ERROR`, `RESOURCE_ERROR`, `BUSINESS_ERROR`, `DATA_ERROR`
- `field` (string, optional) — (Optional) The specific field or parameter related to the error.
- `details` (string, optional) — (Optional) Additional information that may help in debugging the error.

## Types

### Amount

- `currency` (string, required) — Three-letter ISO 4217 currency code. See [ISO 4217 on Wikipedia](https://en.wikipedia.org/wiki/ISO_4217). **Validation Rules:** - Must match the currency in all items and recipient details
- `value` (double, required) — The total payment amount for this session. **Validation Rules:** - Must equal sum of all item amounts (Σ items[i].amount.value) - Must equal sum of all recipient amounts (Σ recipient_details[i].amount.value) - Maximum precision: 2 decimal places

### RecipientDetail

- `amount` (RecipientAmount, required)
- `payment_reference` (string, required) — A note or reference specific to the payment made to this recipient. This value will appear in the recipient's bank statement as the payment reference and must not contain any special characters.
- `purpose_of_transaction` (enum, required) — Purpose of the transaction.
  - Allowed values: `PROPERTY_PURCHASE`, `BUSINESS_INVOICES`, `PENSION`, `STUDY_FEES`, `CAR_BOAT_PLANE`, `EMIGRATION`, `LAND`, `MORTGAGE`, `BILL_PAYMENTS`, `BUILDING_REPAIRS_PROPERTY_MAINTENANCE`, `PROPERTY_SALE`, `LIVING_FUNDS`, `OTHERS`, `BUYING_PRODUCTS_SERVICES`, `CHARITABLE_DONATION`, `FREIGHT`, `INVESTMENT`, `PROPERTY_PURCHASE`, `SALARY`, `TRAVEL_EXPENSES`, `INHERITANCE`, `SENDING_TO_FAMILY`, `EXPORT_PROCEEDS`, `ECOMMERCE_SALE`
- `recipient_id` (string, required) — Unique identifier for the recipient. Use the `recipient_id` returned by the [Add a New Recipient](/api-reference/customers/api-integration/recipients/add-a-new-recipient) API.

### PaymentItem

- `item_name` (string, required) — Human-readable name or description of this payment item. This will be displayed to the end user during the payment flow.
- `amount` (ItemAmount, required)
- `item_ref` (string, optional) — Optional reference identifier for this payment item in your system. Can be a property_ref, invoice_ref, booking_ref, order_id, etc. Used for tracking and reconciliation purposes.
- `item_type` (string, optional) — Optional free-form categorization of the payment item type for your reference (e.g., "property_payment", "invoice_payment", "service_fee").

### RecipientAmount

- `currency` (string, required) — Three-letter ISO 4217 currency code as specified in the recipient's bank details. See [ISO 4217 on Wikipedia](https://en.wikipedia.org/wiki/ISO_4217).
- `value` (double, required) — The amount expected to be credited to this recipient's bank account, denominated in the currency of recipient's bank account. **Validation Rules:** - Maximum precision: 2 decimal places.

### ItemAmount

- `currency` (string, required) — Three-letter ISO 4217 currency code. Must match the session total amount currency.
- `value` (double, required) — The amount for this specific item. **Validation Rules:** - Must be greater than 0 - Maximum precision: 2 decimal places - Currency must match session total amount currency

## Examples

### Multiple units from the same developer with various charges

**Request**

```json
{
  "body": {
    "client_customer_ref": "CUST-1001-TXN",
    "client_reference_id": "PAY-2025-08-15-001",
    "amount": {
      "currency": "AED",
      "value": 125000
    },
    "due_date": "2025-08-15",
    "items": [
      {
        "item_name": "Seaside Towers - Unit 1204 - Installment 2 of 4",
        "item_ref": "INV-2025-10234",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 50000
        }
      },
      {
        "item_name": "Seaside Towers - Unit 1204 - Service charge Q2",
        "item_ref": "INV-2025-10235",
        "item_type": "service_charge",
        "amount": {
          "currency": "AED",
          "value": 3500
        }
      },
      {
        "item_name": "Seaside Towers - Unit 2108 - Installment 3 of 6",
        "item_ref": "INV-2025-10236",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 65000
        }
      },
      {
        "item_name": "Seaside Towers - Unit 2108 - Admin fee",
        "item_ref": "INV-2025-10237",
        "item_type": "admin_fee",
        "amount": {
          "currency": "AED",
          "value": 6500
        }
      }
    ],
    "recipient_details": [
      {
        "amount": {
          "currency": "AED",
          "value": 125000
        },
        "payment_reference": "SEASIDE-MULTI-AUG",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "123456"
      }
    ],
    "allowed_origins": [
      "https://app.example.com"
    ]
  }
}
```

**Response**

```json
{
  "session_id": "cbf9e10a-b876-491c-9c28-0d1be0581bf7",
  "client_reference_id": "PAY-2025-08-15-001",
  "expires_at": "2025-08-16T08:18:53.631073Z",
  "session_url": "https://app.redpin.com/session/cbf9e10a-b876-491c-9c28-0d1be0581bf7"
}
```

**SDK Code**

```python Multiple units from the same developer with various charges
import requests

url = "https://api.redpincompany.com/v1/customers/customer_123/sessions"

payload = { "body": {
        "client_customer_ref": "CUST-1001-TXN",
        "client_reference_id": "PAY-2025-08-15-001",
        "amount": {
            "currency": "AED",
            "value": 125000
        },
        "due_date": "2025-08-15",
        "items": [
            {
                "item_name": "Seaside Towers - Unit 1204 - Installment 2 of 4",
                "item_ref": "INV-2025-10234",
                "item_type": "installment",
                "amount": {
                    "currency": "AED",
                    "value": 50000
                }
            },
            {
                "item_name": "Seaside Towers - Unit 1204 - Service charge Q2",
                "item_ref": "INV-2025-10235",
                "item_type": "service_charge",
                "amount": {
                    "currency": "AED",
                    "value": 3500
                }
            },
            {
                "item_name": "Seaside Towers - Unit 2108 - Installment 3 of 6",
                "item_ref": "INV-2025-10236",
                "item_type": "installment",
                "amount": {
                    "currency": "AED",
                    "value": 65000
                }
            },
            {
                "item_name": "Seaside Towers - Unit 2108 - Admin fee",
                "item_ref": "INV-2025-10237",
                "item_type": "admin_fee",
                "amount": {
                    "currency": "AED",
                    "value": 6500
                }
            }
        ],
        "recipient_details": [
            {
                "amount": {
                    "currency": "AED",
                    "value": 125000
                },
                "payment_reference": "SEASIDE-MULTI-AUG",
                "purpose_of_transaction": "PROPERTY_PURCHASE",
                "recipient_id": "123456"
            }
        ],
        "allowed_origins": ["https://app.example.com"]
    } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Multiple units from the same developer with various charges
const url = 'https://api.redpincompany.com/v1/customers/customer_123/sessions';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"body":{"client_customer_ref":"CUST-1001-TXN","client_reference_id":"PAY-2025-08-15-001","amount":{"currency":"AED","value":125000},"due_date":"2025-08-15","items":[{"item_name":"Seaside Towers - Unit 1204 - Installment 2 of 4","item_ref":"INV-2025-10234","item_type":"installment","amount":{"currency":"AED","value":50000}},{"item_name":"Seaside Towers - Unit 1204 - Service charge Q2","item_ref":"INV-2025-10235","item_type":"service_charge","amount":{"currency":"AED","value":3500}},{"item_name":"Seaside Towers - Unit 2108 - Installment 3 of 6","item_ref":"INV-2025-10236","item_type":"installment","amount":{"currency":"AED","value":65000}},{"item_name":"Seaside Towers - Unit 2108 - Admin fee","item_ref":"INV-2025-10237","item_type":"admin_fee","amount":{"currency":"AED","value":6500}}],"recipient_details":[{"amount":{"currency":"AED","value":125000},"payment_reference":"SEASIDE-MULTI-AUG","purpose_of_transaction":"PROPERTY_PURCHASE","recipient_id":"123456"}],"allowed_origins":["https://app.example.com"]}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Multiple units from the same developer with various charges
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.redpincompany.com/v1/customers/customer_123/sessions"

	payload := strings.NewReader("{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1001-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-15-001\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 125000\n    },\n    \"due_date\": \"2025-08-15\",\n    \"items\": [\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Installment 2 of 4\",\n        \"item_ref\": \"INV-2025-10234\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Service charge Q2\",\n        \"item_ref\": \"INV-2025-10235\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 3500\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Installment 3 of 6\",\n        \"item_ref\": \"INV-2025-10236\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 65000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Admin fee\",\n        \"item_ref\": \"INV-2025-10237\",\n        \"item_type\": \"admin_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 6500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 125000\n        },\n        \"payment_reference\": \"SEASIDE-MULTI-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Multiple units from the same developer with various charges
require 'uri'
require 'net/http'

url = URI("https://api.redpincompany.com/v1/customers/customer_123/sessions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1001-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-15-001\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 125000\n    },\n    \"due_date\": \"2025-08-15\",\n    \"items\": [\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Installment 2 of 4\",\n        \"item_ref\": \"INV-2025-10234\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Service charge Q2\",\n        \"item_ref\": \"INV-2025-10235\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 3500\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Installment 3 of 6\",\n        \"item_ref\": \"INV-2025-10236\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 65000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Admin fee\",\n        \"item_ref\": \"INV-2025-10237\",\n        \"item_type\": \"admin_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 6500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 125000\n        },\n        \"payment_reference\": \"SEASIDE-MULTI-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Multiple units from the same developer with various charges
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.redpincompany.com/v1/customers/customer_123/sessions")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1001-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-15-001\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 125000\n    },\n    \"due_date\": \"2025-08-15\",\n    \"items\": [\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Installment 2 of 4\",\n        \"item_ref\": \"INV-2025-10234\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Service charge Q2\",\n        \"item_ref\": \"INV-2025-10235\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 3500\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Installment 3 of 6\",\n        \"item_ref\": \"INV-2025-10236\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 65000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Admin fee\",\n        \"item_ref\": \"INV-2025-10237\",\n        \"item_type\": \"admin_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 6500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 125000\n        },\n        \"payment_reference\": \"SEASIDE-MULTI-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}")
  .asString();
```

```php Multiple units from the same developer with various charges
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.redpincompany.com/v1/customers/customer_123/sessions', [
  'body' => '{
  "body": {
    "client_customer_ref": "CUST-1001-TXN",
    "client_reference_id": "PAY-2025-08-15-001",
    "amount": {
      "currency": "AED",
      "value": 125000
    },
    "due_date": "2025-08-15",
    "items": [
      {
        "item_name": "Seaside Towers - Unit 1204 - Installment 2 of 4",
        "item_ref": "INV-2025-10234",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 50000
        }
      },
      {
        "item_name": "Seaside Towers - Unit 1204 - Service charge Q2",
        "item_ref": "INV-2025-10235",
        "item_type": "service_charge",
        "amount": {
          "currency": "AED",
          "value": 3500
        }
      },
      {
        "item_name": "Seaside Towers - Unit 2108 - Installment 3 of 6",
        "item_ref": "INV-2025-10236",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 65000
        }
      },
      {
        "item_name": "Seaside Towers - Unit 2108 - Admin fee",
        "item_ref": "INV-2025-10237",
        "item_type": "admin_fee",
        "amount": {
          "currency": "AED",
          "value": 6500
        }
      }
    ],
    "recipient_details": [
      {
        "amount": {
          "currency": "AED",
          "value": 125000
        },
        "payment_reference": "SEASIDE-MULTI-AUG",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "123456"
      }
    ],
    "allowed_origins": [
      "https://app.example.com"
    ]
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Multiple units from the same developer with various charges
using RestSharp;

var client = new RestClient("https://api.redpincompany.com/v1/customers/customer_123/sessions");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1001-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-15-001\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 125000\n    },\n    \"due_date\": \"2025-08-15\",\n    \"items\": [\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Installment 2 of 4\",\n        \"item_ref\": \"INV-2025-10234\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 1204 - Service charge Q2\",\n        \"item_ref\": \"INV-2025-10235\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 3500\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Installment 3 of 6\",\n        \"item_ref\": \"INV-2025-10236\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 65000\n        }\n      },\n      {\n        \"item_name\": \"Seaside Towers - Unit 2108 - Admin fee\",\n        \"item_ref\": \"INV-2025-10237\",\n        \"item_type\": \"admin_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 6500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 125000\n        },\n        \"payment_reference\": \"SEASIDE-MULTI-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Multiple units from the same developer with various charges
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["body": [
    "client_customer_ref": "CUST-1001-TXN",
    "client_reference_id": "PAY-2025-08-15-001",
    "amount": [
      "currency": "AED",
      "value": 125000
    ],
    "due_date": "2025-08-15",
    "items": [
      [
        "item_name": "Seaside Towers - Unit 1204 - Installment 2 of 4",
        "item_ref": "INV-2025-10234",
        "item_type": "installment",
        "amount": [
          "currency": "AED",
          "value": 50000
        ]
      ],
      [
        "item_name": "Seaside Towers - Unit 1204 - Service charge Q2",
        "item_ref": "INV-2025-10235",
        "item_type": "service_charge",
        "amount": [
          "currency": "AED",
          "value": 3500
        ]
      ],
      [
        "item_name": "Seaside Towers - Unit 2108 - Installment 3 of 6",
        "item_ref": "INV-2025-10236",
        "item_type": "installment",
        "amount": [
          "currency": "AED",
          "value": 65000
        ]
      ],
      [
        "item_name": "Seaside Towers - Unit 2108 - Admin fee",
        "item_ref": "INV-2025-10237",
        "item_type": "admin_fee",
        "amount": [
          "currency": "AED",
          "value": 6500
        ]
      ]
    ],
    "recipient_details": [
      [
        "amount": [
          "currency": "AED",
          "value": 125000
        ],
        "payment_reference": "SEASIDE-MULTI-AUG",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "123456"
      ]
    ],
    "allowed_origins": ["https://app.example.com"]
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.redpincompany.com/v1/customers/customer_123/sessions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Single property with deposit, installment and platform fees

**Request**

```json
{
  "body": {
    "client_customer_ref": "CUST-1002-TXN",
    "client_reference_id": "PAY-2025-08-20-002",
    "amount": {
      "currency": "AED",
      "value": 87500
    },
    "due_date": "2025-08-20",
    "items": [
      {
        "item_name": "Boulevard Residences - Unit 805 - Initial deposit",
        "item_ref": "INV-2025-10450",
        "item_type": "deposit",
        "amount": {
          "currency": "AED",
          "value": 50000
        }
      },
      {
        "item_name": "Boulevard Residences - Unit 805 - Installment 1 of 10",
        "item_ref": "INV-2025-10451",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 30000
        }
      },
      {
        "item_name": "Platform transaction fee",
        "item_ref": "INV-2025-10452",
        "item_type": "platform_fee",
        "amount": {
          "currency": "AED",
          "value": 5000
        }
      },
      {
        "item_name": "Agent commission",
        "item_ref": "INV-2025-10453",
        "item_type": "commission",
        "amount": {
          "currency": "AED",
          "value": 2500
        }
      }
    ],
    "recipient_details": [
      {
        "amount": {
          "currency": "AED",
          "value": 80000
        },
        "payment_reference": "BLV-805-DEPOSIT-INS1",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "123456"
      },
      {
        "amount": {
          "currency": "AED",
          "value": 5000
        },
        "payment_reference": "PLATFORM-FEE-AUG",
        "purpose_of_transaction": "BILL_PAYMENTS",
        "recipient_id": "654321"
      },
      {
        "amount": {
          "currency": "AED",
          "value": 2500
        },
        "payment_reference": "AGENT-COMM-AUG",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "789012"
      }
    ],
    "allowed_origins": [
      "https://app.example.com"
    ]
  }
}
```

**Response**

```json
{
  "session_id": "f2a9d83c-c741-4a2e-b5f0-1f2c3d4e5f6a",
  "client_reference_id": "PAY-2025-08-20-002",
  "expires_at": "2025-08-21T08:18:53.631073Z",
  "session_url": "https://app.redpin.com/session/f2a9d83c-c741-4a2e-b5f0-1f2c3d4e5f6a"
}
```

**SDK Code**

```python Single property with deposit, installment and platform fees
import requests

url = "https://api.redpincompany.com/v1/customers/customer_123/sessions"

payload = { "body": {
        "client_customer_ref": "CUST-1002-TXN",
        "client_reference_id": "PAY-2025-08-20-002",
        "amount": {
            "currency": "AED",
            "value": 87500
        },
        "due_date": "2025-08-20",
        "items": [
            {
                "item_name": "Boulevard Residences - Unit 805 - Initial deposit",
                "item_ref": "INV-2025-10450",
                "item_type": "deposit",
                "amount": {
                    "currency": "AED",
                    "value": 50000
                }
            },
            {
                "item_name": "Boulevard Residences - Unit 805 - Installment 1 of 10",
                "item_ref": "INV-2025-10451",
                "item_type": "installment",
                "amount": {
                    "currency": "AED",
                    "value": 30000
                }
            },
            {
                "item_name": "Platform transaction fee",
                "item_ref": "INV-2025-10452",
                "item_type": "platform_fee",
                "amount": {
                    "currency": "AED",
                    "value": 5000
                }
            },
            {
                "item_name": "Agent commission",
                "item_ref": "INV-2025-10453",
                "item_type": "commission",
                "amount": {
                    "currency": "AED",
                    "value": 2500
                }
            }
        ],
        "recipient_details": [
            {
                "amount": {
                    "currency": "AED",
                    "value": 80000
                },
                "payment_reference": "BLV-805-DEPOSIT-INS1",
                "purpose_of_transaction": "PROPERTY_PURCHASE",
                "recipient_id": "123456"
            },
            {
                "amount": {
                    "currency": "AED",
                    "value": 5000
                },
                "payment_reference": "PLATFORM-FEE-AUG",
                "purpose_of_transaction": "BILL_PAYMENTS",
                "recipient_id": "654321"
            },
            {
                "amount": {
                    "currency": "AED",
                    "value": 2500
                },
                "payment_reference": "AGENT-COMM-AUG",
                "purpose_of_transaction": "PROPERTY_PURCHASE",
                "recipient_id": "789012"
            }
        ],
        "allowed_origins": ["https://app.example.com"]
    } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Single property with deposit, installment and platform fees
const url = 'https://api.redpincompany.com/v1/customers/customer_123/sessions';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"body":{"client_customer_ref":"CUST-1002-TXN","client_reference_id":"PAY-2025-08-20-002","amount":{"currency":"AED","value":87500},"due_date":"2025-08-20","items":[{"item_name":"Boulevard Residences - Unit 805 - Initial deposit","item_ref":"INV-2025-10450","item_type":"deposit","amount":{"currency":"AED","value":50000}},{"item_name":"Boulevard Residences - Unit 805 - Installment 1 of 10","item_ref":"INV-2025-10451","item_type":"installment","amount":{"currency":"AED","value":30000}},{"item_name":"Platform transaction fee","item_ref":"INV-2025-10452","item_type":"platform_fee","amount":{"currency":"AED","value":5000}},{"item_name":"Agent commission","item_ref":"INV-2025-10453","item_type":"commission","amount":{"currency":"AED","value":2500}}],"recipient_details":[{"amount":{"currency":"AED","value":80000},"payment_reference":"BLV-805-DEPOSIT-INS1","purpose_of_transaction":"PROPERTY_PURCHASE","recipient_id":"123456"},{"amount":{"currency":"AED","value":5000},"payment_reference":"PLATFORM-FEE-AUG","purpose_of_transaction":"BILL_PAYMENTS","recipient_id":"654321"},{"amount":{"currency":"AED","value":2500},"payment_reference":"AGENT-COMM-AUG","purpose_of_transaction":"PROPERTY_PURCHASE","recipient_id":"789012"}],"allowed_origins":["https://app.example.com"]}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Single property with deposit, installment and platform fees
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.redpincompany.com/v1/customers/customer_123/sessions"

	payload := strings.NewReader("{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1002-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-20-002\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 87500\n    },\n    \"due_date\": \"2025-08-20\",\n    \"items\": [\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Initial deposit\",\n        \"item_ref\": \"INV-2025-10450\",\n        \"item_type\": \"deposit\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Installment 1 of 10\",\n        \"item_ref\": \"INV-2025-10451\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 30000\n        }\n      },\n      {\n        \"item_name\": \"Platform transaction fee\",\n        \"item_ref\": \"INV-2025-10452\",\n        \"item_type\": \"platform_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      },\n      {\n        \"item_name\": \"Agent commission\",\n        \"item_ref\": \"INV-2025-10453\",\n        \"item_type\": \"commission\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 80000\n        },\n        \"payment_reference\": \"BLV-805-DEPOSIT-INS1\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        },\n        \"payment_reference\": \"PLATFORM-FEE-AUG\",\n        \"purpose_of_transaction\": \"BILL_PAYMENTS\",\n        \"recipient_id\": \"654321\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        },\n        \"payment_reference\": \"AGENT-COMM-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"789012\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Single property with deposit, installment and platform fees
require 'uri'
require 'net/http'

url = URI("https://api.redpincompany.com/v1/customers/customer_123/sessions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1002-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-20-002\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 87500\n    },\n    \"due_date\": \"2025-08-20\",\n    \"items\": [\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Initial deposit\",\n        \"item_ref\": \"INV-2025-10450\",\n        \"item_type\": \"deposit\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Installment 1 of 10\",\n        \"item_ref\": \"INV-2025-10451\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 30000\n        }\n      },\n      {\n        \"item_name\": \"Platform transaction fee\",\n        \"item_ref\": \"INV-2025-10452\",\n        \"item_type\": \"platform_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      },\n      {\n        \"item_name\": \"Agent commission\",\n        \"item_ref\": \"INV-2025-10453\",\n        \"item_type\": \"commission\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 80000\n        },\n        \"payment_reference\": \"BLV-805-DEPOSIT-INS1\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        },\n        \"payment_reference\": \"PLATFORM-FEE-AUG\",\n        \"purpose_of_transaction\": \"BILL_PAYMENTS\",\n        \"recipient_id\": \"654321\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        },\n        \"payment_reference\": \"AGENT-COMM-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"789012\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Single property with deposit, installment and platform fees
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.redpincompany.com/v1/customers/customer_123/sessions")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1002-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-20-002\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 87500\n    },\n    \"due_date\": \"2025-08-20\",\n    \"items\": [\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Initial deposit\",\n        \"item_ref\": \"INV-2025-10450\",\n        \"item_type\": \"deposit\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Installment 1 of 10\",\n        \"item_ref\": \"INV-2025-10451\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 30000\n        }\n      },\n      {\n        \"item_name\": \"Platform transaction fee\",\n        \"item_ref\": \"INV-2025-10452\",\n        \"item_type\": \"platform_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      },\n      {\n        \"item_name\": \"Agent commission\",\n        \"item_ref\": \"INV-2025-10453\",\n        \"item_type\": \"commission\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 80000\n        },\n        \"payment_reference\": \"BLV-805-DEPOSIT-INS1\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        },\n        \"payment_reference\": \"PLATFORM-FEE-AUG\",\n        \"purpose_of_transaction\": \"BILL_PAYMENTS\",\n        \"recipient_id\": \"654321\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        },\n        \"payment_reference\": \"AGENT-COMM-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"789012\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}")
  .asString();
```

```php Single property with deposit, installment and platform fees
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.redpincompany.com/v1/customers/customer_123/sessions', [
  'body' => '{
  "body": {
    "client_customer_ref": "CUST-1002-TXN",
    "client_reference_id": "PAY-2025-08-20-002",
    "amount": {
      "currency": "AED",
      "value": 87500
    },
    "due_date": "2025-08-20",
    "items": [
      {
        "item_name": "Boulevard Residences - Unit 805 - Initial deposit",
        "item_ref": "INV-2025-10450",
        "item_type": "deposit",
        "amount": {
          "currency": "AED",
          "value": 50000
        }
      },
      {
        "item_name": "Boulevard Residences - Unit 805 - Installment 1 of 10",
        "item_ref": "INV-2025-10451",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 30000
        }
      },
      {
        "item_name": "Platform transaction fee",
        "item_ref": "INV-2025-10452",
        "item_type": "platform_fee",
        "amount": {
          "currency": "AED",
          "value": 5000
        }
      },
      {
        "item_name": "Agent commission",
        "item_ref": "INV-2025-10453",
        "item_type": "commission",
        "amount": {
          "currency": "AED",
          "value": 2500
        }
      }
    ],
    "recipient_details": [
      {
        "amount": {
          "currency": "AED",
          "value": 80000
        },
        "payment_reference": "BLV-805-DEPOSIT-INS1",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "123456"
      },
      {
        "amount": {
          "currency": "AED",
          "value": 5000
        },
        "payment_reference": "PLATFORM-FEE-AUG",
        "purpose_of_transaction": "BILL_PAYMENTS",
        "recipient_id": "654321"
      },
      {
        "amount": {
          "currency": "AED",
          "value": 2500
        },
        "payment_reference": "AGENT-COMM-AUG",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "789012"
      }
    ],
    "allowed_origins": [
      "https://app.example.com"
    ]
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Single property with deposit, installment and platform fees
using RestSharp;

var client = new RestClient("https://api.redpincompany.com/v1/customers/customer_123/sessions");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1002-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-20-002\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 87500\n    },\n    \"due_date\": \"2025-08-20\",\n    \"items\": [\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Initial deposit\",\n        \"item_ref\": \"INV-2025-10450\",\n        \"item_type\": \"deposit\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 50000\n        }\n      },\n      {\n        \"item_name\": \"Boulevard Residences - Unit 805 - Installment 1 of 10\",\n        \"item_ref\": \"INV-2025-10451\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 30000\n        }\n      },\n      {\n        \"item_name\": \"Platform transaction fee\",\n        \"item_ref\": \"INV-2025-10452\",\n        \"item_type\": \"platform_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      },\n      {\n        \"item_name\": \"Agent commission\",\n        \"item_ref\": \"INV-2025-10453\",\n        \"item_type\": \"commission\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 80000\n        },\n        \"payment_reference\": \"BLV-805-DEPOSIT-INS1\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"123456\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        },\n        \"payment_reference\": \"PLATFORM-FEE-AUG\",\n        \"purpose_of_transaction\": \"BILL_PAYMENTS\",\n        \"recipient_id\": \"654321\"\n      },\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 2500\n        },\n        \"payment_reference\": \"AGENT-COMM-AUG\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"789012\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Single property with deposit, installment and platform fees
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["body": [
    "client_customer_ref": "CUST-1002-TXN",
    "client_reference_id": "PAY-2025-08-20-002",
    "amount": [
      "currency": "AED",
      "value": 87500
    ],
    "due_date": "2025-08-20",
    "items": [
      [
        "item_name": "Boulevard Residences - Unit 805 - Initial deposit",
        "item_ref": "INV-2025-10450",
        "item_type": "deposit",
        "amount": [
          "currency": "AED",
          "value": 50000
        ]
      ],
      [
        "item_name": "Boulevard Residences - Unit 805 - Installment 1 of 10",
        "item_ref": "INV-2025-10451",
        "item_type": "installment",
        "amount": [
          "currency": "AED",
          "value": 30000
        ]
      ],
      [
        "item_name": "Platform transaction fee",
        "item_ref": "INV-2025-10452",
        "item_type": "platform_fee",
        "amount": [
          "currency": "AED",
          "value": 5000
        ]
      ],
      [
        "item_name": "Agent commission",
        "item_ref": "INV-2025-10453",
        "item_type": "commission",
        "amount": [
          "currency": "AED",
          "value": 2500
        ]
      ]
    ],
    "recipient_details": [
      [
        "amount": [
          "currency": "AED",
          "value": 80000
        ],
        "payment_reference": "BLV-805-DEPOSIT-INS1",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "123456"
      ],
      [
        "amount": [
          "currency": "AED",
          "value": 5000
        ],
        "payment_reference": "PLATFORM-FEE-AUG",
        "purpose_of_transaction": "BILL_PAYMENTS",
        "recipient_id": "654321"
      ],
      [
        "amount": [
          "currency": "AED",
          "value": 2500
        ],
        "payment_reference": "AGENT-COMM-AUG",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "789012"
      ]
    ],
    "allowed_origins": ["https://app.example.com"]
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.redpincompany.com/v1/customers/customer_123/sessions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Multiple properties from same developer with various charges

**Request**

```json
{
  "body": {
    "client_customer_ref": "CUST-1003-TXN",
    "client_reference_id": "PAY-2025-08-25-003",
    "amount": {
      "currency": "AED",
      "value": 215000
    },
    "due_date": "2025-08-25",
    "items": [
      {
        "item_name": "Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8",
        "item_ref": "INV-2025-11001",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 75000
        }
      },
      {
        "item_name": "Beachfront Residences Tower A - Unit 2301 - Annual service charge",
        "item_ref": "INV-2025-11002",
        "item_type": "service_charge",
        "amount": {
          "currency": "AED",
          "value": 8000
        }
      },
      {
        "item_name": "Skyline Business Center - Office 1502 - Installment 2 of 5",
        "item_ref": "INV-2025-11003",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 90000
        }
      },
      {
        "item_name": "Skyline Business Center - Office 1502 - Maintenance reserve",
        "item_ref": "INV-2025-11004",
        "item_type": "maintenance_fee",
        "amount": {
          "currency": "AED",
          "value": 12000
        }
      },
      {
        "item_name": "Green Valley Villas - Villa 88 - Final installment",
        "item_ref": "INV-2025-11005",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 25000
        }
      },
      {
        "item_name": "Green Valley Villas - Villa 88 - Handover charges",
        "item_ref": "INV-2025-11006",
        "item_type": "handover_fee",
        "amount": {
          "currency": "AED",
          "value": 5000
        }
      }
    ],
    "recipient_details": [
      {
        "amount": {
          "currency": "AED",
          "value": 215000
        },
        "payment_reference": "MULTI-PROP-AUG-2025",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "345678"
      }
    ],
    "allowed_origins": [
      "https://app.example.com"
    ]
  }
}
```

**Response**

```json
{
  "session_id": "a7b8c9d0-e1f2-4g3h-i5j6-7k8l9m0n1o2p",
  "client_reference_id": "PAY-2025-08-25-003",
  "expires_at": "2025-08-26T08:18:53.631073Z",
  "session_url": "https://app.redpin.com/session/a7b8c9d0-e1f2-4g3h-i5j6-7k8l9m0n1o2p"
}
```

**SDK Code**

```python Multiple properties from same developer with various charges
import requests

url = "https://api.redpincompany.com/v1/customers/customer_123/sessions"

payload = { "body": {
        "client_customer_ref": "CUST-1003-TXN",
        "client_reference_id": "PAY-2025-08-25-003",
        "amount": {
            "currency": "AED",
            "value": 215000
        },
        "due_date": "2025-08-25",
        "items": [
            {
                "item_name": "Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8",
                "item_ref": "INV-2025-11001",
                "item_type": "installment",
                "amount": {
                    "currency": "AED",
                    "value": 75000
                }
            },
            {
                "item_name": "Beachfront Residences Tower A - Unit 2301 - Annual service charge",
                "item_ref": "INV-2025-11002",
                "item_type": "service_charge",
                "amount": {
                    "currency": "AED",
                    "value": 8000
                }
            },
            {
                "item_name": "Skyline Business Center - Office 1502 - Installment 2 of 5",
                "item_ref": "INV-2025-11003",
                "item_type": "installment",
                "amount": {
                    "currency": "AED",
                    "value": 90000
                }
            },
            {
                "item_name": "Skyline Business Center - Office 1502 - Maintenance reserve",
                "item_ref": "INV-2025-11004",
                "item_type": "maintenance_fee",
                "amount": {
                    "currency": "AED",
                    "value": 12000
                }
            },
            {
                "item_name": "Green Valley Villas - Villa 88 - Final installment",
                "item_ref": "INV-2025-11005",
                "item_type": "installment",
                "amount": {
                    "currency": "AED",
                    "value": 25000
                }
            },
            {
                "item_name": "Green Valley Villas - Villa 88 - Handover charges",
                "item_ref": "INV-2025-11006",
                "item_type": "handover_fee",
                "amount": {
                    "currency": "AED",
                    "value": 5000
                }
            }
        ],
        "recipient_details": [
            {
                "amount": {
                    "currency": "AED",
                    "value": 215000
                },
                "payment_reference": "MULTI-PROP-AUG-2025",
                "purpose_of_transaction": "PROPERTY_PURCHASE",
                "recipient_id": "345678"
            }
        ],
        "allowed_origins": ["https://app.example.com"]
    } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Multiple properties from same developer with various charges
const url = 'https://api.redpincompany.com/v1/customers/customer_123/sessions';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"body":{"client_customer_ref":"CUST-1003-TXN","client_reference_id":"PAY-2025-08-25-003","amount":{"currency":"AED","value":215000},"due_date":"2025-08-25","items":[{"item_name":"Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8","item_ref":"INV-2025-11001","item_type":"installment","amount":{"currency":"AED","value":75000}},{"item_name":"Beachfront Residences Tower A - Unit 2301 - Annual service charge","item_ref":"INV-2025-11002","item_type":"service_charge","amount":{"currency":"AED","value":8000}},{"item_name":"Skyline Business Center - Office 1502 - Installment 2 of 5","item_ref":"INV-2025-11003","item_type":"installment","amount":{"currency":"AED","value":90000}},{"item_name":"Skyline Business Center - Office 1502 - Maintenance reserve","item_ref":"INV-2025-11004","item_type":"maintenance_fee","amount":{"currency":"AED","value":12000}},{"item_name":"Green Valley Villas - Villa 88 - Final installment","item_ref":"INV-2025-11005","item_type":"installment","amount":{"currency":"AED","value":25000}},{"item_name":"Green Valley Villas - Villa 88 - Handover charges","item_ref":"INV-2025-11006","item_type":"handover_fee","amount":{"currency":"AED","value":5000}}],"recipient_details":[{"amount":{"currency":"AED","value":215000},"payment_reference":"MULTI-PROP-AUG-2025","purpose_of_transaction":"PROPERTY_PURCHASE","recipient_id":"345678"}],"allowed_origins":["https://app.example.com"]}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Multiple properties from same developer with various charges
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.redpincompany.com/v1/customers/customer_123/sessions"

	payload := strings.NewReader("{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1003-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-25-003\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 215000\n    },\n    \"due_date\": \"2025-08-25\",\n    \"items\": [\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8\",\n        \"item_ref\": \"INV-2025-11001\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 75000\n        }\n      },\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Annual service charge\",\n        \"item_ref\": \"INV-2025-11002\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 8000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Installment 2 of 5\",\n        \"item_ref\": \"INV-2025-11003\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 90000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Maintenance reserve\",\n        \"item_ref\": \"INV-2025-11004\",\n        \"item_type\": \"maintenance_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 12000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Final installment\",\n        \"item_ref\": \"INV-2025-11005\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 25000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Handover charges\",\n        \"item_ref\": \"INV-2025-11006\",\n        \"item_type\": \"handover_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 215000\n        },\n        \"payment_reference\": \"MULTI-PROP-AUG-2025\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"345678\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Multiple properties from same developer with various charges
require 'uri'
require 'net/http'

url = URI("https://api.redpincompany.com/v1/customers/customer_123/sessions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1003-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-25-003\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 215000\n    },\n    \"due_date\": \"2025-08-25\",\n    \"items\": [\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8\",\n        \"item_ref\": \"INV-2025-11001\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 75000\n        }\n      },\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Annual service charge\",\n        \"item_ref\": \"INV-2025-11002\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 8000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Installment 2 of 5\",\n        \"item_ref\": \"INV-2025-11003\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 90000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Maintenance reserve\",\n        \"item_ref\": \"INV-2025-11004\",\n        \"item_type\": \"maintenance_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 12000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Final installment\",\n        \"item_ref\": \"INV-2025-11005\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 25000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Handover charges\",\n        \"item_ref\": \"INV-2025-11006\",\n        \"item_type\": \"handover_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 215000\n        },\n        \"payment_reference\": \"MULTI-PROP-AUG-2025\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"345678\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Multiple properties from same developer with various charges
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.redpincompany.com/v1/customers/customer_123/sessions")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1003-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-25-003\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 215000\n    },\n    \"due_date\": \"2025-08-25\",\n    \"items\": [\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8\",\n        \"item_ref\": \"INV-2025-11001\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 75000\n        }\n      },\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Annual service charge\",\n        \"item_ref\": \"INV-2025-11002\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 8000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Installment 2 of 5\",\n        \"item_ref\": \"INV-2025-11003\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 90000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Maintenance reserve\",\n        \"item_ref\": \"INV-2025-11004\",\n        \"item_type\": \"maintenance_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 12000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Final installment\",\n        \"item_ref\": \"INV-2025-11005\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 25000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Handover charges\",\n        \"item_ref\": \"INV-2025-11006\",\n        \"item_type\": \"handover_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 215000\n        },\n        \"payment_reference\": \"MULTI-PROP-AUG-2025\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"345678\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}")
  .asString();
```

```php Multiple properties from same developer with various charges
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.redpincompany.com/v1/customers/customer_123/sessions', [
  'body' => '{
  "body": {
    "client_customer_ref": "CUST-1003-TXN",
    "client_reference_id": "PAY-2025-08-25-003",
    "amount": {
      "currency": "AED",
      "value": 215000
    },
    "due_date": "2025-08-25",
    "items": [
      {
        "item_name": "Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8",
        "item_ref": "INV-2025-11001",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 75000
        }
      },
      {
        "item_name": "Beachfront Residences Tower A - Unit 2301 - Annual service charge",
        "item_ref": "INV-2025-11002",
        "item_type": "service_charge",
        "amount": {
          "currency": "AED",
          "value": 8000
        }
      },
      {
        "item_name": "Skyline Business Center - Office 1502 - Installment 2 of 5",
        "item_ref": "INV-2025-11003",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 90000
        }
      },
      {
        "item_name": "Skyline Business Center - Office 1502 - Maintenance reserve",
        "item_ref": "INV-2025-11004",
        "item_type": "maintenance_fee",
        "amount": {
          "currency": "AED",
          "value": 12000
        }
      },
      {
        "item_name": "Green Valley Villas - Villa 88 - Final installment",
        "item_ref": "INV-2025-11005",
        "item_type": "installment",
        "amount": {
          "currency": "AED",
          "value": 25000
        }
      },
      {
        "item_name": "Green Valley Villas - Villa 88 - Handover charges",
        "item_ref": "INV-2025-11006",
        "item_type": "handover_fee",
        "amount": {
          "currency": "AED",
          "value": 5000
        }
      }
    ],
    "recipient_details": [
      {
        "amount": {
          "currency": "AED",
          "value": 215000
        },
        "payment_reference": "MULTI-PROP-AUG-2025",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "345678"
      }
    ],
    "allowed_origins": [
      "https://app.example.com"
    ]
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Multiple properties from same developer with various charges
using RestSharp;

var client = new RestClient("https://api.redpincompany.com/v1/customers/customer_123/sessions");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"body\": {\n    \"client_customer_ref\": \"CUST-1003-TXN\",\n    \"client_reference_id\": \"PAY-2025-08-25-003\",\n    \"amount\": {\n      \"currency\": \"AED\",\n      \"value\": 215000\n    },\n    \"due_date\": \"2025-08-25\",\n    \"items\": [\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8\",\n        \"item_ref\": \"INV-2025-11001\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 75000\n        }\n      },\n      {\n        \"item_name\": \"Beachfront Residences Tower A - Unit 2301 - Annual service charge\",\n        \"item_ref\": \"INV-2025-11002\",\n        \"item_type\": \"service_charge\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 8000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Installment 2 of 5\",\n        \"item_ref\": \"INV-2025-11003\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 90000\n        }\n      },\n      {\n        \"item_name\": \"Skyline Business Center - Office 1502 - Maintenance reserve\",\n        \"item_ref\": \"INV-2025-11004\",\n        \"item_type\": \"maintenance_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 12000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Final installment\",\n        \"item_ref\": \"INV-2025-11005\",\n        \"item_type\": \"installment\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 25000\n        }\n      },\n      {\n        \"item_name\": \"Green Valley Villas - Villa 88 - Handover charges\",\n        \"item_ref\": \"INV-2025-11006\",\n        \"item_type\": \"handover_fee\",\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 5000\n        }\n      }\n    ],\n    \"recipient_details\": [\n      {\n        \"amount\": {\n          \"currency\": \"AED\",\n          \"value\": 215000\n        },\n        \"payment_reference\": \"MULTI-PROP-AUG-2025\",\n        \"purpose_of_transaction\": \"PROPERTY_PURCHASE\",\n        \"recipient_id\": \"345678\"\n      }\n    ],\n    \"allowed_origins\": [\n      \"https://app.example.com\"\n    ]\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Multiple properties from same developer with various charges
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["body": [
    "client_customer_ref": "CUST-1003-TXN",
    "client_reference_id": "PAY-2025-08-25-003",
    "amount": [
      "currency": "AED",
      "value": 215000
    ],
    "due_date": "2025-08-25",
    "items": [
      [
        "item_name": "Beachfront Residences Tower A - Unit 2301 - Installment 4 of 8",
        "item_ref": "INV-2025-11001",
        "item_type": "installment",
        "amount": [
          "currency": "AED",
          "value": 75000
        ]
      ],
      [
        "item_name": "Beachfront Residences Tower A - Unit 2301 - Annual service charge",
        "item_ref": "INV-2025-11002",
        "item_type": "service_charge",
        "amount": [
          "currency": "AED",
          "value": 8000
        ]
      ],
      [
        "item_name": "Skyline Business Center - Office 1502 - Installment 2 of 5",
        "item_ref": "INV-2025-11003",
        "item_type": "installment",
        "amount": [
          "currency": "AED",
          "value": 90000
        ]
      ],
      [
        "item_name": "Skyline Business Center - Office 1502 - Maintenance reserve",
        "item_ref": "INV-2025-11004",
        "item_type": "maintenance_fee",
        "amount": [
          "currency": "AED",
          "value": 12000
        ]
      ],
      [
        "item_name": "Green Valley Villas - Villa 88 - Final installment",
        "item_ref": "INV-2025-11005",
        "item_type": "installment",
        "amount": [
          "currency": "AED",
          "value": 25000
        ]
      ],
      [
        "item_name": "Green Valley Villas - Villa 88 - Handover charges",
        "item_ref": "INV-2025-11006",
        "item_type": "handover_fee",
        "amount": [
          "currency": "AED",
          "value": 5000
        ]
      ]
    ],
    "recipient_details": [
      [
        "amount": [
          "currency": "AED",
          "value": 215000
        ],
        "payment_reference": "MULTI-PROP-AUG-2025",
        "purpose_of_transaction": "PROPERTY_PURCHASE",
        "recipient_id": "345678"
      ]
    ],
    "allowed_origins": ["https://app.example.com"]
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.redpincompany.com/v1/customers/customer_123/sessions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```