Shared Quota

API endpoints pertaining to the shared-quota.

Demo code can be found at Github

Shared Quota

Multiple Shared Quota Cards can be issued under a single Budget Quota, allowing all cards to share the same budget balance.

Shared Quota Cards only define individual spending limits for each card; they do not carry actual funds themselves. All fees, transactions, and refunds are directly settled against the Budget Quota balance.

Funds transfer into or out from the Budget Quota are directly linked to the Main Account balance.

Note: If the total spending limits assigned to all Shared Quota Cards exceed the available Budget Quota balance, an over-limit fee may apply based on the excess amount.

Over-limit Fee Explanation

Each Budget Quota represents the actual funds deposited by the merchant. However, you may assign card limits exceeding the total Budget Quota.

If the total card limits exceed the actual Budget Quota balance, the excess amount will be considered as an over-limit allocation and will incur a management fee on the exceeding portion.

Fee Calculation Example:

Example 1:

Merchant funds 50,000 USDT into the Budget Quota and there are 10 cards under this budget quota.

They assign limits of 10,000 USDT to each of 10 cards (total assigned limits = 100,000 USDT).

Over-limit amount = 100,000 USDT - 50,000 USDT = 50,000 USDT.

Management fee will apply to the 50,000 USDT over-limit amount and will be charged in daily basis.

Example 2:

Merchant funds 30,000 USDT into the Budget Quota.

Limits assigned to 5 cards:

  • Card 1: 10,000 USDT

  • Card 2: 10,000 USDT

  • Card 3: 10,000 USDT

  • Card 4 & Card 5: 0 USDT

    Total assigned limits = 30,000 USDT → No over-limit fee (limits match the budget).

Integration Flow

Create Budget Quota → Fund Budget Quota → Apply for Shared Quota Cards

Step 1: Create a Budget Quota

Initiate the creation of a Budget Quota. This serves as the shared fund pool that will be used by all linked Shared Quota Cards.

Step 2: Fund the Budget Quota

Deposit funds into the Budget Quota. The deposited amount will become the available balance for all associated Shared Quota Cards.

Step 3: Apply for Shared Quota Cards

Once the Budget Quota is funded, you can issue Shared Quota Cards under this quota.

Each card’s spending limit can be adjusted through the Top-up API. This top-up action does not deduct from the Budget Quota balance; it only defines the card’s spending limit.

Create a budget quota

POST https://api.musepay.io/v1/card/share-quota/quota/create

Request Body

Name
Type
Description

request_id*

String

External identifier for the create request.

card_product_id*

String

Product ID of the card to be related

card_level*

String

the card level of the card product

share_quota_name*

String

the name of the budget quota

remark

String

remark

{
    // Response
   "code":200,
   "message":"success",
   "data": {
        "share_quota_id": "2469990273197955",
        "share_quota_status": "NORMAL"
    }
}

Fund the Budget Quota

POST https://api.musepay.io/v1/card/share-quota/quota/tx/adjustment

Request Body

Name
Type
Description

share_quota_id*

String

the budget quota id

request_id*

String

External identifier for the request.

amount*

Integer

the amount to set

remark

String

remark

{
    // Response
   "code":200,
   "message":"success",
   "data": {
        "status": "APPLYING",
        "order_no": "2469990273197955",
        "amount": "120",
        "request_id": "afdsfasf234324"
    }
}

Apply for Shared Quota Cards

POST https://api.musepay.io/v1/card/share-quota/apply

Request Body

Name
Type
Description

user_id*

String

The user id is an account that holds the funds, balances, and transactions that are used to make purchases with the card.

request_id*

String

External identifier for the issuing request.

card_product_id*

String

Product ID of the card to be issued

card_level*

String

the card level of the card product to apply

phone_number*

String

Mobile phone number of card holder. This phone number should be pre-verified by the partner.

phone_area_code*

String

Country calling codes

embossed_name

String

the embossed name in card face

share_quota_id*

String

the budget quota id

{
    // Response
   "code":200,
   "message":"success",
   "data": {
        "apply_status": "APPLYING",
        "apply_id": "2469990273197955",
        "request_id": "afdsfasf234324"
    }
}

Query budget quota records

POST https://api.musepay.io/v1/card/share-quota/quota/list

Request Body

Name
Type
Description

share_quota_id

String

the budget quota id (optional)

limit

String

page size, default 10, between 1 and 1000

page

int

page number, default 1

{
  "code": "200",
  "data": {
    "total": 100,
    "data": [
      {
        "share_quota_id": "TD13614342296065",
        "share_quota_name": "aaaaa",
        "card_product_id": "2daca29b5ed4e28a92dca87",
        "card_level": 1,
        "share_quota_status": "xx",
        "share_quota_currency": "USDT",
        "available_quota_balance":12321,
        "outgoing_quota_balance": 1696861482753,
        "total_usage_quota_balance": 1696861482753,
        "available_card_tx_quota": 1696861482753,
        "total_card_tx_quota": 1696861482753,
        "total_issue_card_count": 10
      },
    ]
  },
  "message": "success"
}

Query Budget Quota Adjustment History

POST https://api.musepay.io/v1/card/share-quota/quota/tx/list

Request Body

Name
Type
Description

share_quota_id

String

the budget quota id (optional)

request_id

String

External identifier for the adjust request.

start_time

Long

Start time in milliseconds (Unix timestamp), e.g., 1748188799000L

end_time

Long

End time in milliseconds (Unix timestamp), e.g., 1748188799000L

limit

String

page size, default 10, between 1 and 1000

page

int

page number, default 1

{
  "code": "200",
  "data": {
    "total": 100,
    "data": [
      {
        "share_quota_id": "TD13614342296065",
        "order_no": "aaaaa",
        "status": "dsf",
        "request_id": "2daca29b5ed4e28a92dca87",
        "amount":12321,
        "transaction_time": 1748188799000
      },
    ]
  },
  "message": "success"
}

Last updated