ChangePartnerClientCredit
Complete a freshly quoted Partner-managed ResellersCenter invoice-credit adjustment.
Endpoint: https://sive.host/modules/addons/shapi/sh-api.php
Method: POST using application/x-www-form-urlencoded.
Consequential action: may purchase, delete, replace credentials, or remove data. Access is limited to directly owned records or explicitly assigned Partner-managed client services after both relationships are verified.
Important behavior
- The change is rejected if the client balance has drifted, the reference was already used, or the Partner/client relationship no longer qualifies.
- The final client balance is verified; the Partner Sive.Host credit balance is never changed.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | Exact SHAPI action name shown in this article. |
api_key | string | Yes | Client API key generated in the Sive.Host SHAPI page. |
api_secret | string | Yes | Secret paired with the API key. Send it only in the POST body. |
partner_clientid | positive integer | Yes | Active client ID returned by ListPartnerClients. |
operation | assign|remove | Yes | Must match the fresh quote. |
amount | decimal | Yes | Must match the fresh quote. |
reason | string 3-500 characters | Yes | Must match the fresh quote. |
reference | unique string 8-64 characters | Yes | Must match the fresh quote. |
expected_client_balance | decimal | Yes | Client balance_before returned by the fresh quote. |
confirmation | string | Yes | Exact confirmation returned by the fresh quote. |
confirm_change | boolean | Yes | Must be true immediately after explicit confirmation. |
Example request
Set the four environment variables from the authenticated SHAPI page. Do not put credentials in source control or URLs.
curl --request POST 'https://sive.host/modules/addons/shapi/sh-api.php' \
--user "${SHAPI_HTTP_USER}:${SHAPI_HTTP_PASSWORD}" \
--header 'Accept: application/json' \
--data-urlencode "action=ChangePartnerClientCredit" \
--data-urlencode "api_key=${SHAPI_API_KEY}" \
--data-urlencode "api_secret=${SHAPI_API_SECRET}" \
--data-urlencode "partner_clientid=1606" \
--data-urlencode "operation=assign" \
--data-urlencode "amount=100.00" \
--data-urlencode "reason=Customer service goodwill credit" \
--data-urlencode "reference=partner-credit-20260817-001" \
--data-urlencode "expected_client_balance=0.00" \
--data-urlencode "confirmation=CONFIRM PARTNER CLIENT CREDIT ASSIGN REFERENCE partner-credit-20260817-001 CLIENT 1606 AMOUNT 100.00 ZAR" \
--data-urlencode "confirm_change=true"Response
SHAPI always returns JSON. Check result; panel responses can vary by the server module and DirectAdmin version.
{
"result": "success",
"message": {
"action": "ChangePartnerClientCredit",
"data": "Panel- or action-specific response"
}
}Common errors
Unauthorized access!: source IP or HTTP Basic authentication failed.Invalid API Key or secret.: the customer key is wrong, disabled, or deleted.Unable to retrieve an active service owned by this client.: the service is inactive or belongs to another client.Missing required parameters.: one or more required fields were omitted.
SHAPI documentation version 2.0 — generated from the current endpoint contract.