---
title: "Generate test payment requests and transactions for a specific merchant"
method: POST
path: "/api/v1/seeds/merchant/{merchantId}/test-data"
tags: ["Seeds"]
---

# Generate test payment requests and transactions for a specific merchant

`POST /api/v1/seeds/merchant/{merchantId}/test-data`

## Request

- Base URL: `https://core.quidkey.com`
- URL: `https://core.quidkey.com/api/v1/seeds/merchant/{merchantId}/test-data`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/banqzinc/apis/quidkey-api/docs/api/v1/seeds/merchant/:merchantId/test-data/post.ts> (a function with typed inputs; its response is checked against the schema)

Generate test payment requests and transactions for a specific merchant

## Path parameters

- `merchantId` string, uuid, required: The merchant ID to generate test data for

## Request body

- MerchantTestDataRequest: Request body for generating test data for a merchant
  - `options` object: Options for test data generation
    - `paymentRequestCount` integer: Number of payment requests to generate
    - `customerCount` integer: Number of unique customers to create/use
    - `dateRangeInDays` integer: Spread transactions over this many days (up to 2 years)
    - `includeRefunds` boolean: Whether to include refund transactions
    - `includeFailures` boolean: Whether to include failed and cancelled transactions
    - `scenarioProfile` union: Predefined scenario profile
      - 'standard'
      - 'high-volume'
      - 'cross-border'
      - 'failure-testing'
    - `includePayouts` boolean: Whether to generate payout batches from cross-border transactions

## Response `200`

Success

- MerchantTestDataResponse
  - `success` boolean, required: Indicates if the request was successful
  - `data` object, required: Test data generation result
    - `message` string, required: Success message
    - `summary` object, required: Summary of test data generation
      - `merchantId` string, uuid, required: The merchant ID for which test data was generated
      - `paymentRequestsCreated` integer, required: Number of payment requests created
      - `transactionsCreated` integer, required: Number of transactions created
      - `customersCreated` integer, required: Number of customers created
      - `timeElapsed` string, required: Time taken to generate test data
      - `payoutBatchesCreated` integer: Number of payout batches created (only when includePayouts is true)
    - `details` object, required: Detailed breakdown of generated test data
      - `paymentRequestsByStatus` object, required: Breakdown of payment requests by status
        - `completed` integer, required: Number of completed payment requests
        - `pending` integer, required: Number of pending payment requests
        - `failed` integer, required: Number of failed payment requests
        - `cancelled` integer, required: Number of cancelled payment requests
      - `transactionsByType` object, required: Breakdown of transactions by type
        - `payment` integer, required: Number of payment transactions
        - `refund` integer, required: Number of refund transactions
      - `transactionsByStatus` object, required: Breakdown of transactions by status
        - `completed` integer, required: Number of completed transactions
        - `pending` integer, required: Number of pending transactions
        - `failed` integer, required: Number of failed transactions
        - `cancelled` integer, required: Number of cancelled transactions
      - `amountDistribution` object, required: Distribution of transaction amounts
        - `small` integer, required: Number of small amount transactions (10-100)
        - `medium` integer, required: Number of medium amount transactions (100-1000)
        - `large` integer, required: Number of large amount transactions (1000+)
      - `currencyDistribution` object, required: Number of transactions per currency code

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-06-17** `b372e7d5563d`: 1 breaking, 1 warning, 4 info
  - the `error/code` response's property type changed from `string` to no type for status `400`
  - removed the optional property `error/errors` from the response with the `400` status
  - added the new optional request property `options/includePayouts`
  - added the optional property `data/summary/payoutBatchesCreated` to the response with the `200` status
  - …2 more
- **2025-11-05** `6637b341d86d`: 1 info
  - endpoint added
- **2025-11-02** `919eb7a392aa`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/banqzinc/apis/quidkey-api/changes/api/v1/seeds/merchant/:merchantId/test-data/post.md)

---

[API](https://skmtc.dev/banqzinc/apis/quidkey-api.md) - [All operations](https://skmtc.dev/banqzinc/apis/quidkey-api/llms.txt) - [OpenAPI document](https://skmtc.dev/banqzinc/apis/quidkey-api/revisions/f86d2bdbcb08?raw)
