List Sub Merchants

Retrieve a paginated list of registered sub-merchants under your enterprise account.

Endpoint
GET https://id-service.open.money/v1/connected_banking/sub_merchant/list

Request

Headers

Authorization: Bearer <access_key:secret_key>

Query Parameters

ParameterTypeDefaultDescription
limitInteger10Number of records to return per page
offsetInteger0Offset cursor for pagination

Example Request

curl --location 'https://id-service.open.money/v1/connected_banking/sub_merchant/list?limit=4&offset=0' \
  --header 'Authorization: Bearer <access_key:secret_key>'

Response

Success (200 OK)

{
  "status": "success",
  "data": {
    "sub_merchants": [
      {
        "sub_merchant_id": "019fac44-7af9-7436-94b6-4da8d3cef735",
        "first_name": "Sa***ox",
        "last_name": "NS****fy",
        "email": "sa************[email protected]",
        "username": "91******01"
      },
      {
        "sub_merchant_id": "019fa824-abf7-7bb4-b7d8-8dec350ca6cb",
        "first_name": "No**fy",
        "last_name": "T**t",
        "email": "no***************[email protected]",
        "username": "99******72"
      },
      {
        "sub_merchant_id": "019fa7c3-127c-7dac-a930-f86e3cab46fc",
        "first_name": "Ve**fy",
        "last_name": "T**t",
        "email": "ve*************[email protected]",
        "username": "99******71"
      },
      {
        "sub_merchant_id": "019f8eaf-61b9-735b-9dc3-9c45a8240a7e",
        "first_name": "Sa***ox",
        "last_name": "Me****nt",
        "email": "sa************[email protected]",
        "username": "55******22"
      }
    ],
    "is_sandbox": true
  },
  "error": null,
  "meta": {
    "timestamp": "2026-07-30T07:07:13Z",
    "pagination": {
      "cursor": "eyJpZCI6IjAxOWZhYzRjLWY0MDQtNzQ4Zi1iOTNhLTg2MmRlNmM4OGM1ZSIsImNyZWF0ZWRfYXQiOiIyMDI2LTA3LTI5VDEwOjQ1OjUyLjE4ODU1NCswNTozMCJ9",
      "next_cursor": null,
      "limit": 4,
      "has_more": false
    }
  }
}

Response Fields

FieldTypeDescription
statusStringRequest status: success or failed
data.sub_merchants[]ArrayArray of sub-merchant objects
data.sub_merchants[].sub_merchant_idStringUnique identifier for the sub-merchant
data.sub_merchants[].first_nameStringSub-merchant first name (masked for privacy)
data.sub_merchants[].last_nameStringSub-merchant last name (masked for privacy)
data.sub_merchants[].emailStringSub-merchant email address (masked for privacy)
data.sub_merchants[].usernameStringSub-merchant username (masked for privacy)
data.is_sandboxBooleanIndicates whether results are from sandbox environment
meta.pagination.cursorStringCurrent pagination cursor (base64 encoded)
meta.pagination.next_cursorStringCursor for next page (null if no more pages)
meta.pagination.limitIntegerRecords returned per page
meta.pagination.has_moreBooleanWhether additional records exist
meta.timestampStringISO 8601 timestamp of the request

Authentication

All endpoints require Bearer token authentication. Include your API credentials in the Authorization header:

Authorization: Bearer <access_key:secret_key>

Replace <access_key:secret_key> with your actual API credentials.


Error Handling

Errors are returned with appropriate HTTP status codes and error details in the response body:

  • 400 Bad Request: Invalid request parameters or duplicate user
  • 401 Unauthorized: Missing or invalid authentication credentials
  • 500 Server Error: Internal server error
    All error responses follow this format:
{
  "status": "failed",
  "data": null,
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable error message",
    "details": []
  },
  "meta": {
    "timestamp": "2026-07-30T07:34:41Z"
  }
}

Pagination

The list endpoint supports cursor-based pagination:

  • Use the limit parameter to control the number of records per page (default: 10)
  • Use the offset parameter for offset-based pagination
  • The response includes meta.pagination.has_more to indicate if more records exist
  • The next_cursor field provides the cursor for the next page of results