Delete usage
Overview
Use the deleteSubscriptionUsages method via JSON-RPC APIv6 to delete usage entered for a specific subscription, price options group, and usage interval.
Request Parameters
Parameters | Type | Required/Optional | Description |
---|---|---|---|
merchantCode | String | Required | The system-generated merchant ID. |
sessionID | String | Required | The system-generated code of the session. |
hash | String | Required | The MD5 hmac key for the request. |
SubscriptionReference | String | Required | Unique code that represents a subscription. Example: 83FE4FEF2. |
UsageReference | Number | Optional | The system-generated reference code for the usage of the subscription. |
OptionCode | String | Optional | Unique 2Checkout option code. The pay-per-usage price options group for which the usage is uploaded. Example: metered pricing. |
IntervalStart | Datetime | Optional (mandatory if IntervalEnd is provided) | Deletes all usages where UsageEnd >= IntervalStart. Format "YYYY-MM-DD". The timezone used is the one on the server. |
IntervalEnd | Datetime | Optional (mandatory if IntervalStart is provided) | Deletes all usages where UsageEnd <= IntervalEnd. Format "YYYY-MM-DD". The timezone used is the one on the server. |
Request Sample
<?php $host = 'http://api.sandbox58.avangate.local/rpc/6.0/'; $merchantCode = "666999"; $key = "%y~8|m]T84p[W4+O1]_?"; $string = strlen($merchantCode) . $merchantCode . strlen(gmdate('Y-m-d H:i:s')) . gmdate('Y-m-d H:i:s'); $hash = hash_hmac('md5', $string, $key); $i = 1; // counter for api calls // call login $jsonRpcRequest = new stdClass(); $jsonRpcRequest->jsonrpc = '2.0'; $jsonRpcRequest->method = 'login'; $jsonRpcRequest->params = array($merchantCode, gmdate('Y-m-d H:i:s'), $hash); $jsonRpcRequest->id = $i++; $sessionID = callRPC($jsonRpcRequest, $host); var_dump("session id:" . $sessionID); // call api methods below $SubscriptionReference = 'B7D8E72224'; $UsageReference = 120010776516; $jsonRpcRequest = array('jsonrpc' => '2.0', 'method' => 'deleteSubscriptionUsages', 'params' => array($sessionID, 'SubscriptionReference' => $SubscriptionReference, array("UsageReference" => $UsageReference, "OptionCode" => 'USG_MN', "IntervalStart" => "2018-04-14 13:00:10", "IntervalEnd" => "2020-09-16 13:00:10")), 'id' => $i++); var_dump ("deleteSubscriptionUsages", callRPC((Object)$jsonRpcRequest, $host)); function callRPC($Request, $hostUrl, $Debug = false) { $curl = curl_init($hostUrl); curl_setopt( $curl, CURLOPT_POST, 1); curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt( $curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json')); $RequestString = json_encode($Request); curl_setopt( $curl, CURLOPT_POSTFIELDS, $RequestString); curl_setopt( $curl, CURLOPT_COOKIE, "XDEBUG_SESSION=PHPSTORM"); if (stristr($hostUrl, 'sandboxdev') || stristr($hostUrl, 'git-sb')) { curl_setopt( $curl, CURLOPT_PROXY, 'localhost:3128'); // curl_setopt( $curl, CURLOPT_PROXY, 'proxy.avangate.local:8080'); // curl_setopt( $curl, CURLOPT_PROXYUSERPWD, 'andrei.avramica:pw'); // for authenticated proxies } $ResponseString = curl_exec ($curl); if (!empty($ResponseString)) { $Response = json_decode ($ResponseString,false); if (isset($Response->error) && !is_null($Response->error)) { var_dump($Response->error) ; return null; } return $Response->result; } else { return null; } } exit;
Response
The deleteSubscriptionUsages method via JSON-RPC APIv6 returns NULL when successful.
class stdClass#3 (3) { public $code => int(0) public $message => string(46) "" public $data => NULL }
Error handling
The deleteSubscriptionUsages via JSON-RPC APIv6 returns FALSE if:
Error message code | Error code | Error message description |
---|---|---|
Provided parameters lack the required type or format. |
MALFORMED_PARAMETER | One or more parameters lack the required format: SubscriptionReference must be a string. |
MALFORMED_PARAMETER | One or more parameters lack the required format: UsageReference must be a positive integer higher than or equal to 1. | |
MALFORMED_PARAMETER | One or more parameters lack the required format: Units must be a positive integer higher than or equal to 1. | |
MALFORMED_PARAMETER | One or more parameters lack the required format: IntervalStart must be a string. | |
MALFORMED_PARAMETER | One or more parameters lack the required format: IntervalEnd must be a string. | |
The subscription or usage line are not found. |
NOT_FOUND | Subscription not found. |
NOT_FOUND | Usage line described does not exist. | |
The usage line is already billed. | ALREADY_BILLED | Usage was not deleted as this usage was already billed. |
The renewal process is in progress for this subscription. | RENEWAL_IN_PROGRESS | There is a renewal in progress for the provided usage line. |
An unexpected error happens. | GENERIC | There has been an error deleting the usage line. Please try again later. |