> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fincode.technology/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Transaction (Direct)

> Initiate a new remittance transaction using pre-registered sender and recipient customer codes.

Initiates a new transaction. Both the sender and recipient must already be registered on the platform — pass their customer codes in `preExistingSenderCustomerCode` and `preExistingRecipientCustomerCode`.

For the full field reference, see [Create Transaction](/api/transactions/create-transaction).

## Quick Reference

| Field | Required | Notes |
| - | - | - |
| `X-Idempotency-Key` | Header — required | Prevents duplicate transactions on retry |
| `ipAddress` | Header — required | Device IP of the person initiating the transaction |
| `preExistingSenderCustomerCode` | Body — required | Sender's customer code |
| `preExistingRecipientCustomerCode` | Body — required | Recipient's customer code |
| `type` | Body — required | Delivery method: `ACCOUNTPAYMENT`, `MOBILE_MONEY`, `CASH_PICKUP`, `WALLET` |
| `creditParty` | Body — required | Recipient account details as lowercase key-value pairs |
| `internationalTransferInformation` | Body — required | `originCountry`, `receivingCountry`, `remittancePurpose`, `sourceOfFunds` |

## Code Example

```bash cURL theme={null}
curl -X POST 'https://{your-domain}.fincode.software/api/v6/services/transactionmanagement/create-transaction' \
--header 'X-Auth-Token: YOUR_TOKEN' \
--header 'X-Idempotency-Key: a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
--header 'ipAddress: 192.168.1.100' \
--header 'Content-Type: application/json' \
--header 'platform: fincode' \
--header 'uuid: 200' \
--data '{
  "amount": 150000,
  "sendAmount": 100,
  "inclussive": false,
  "sendCurrency": "GBP",
  "receivingCurrency": "NGN",
  "type": "ACCOUNTPAYMENT",
  "transactionProcessingMode": "REAL_TIME",
  "preExistingSenderCustomerCode": "VJJGVE",
  "preExistingRecipientCustomerCode": "BNADKO",
  "creditParty": [
    {"key": "bankname",          "value": "GTBank"},
    {"key": "bankaccountno",     "value": "0123456789"},
    {"key": "accountholdername", "value": "Ada Okonkwo"},
    {"key": "bankcode",          "value": "058"},
    {"key": "swiftbic",          "value": "GTBINGLA"}
  ],
  "internationalTransferInformation": {
    "originCountry": "GBR",
    "receivingCountry": "NGA",
    "remittancePurpose": "FAMILY_SUPPORT",
    "sourceOfFunds": "SALARY"
  },
  "dynamicFields": {},
  "eligibleDocumentList": []
}'
```


## OpenAPI

````yaml POST /transactionmanagement/create-transaction
openapi: 3.0.0
info:
  title: FinCode API
  version: v6
servers:
  - url: https://{your-domain}.fincode.software/api/v6/services
    description: API v6
    variables:
      your-domain:
        default: remitjunction
        description: Enter your subdomain
  - url: https://{your-domain}.fincode.software/api/v1/services
    description: API v1
    variables:
      your-domain:
        default: finlend
        description: Enter your subdomain
  - url: https://api.stag.songhaiexchange.io
    description: Songhai Exchange API
security: []
paths:
  /transactionmanagement/create-transaction:
    post:
      summary: Create Transaction
      description: Initiate a new transaction
      operationId: createTransaction
      parameters:
        - $ref: '#/components/parameters/platformHeader'
        - $ref: '#/components/parameters/uuidHeader'
        - in: header
          name: X-Auth-Token
          schema:
            type: string
          required: true
        - in: header
          name: password
          schema:
            type: string
          required: true
        - in: header
          name: ipAddress
          schema:
            type: string
          required: true
        - in: header
          name: X-Idempotency-Key
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: string
                sendAmount:
                  type: string
                inclussive:
                  type: boolean
                receivingCurrency:
                  type: string
                  default: NGN
                sendCurrency:
                  type: string
                  default: GBP
                type:
                  type: string
                  default: ACCOUNTPAYMENT
                transactionProcessingMode:
                  type: string
                  default: NONE_AGGREGATION
                descriptionText:
                  type: string
                preExistingSenderCustomerCode:
                  type: string
                preExistingRecipientCustomerCode:
                  type: string
                transactionModule:
                  type: string
                  default: REMITTANCE
                creditParty:
                  type: array
                  items:
                    type: object
                internationalTransferInformation:
                  type: object
              required:
                - amount
                - sendAmount
                - inclussive
                - receivingCurrency
                - sendCurrency
                - type
                - preExistingSenderCustomerCode
                - preExistingRecipientCustomerCode
                - creditParty
                - internationalTransferInformation
      responses:
        '200':
          description: Transaction created
components:
  parameters:
    platformHeader:
      in: header
      name: platform
      schema:
        type: string
        default: fincode
      required: true
    uuidHeader:
      in: header
      name: uuid
      schema:
        type: string
        default: '200'
      required: true

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.