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

# Create Checkout Wallet

> This endpoint generates a new checkout wallet for an organization. Organization must be active and have configured primary and secondary prefixes.

<Info>
  When a checkout wallet is generated without an 'expiryDurationMinutes', the
  system default of 30 minutes is applied to that wallet.
</Info>

<ParamField body="organizationId" type="string" required>
  **Example:** `02600494-1a3c-11f0-a818-6045bd97b81d`
</ParamField>

<ParamField body="expectedAmount" type="number" required>
  **Example:** `20000`
</ParamField>

<ParamField body="organizationPrefixMappingId" type="string" required>
  **Example:** `8b4432bc-f3c7-4055-b5e5-e232707e79af`. You can get this Id using
  the 'Get Organization Prefix Mapping Endpoint'
</ParamField>

<ParamField body="expiryDurationMinutes" type="number">
  This is the duration in minutes for which the wallet is to be active
  **Example:** `30`.
</ParamField>

<ParamField body="invoiceReference" type="string">
  **Example:** `CHK202507241358013544205`.
</ParamField>

<ParamField body="description" type="string">
  **Example:** `This is a checkout wallet`.
</ParamField>

<ParamField body="currencyCode" type="string">
  **Example:** `NGN`.
</ParamField>

<ParamField body="customerEmail" type="string">
  **Example:** `john_doe@gmail.com`.
</ParamField>

<ParamField body="customerName" type="string">
  This is the customer name. **Example:** `John Doe`.
</ParamField>

<ParamField body="metadata" type="string" />

<ParamField body="splitType" type="string">
  This can either be Fixed or Percentage. This property is required when it is a
  split payment. **Example:** `Fixed`.
</ParamField>

<ParamField body="incomeSplitConfig" type="object[]">
  Required for split payments. Defines the distribution of funds among multiple beneficiaries.

  <Expandable title="Properties">
    * **beneficiaryId** (string): The unique UUID of the recipient.
    * **splitValue** (number): The amount or percentage to be allocated.
    * **feeValue** (number): The specific fee amount to be deducted.
    * **feeBearer** (boolean): Set to `true` if this beneficiary covers the transaction fees.
  </Expandable>

  **Example:** `[{ "beneficiaryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "splitValue": 100, "feeValue": 5, "feeBearer": true }]`
</ParamField>

<ParamField body="accountInquiryResponseName" type="string" optional>
  Pass this to determine the name that should show when you validate the account
  number on banking applications. **Example:** `John Doe`.
</ParamField>

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "statusCode": 200,
    "message": "Checkout wallet reactivated successfully",
    "data": {
        "id": "bfce68af-4b43-4827-abb8-985a2d3b8a79",
        "walletNumber": "2225657965",
        "organizationId": "02600494-1a3c-11f0-a818-6045bd97b81d",
        "walletName": "Embedly Check Demo",
        "status": "Reactivated",
        "createdAt": "2025-07-14T16:47:32.297357Z",
        "expiresAt": "2025-07-24T14:28:01.1254478Z",
        "reactivatedAt": "2025-07-24T13:58:01.1254127Z",
        "expectedAmount": 20000,
        "checkoutRef": "CHK202507241358013544205"
    }
  }
  ```

  ```json 400 Bad Request theme={null}
  {
    "statusCode": 400,
    "message": "Specified organization prefix mapping not found",
    "data": null
  }
  ```

  ```json 401 Unauthorized theme={null}
  {
    "code": "401",
    "success": false,
    "message": "x-api-key is missing in the header",
    "data": null
  }
  ```

  ```json 403 Forbidden theme={null}
  {
    "statusCode": 403,
    "message": "Access denied. The API key provided is for another organization. You can only access your organization's wallets.",
    "data": null
  }
  ```

  ```json 500 Internal Server Error theme={null}
  {
    "code": "500",
    "success": false,
    "message": "An unexpected error occurred",
    "data": null
  }
  ```
</ResponseExample>
