{"id":495,"date":"2020-08-10T18:44:10","date_gmt":"2020-08-10T18:44:10","guid":{"rendered":""},"modified":"2025-07-09T10:29:19","modified_gmt":"2025-07-09T10:29:19","slug":"ccbill-api-charge-by-previous-transaction-id","status":"publish","type":"post","link":"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id","title":{"rendered":"CCBill API: Charge by Previous Transaction\u00a0ID"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"Introduction\">Introduction<\/h2>\n\n\n\n<p>This document is an addendum to the <a href=\"https:\/\/ccbill.com\/doc\/ccbill-api-guide\" target=\"_blank\" rel=\"noreferrer noopener\">CCBill API<\/a> documentation and discusses the Charge by Previous Transaction ID functionality. It provides parameters, descriptions, and examples for developers, technicians, and others with advanced coding skills.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Overview\">Overview<\/h2>\n\n\n\n<p>The Charge by Previous Transaction ID functionality enables merchants to offer consumers new transactions without canceling their original subscription. Because this feature does not require the consumer to re-enter payment information on a CCBill payment form, the client is responsible for hosting the terms of the offer.<\/p>\n\n\n\n<p>Charging by previous transaction ID does not require the offer to be previously set up in CCBill\u2019s system. Offers are created dynamically by passing variables to the <em>subscriptionManagement.cgi<\/em> script, as explained below.<\/p>\n\n\n\n<p>The system supports credit card transactions with and without <a href=\"https:\/\/ccbill.com\/doc\/3ds-faqs\">3DS<\/a> authentication information as well as <a href=\"https:\/\/ccbill.com\/blog\/ach-payment-processing\" target=\"_blank\" rel=\"noreferrer noopener\">ACH transactions<\/a>.<\/p>\n\n\n\n<p>Besides creating new transactions on other subaccounts within the same main account, you can also use the <em>newClientAccnum<\/em>and <em>newClientSubacc<\/em> parameters to create transactions on entirely different merchant accounts and subaccounts.<\/p>\n\n\n\n<p>If you are interested in this feature, please get in touch with <a href=\"mailto:merchantsupport@ccbill.com\" target=\"_blank\" rel=\"noreferrer noopener\">merchantsupport@ccbill.com<\/a> to determine if you are a candidate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"CCBill_Velocity_Controls_Feature\">CCBill Velocity Controls&nbsp;Feature<\/h2>\n\n\n\n<p>CCBill Velocity Controls is an advanced CCBill API feature. It enables you to limit consumer transactions by their number or amount within a specific timeframe.<\/p>\n\n\n\n<p>Rules apply to all payment types, and each customer is assigned a unique ID based on their financial information and security background. By setting up CCBill Velocity Controls, you limit the chances of fraud. On an individual basis, you allow good loyal customers to continue to make purchases beyond the established limits.<\/p>\n\n\n<div class=\"notice-note\">\n<div class=\"notice-text\"><p>Each rule can be set up on a single subaccount or across all subaccounts.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>If you are interested in this advanced feature, please contact <a href=\"mailto:merchantsupport@ccbill.com\" target=\"_blank\" rel=\"noreferrer noopener\">merchantsupport@ccbill.com<\/a> to set up velocity controls according to your business requirements.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Implementation\">Implementation<\/h2>\n\n\n\n<p>To charge consumers with a previous transaction ID, merchants need to use a query string to pass variables to CCBill's systems. Requests that contain required and optional parameters should be sent to the following CGI script:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">https:\/\/bill.ccbill.com\/jpost\/billingApi.cgi<\/code><\/pre>\n\n\n\n<p>The consumer will be charged pending validation from CCBill. Depending on the result of the validation, different results will be returned. Results can be returned in either comma-separated value (CSV) format or XML format.<\/p>\n\n\n\n<p>Merchants can also submit 3DS SCA information using the <strong>chargeByPreviousTransactionId3DS <\/strong>function and associated parameters<strong>. <\/strong>CCBillis going to perform the validation and process the transaction to charge the consumer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Field_Explanations\">Field Explanations (Without 3DS Information)<\/h2>\n\n\n\n<p>To perform a Charge by Previous transaction, pass the following parameters and associated values to CCBill's <em>billingApi<\/em>:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-background\" style=\"background-color:#e7f5fe\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">PARAMETER<\/th><th class=\"has-text-align-center\" data-align=\"center\">DATA TYPE<br>(Max Lenght)<\/th><th class=\"has-text-align-center\" data-align=\"center\">DESCRIPTION<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>action<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\"><\/td><td class=\"has-text-align-center\" data-align=\"center\">Function to be performed within the CCBill API.<br>Value: <strong>chargeByPreviousTransactionId<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>subscriptionId<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(20)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Unique ID of the consumer\u2019s original transaction.<br>Example value: <strong>0108113201000024660<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>clientAccnum<\/strong><br>(required)  <\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(6)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The six-digit CCBill merchant account number.<br>Example value: <strong>900000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>clientSubacc<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The four-digit subaccount number the subscription is related to. You will be authenticated on the specific subaccount if this parameter is provided and not on the main account. The action must pertain to this subaccount; otherwise, it will fail. If you wish to be authenticated on the main account (i.e. your DataLink user was created on the account level) you should omit this parameter.<br>Example value: <strong>0000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>usingSubacc<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The parameter specifies a subaccount on which a requested operation will be performed. Use this parameter if you wish to be authenticated on the main account but not on a specific subaccount.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>username<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(8)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Merchant's <a href=\"https:\/\/ccbill.com\/doc\/data-link-system\" target=\"_blank\" rel=\"noreferrer noopener\">Data Link<\/a> username.<br>Example value: <strong>testuser<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>password<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(8)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Merchant's Data Link password.<br>Example value: <strong>testpass<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>newClientAccnum<\/strong> (required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(6)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The six-digit CCBill client account number for the new charge. It can be the same as clientAccnum.<br>Example value: <strong>900000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>newClientSubacc <\/strong>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The four-digit CCBill client subaccount number for the new charge. It can be the same as clientSubacc.<br>Example value: <strong>0000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>sharedAuthentication <\/strong>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<\/td><td class=\"has-text-align-center\" data-align=\"center\">Indicates whether shared authentication is used; a value of&nbsp;<strong>1<\/strong>&nbsp;signifies that the originating and destination accounts are using the same password file and database. A value of&nbsp;<strong>0<\/strong>&nbsp;means that shared authentication is not used.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>currencyCode<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(3)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Three-digit currency code for the currency<br>used in the transaction. If omitted, the transaction is processed in U.S. dollars (USD) by default.<br>Example value: <strong>840<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>initialPrice<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">float (decimal)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Initial transaction price.<br>Example value: <strong>5.00<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>initialPeriod<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">The length (in days) of the initial billing period.<br>Example value: <strong>30<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>recurringPrice<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">float<br>(decimal)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The amount the consumer will be charged for each recurring bill. For single-billing transactions, set this value equal to <strong>0<\/strong><br>Example value: <strong>29.95<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>recurringPeriod<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">The length of time between rebills. For single-billing transactions, set this value equal to <strong>0<\/strong><br>Example value: <strong>30<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>rebills<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">The total number of times the subscription will rebill. For unlimited rebills, set this value equal to <strong>99<\/strong>. For single-billing transactions, set this value equal to <strong>0<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>lifeTimeSubscription<\/strong> (optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<\/td><td class=\"has-text-align-center\" data-align=\"center\">The presence of this variable with a value of <strong>1<\/strong> indicates that the transaction is a lifetime subscription.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>returnXML<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<br>(Required if XML is enabled).<\/td><td class=\"has-text-align-center\" data-align=\"center\">If this parameter is passed in with the value <strong>1<\/strong>, you will receive the response in XML format; otherwise, the information is returned in CSV (comma-separated values) format.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>overrideAffiliate<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">Override the affiliate (<a href=\"https:\/\/ccbill.com\/doc\/affiliate-system-faqs\" target=\"_blank\" rel=\"noreferrer noopener\">LAS<\/a> only) payment on upgrades. A <strong>0 <\/strong>value tells the system not to credit affiliates. A valid Affiliate ID may be passed to specify the Affiliate that should receive the credit, or the parameter may be absent. A blank parameter or invalid Affiliate ID results in an error message.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>overrideParticipation<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">Used with <a href=\"https:\/\/ccbill.com\/doc\/merchant-connect\" target=\"_blank\" rel=\"noreferrer noopener\">Merchant Connect<\/a> to override the affiliate payment on upgrades. The <strong>0<\/strong> value tells the system not to credit any affiliate. A valid PPID indicates the Affiliate that should receive the credit, or the parameter may be absent. A blank parameter or invalid Affiliate ID results in an error message.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">CVS Version&nbsp;Example<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Request String<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">https:\/\/bill.ccbill.com\/jpost\/billingApi.cgi?clientAccnum=900000&amp;username=testuser&amp;password=testpass&amp;action=chargeByPreviousTransactionId&amp;newClientAccnum=900000&amp;newClientSubacc=0001&amp;sharedAuthentication=1&amp;initialPrice=5.00&amp;initialPeriod=30&amp;recurringPrice=29.95&amp;recurringPeriod=30&amp;rebills=99&amp;subscriptionId=0108113201000024660&amp;currencyCode=840<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for approved transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">Fields: &quot;approved&quot;, &quot;subscriptionId&quot; \nValues: &quot;1&quot;, &quot;100000000000000000&quot;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for denied transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">Fields: &quot;approved&quot;, &quot;denialId&quot;, &quot;declineCode&quot;, &quot;declineText&quot; \nValues: &quot;0&quot;, &quot;100000000000000000&quot;, &quot;15&quot;, &quot;declined by bank&quot;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (when an error occurs)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">Fields: &quot;results&quot; \nValues: &quot;-1&quot;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">XML Version&nbsp;Example<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Request String<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">https:\/\/bill.ccbill.com\/jpost\/billingApi.cgi??clientAccnum=900000&amp;username=testuser&amp;password=testpass&amp;action=chargeByPreviousTransactionId&amp;newClientAccnum=900000&amp;newClientSubacc=0000&amp;sharedAuthentication=1&amp;initialPrice=5.00&amp;initialPeriod=30&amp;recurringPrice=29.95&amp;recurringPeriod=30&amp;rebills=99&amp;subscriptionId=0108113201000024660&amp;returnXML=1<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for approved transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;?xml version=&#039;1.0&#039; standalone=&#039;yes&#039;?&gt; \n&lt;results&gt; \n&lt;approved&gt;1&lt;\/approved&gt; \n&lt;subscriptionId&gt;100000000000000000&lt;\/subscriptionId&gt; \n&lt;\/results&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for denied transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;?xml version=&#039;1.0&#039; standalone=&#039;yes&#039;?&gt; \n&lt;results&gt; \n&lt;approved&gt;0&lt;\/approved&gt; \n&lt;denialId&gt;100000000000000000&lt;\/denialId&gt; \n&lt;declineCode&gt;15&lt;\/declineCode&gt; \n&lt;declineText&gt; declined by bank &lt;\/declineText&gt; \n&lt;\/results&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (when an error occurs)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;?xml version=&#039;1.0&#039; standalone=&#039;yes&#039;?&gt; \n&lt;results&gt;-1&lt;\/results&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Field Explanations (Including 3DS Information)<\/h2>\n\n\n\n<p>Pass the following parameters to the <strong><em>billingApi<\/em><\/strong> to perform a Charge By Previous Transaction ID function that includes 3DS information:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-background\" style=\"background-color:#e7f5fe\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\">PARAMETER<\/th><th class=\"has-text-align-center\" data-align=\"center\">DATA TYPE<br>(Max Lenght)<\/th><th class=\"has-text-align-center\" data-align=\"center\">DESCRIPTION<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>action<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\"><\/td><td class=\"has-text-align-center\" data-align=\"center\">Function to be performed within the CCBill API.<br>Value: <strong>chargeByPreviousTransactionId<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>subscriptionId<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(20)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Unique ID of the consumer\u2019s original transaction.<br>Example value: <strong>921201201000001032<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>clientAccnum<\/strong><br>(required)  <\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(6)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The six-digit CCBill merchant account number.<br>Example value: <strong>900000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>clientSubacc<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The four-digit subaccount number the subscription is related to. You will be authenticated on the specific subaccount if this parameter is provided and not on the main account. The action must pertain to this subaccount; otherwise, it will fail. If you wish to be authenticated on the main account (i.e. your DataLink user was created on the account level) you should omit this parameter.<br>Example value: <strong>0000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>usingSubacc<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The parameter specifies a subaccount on which a requested operation will be performed. Use this parameter if you wish to be authenticated on the main account but not on a specific subaccount.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>username<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(8)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Merchant's <a href=\"https:\/\/ccbill.com\/doc\/data-link-system\" target=\"_blank\" rel=\"noreferrer noopener\">Data Link<\/a> username.<br>Example value: <strong>testuser<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>password<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(8)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Merchant's Data Link password.<br>Example value: <strong>testpass<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>newClientAccnum<\/strong> (required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(6)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The six-digit CCBill client account number for the new charge. It can be the same as clientAccnum.<br>Example value: <strong>900000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>newClientSubacc <\/strong>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(4)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The four-digit CCBill client subaccount number for the new charge. It can be the same as clientSubacc.<br>Example value: <strong>0000<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>sharedAuthentication <\/strong>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<\/td><td class=\"has-text-align-center\" data-align=\"center\">Indicates whether shared authentication is used; a value of <strong>1<\/strong> signifies that the originating and destination accounts are using the same password file and database. A value of <strong>0<\/strong> means that shared authentication is not used.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>currencyCode<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(3)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Three-digit currency code for the currency<br>used in the transaction. If omitted, the transaction is processed in U.S. dollars (USD) by default.<br>Example value: <strong>840<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>initialPrice<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">float (decimal)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Initial transaction price.<br>Example value: <strong>5.00<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>initialPeriod<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">The length (in days) of the initial billing period.<br>Example value: <strong>30<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>recurringPrice<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">float<br>(decimal)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The amount the consumer will be charged for each recurring bill. For single-billing transactions, set this value equal to <strong>0<\/strong><br>Example value: <strong>29.95<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>recurringPeriod<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">The length of time between rebills. For single-billing transactions, set this value equal to <strong>0<\/strong><br>Example value: <strong>30<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>rebills<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">The total number of times the subscription will rebill. For unlimited rebills, set this value equal to <strong>99<\/strong>. For single-billing transactions, set this value equal to <strong>0<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>lifeTimeSubscription<\/strong> (optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<\/td><td class=\"has-text-align-center\" data-align=\"center\">The presence of this variable with a value of <strong>1<\/strong> indicates that the transaction is a lifetime subscription.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>returnXML<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<br>(Required if XML is enabled).<\/td><td class=\"has-text-align-center\" data-align=\"center\">If this parameter is passed in with the value <strong>1<\/strong>, you will receive the response in XML format; otherwise, the information is returned in CSV (comma-separated values) format.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>overrideAffiliate<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">Override the affiliate (<a href=\"https:\/\/ccbill.com\/doc\/affiliate-system-faqs\" target=\"_blank\" rel=\"noreferrer noopener\">LAS<\/a> only) payment on upgrades. A <strong>0 <\/strong>value tells the system not to credit affiliates. A valid Affiliate ID may be passed to specify the Affiliate that should receive the credit, or the parameter may be absent. A blank parameter or invalid Affiliate ID results in an error message.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>overrideParticipation<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<\/td><td class=\"has-text-align-center\" data-align=\"center\">Used with <a href=\"https:\/\/ccbill.com\/doc\/merchant-connect\" target=\"_blank\" rel=\"noreferrer noopener\">Merchant Connect<\/a> to override the affiliate payment on upgrades. The <strong>0<\/strong> value tells the system not to credit any affiliate. A valid PPID indicates the Affiliate that should receive the credit, or the parameter may be absent. A blank parameter or invalid Affiliate ID results in an error message.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsClientTransactionId<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(36)<\/td><td class=\"has-text-align-center\" data-align=\"center\"><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsAmount<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">float<br>(decimal)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The amount to be charged (same as <strong>initialPrice<\/strong>).<br>Example value: <strong>3.00<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsCardToken<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(16)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The encrypted cardToken you receive through the 3DS verification process. As we require only the first 16 characters, trim the string to that length before sending it to the CCBill API. Sending a string longer than 16 characters results in an error.<br>Example value: <strong>gjeoB5NdJ1r6p0dG<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsVersion<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\"><code>number<\/code><br>(20)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The version of the 3DS protocol to be followed for this specific card and transaction.<br>Available versions are <strong>1.0.2<\/strong> and <strong>2.1.0<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsCurrency<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(3)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The 3-digit currency code for the currency to be used in this transaction.<br>Example value: <strong>840<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsStatus<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">character<br>(1)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The status of the 3DS verification ('<strong>Y<\/strong>', '<strong>N<\/strong>', '<strong>A<\/strong>', etc.)<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsSuccess<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">boolean<\/td><td class=\"has-text-align-center\" data-align=\"center\">Verification of success or failure.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsAuthenticationType<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(36)<\/td><td class=\"has-text-align-center\" data-align=\"center\">A digital signature that proves that the transaction has been 3DS verified. The signature is obtained through a 3DS verification flow (<strong>v2.1<\/strong>).<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsAuthenticationValue<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(256)<\/td><td class=\"has-text-align-center\" data-align=\"center\">A digital signature that proves that the transaction has been 3DS verified. The signature is obtained through a 3DS verification flow (<strong>v2.1<\/strong>).<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsCavv<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(256)<\/td><td class=\"has-text-align-center\" data-align=\"center\">A digital signature that proves that the transaction has been 3DS verified. The signature is obtained through a 3DS verification flow (<strong>v1.0.2<\/strong>).<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsCavvAlgorithm<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(10)<\/td><td class=\"has-text-align-center\" data-align=\"center\">A digital signature that proves that the transaction has been 3DS verified. The signature is obtained through a 3DS verification flow (<strong>v1.0.2<\/strong>).<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsEci<\/strong><br>(required)<\/td><td class=\"has-text-align-center\" data-align=\"center\">integer<br>(2)<\/td><td class=\"has-text-align-center\" data-align=\"center\">An Electronic Commerce Indicator (ECI).<br>Values: '<strong>0<\/strong>', '<strong>1<\/strong>', '<strong>2<\/strong>', '<strong>5<\/strong>', '<strong>6<\/strong>', or '<strong>7<\/strong>'.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsDsTransId<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(36)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Directory Server Transaction ID.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsAcsTransId<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(36)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Access Control Server Transaction ID.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsSdkTransId<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(36)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The 3DS vendor's transaction ID.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsXid<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(50)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The transaction identifier (<strong>XID<\/strong>) is a unique tracking number set by the merchant for 3DS 1.0. Base encoded 64.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsError<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(256)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Error received from the 3DS vendor during the strong customer authentication process.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsErrorDetail<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(256)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Error details related to the <em>threedsError<\/em>.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsErrorCode<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(10)<\/td><td class=\"has-text-align-center\" data-align=\"center\">Error code.<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>threedsResponse<\/strong><br>(optional)<\/td><td class=\"has-text-align-center\" data-align=\"center\">string<br>(400)<\/td><td class=\"has-text-align-center\" data-align=\"center\">The complete response in case of an error.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">CSV Example<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Request String<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">https:\/\/bill.ccbill.com\/jpost\/billingApi.cgi?action=chargeByPreviousTransactionId3DS&amp;subscriptionId=921201201000001032&amp;clientAccnum=900000&amp;clientSubacc=0000&amp;newClientAccnum=900000&amp;newClientSubacc=0000&amp;username=testuser&amp;password=testpass&amp;sharedAuthentication=1&amp;currencyCode=840&amp;initialPrice=3.00&amp;initialPeriod=30&amp;recurringPrice=29.95&amp;recurringPeriod=30&amp;rebills=99&amp;lifetimeSubscription=0&amp;threedsClientTransactionId=idtestCase1&amp;threedsAmount=3.00&amp;threedsCardToken=gjeoB5NdJ1r6p0dG&amp;threedsVersion=1.0.2&amp;threedsCurrency=840&amp;threedsStatus=Y&amp;threedsSuccess=1&amp;threedsCavv=cGFzc3dvcmQxMjM0NTZwYXNzd28=&amp;threedsCavvAlgorithm=SHA-256&amp;threedsEci=02&amp;threedsXid=aWQteWo4M3lnb21xZCAgICAgICA=&amp;threedsSdkTransId=testSdkTransId&amp;threedsAcsTransId=testAcsTransId&amp;threedsDsTransId=testDsTransId<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for approved transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">Fields: &quot;approved&quot;, &quot;subscriptionId&quot; \nValues: &quot;1&quot;, &quot;100000000000000000&quot;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for denied transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">Fields: &quot;approved&quot;, &quot;denialId&quot;, &quot;declineCode&quot;, &quot;declineText&quot; \nValues: &quot;0&quot;, &quot;100000000000000000&quot;, &quot;15&quot;, &quot;declined by bank&quot;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (when an error occurs)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-\">Fields: &quot;results&quot; \nValues: &quot;-1&quot;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">XML Version&nbsp;Example<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Request String<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-json\">https:\/\/bill.ccbill.com\/jpost\/billingApi.cgi?action=chargeByPreviousTransactionId3DS&amp;subscriptionId=921201201000001032&amp;clientAccnum=900000&amp;clientSubacc=0000&amp;newClientAccnum=900000&amp;newClientSubacc=0000&amp;username=testuser&amp;password=testpass&amp;sharedAuthentication=1&amp;currencyCode=840&amp;initialPrice=3.00&amp;initialPeriod=30&amp;recurringPrice=29.95&amp;recurringPeriod=30&amp;rebills=99&amp;lifetimeSubscription=0&amp;threedsClientTransactionId=idtestCase1&amp;threedsAmount=3.00&amp;threedsCurrency=840&amp;threedsEci=02&amp;returnXML=1<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for approved transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;?xml version=&#039;1.0&#039; standalone=&#039;yes&#039;?&gt; \n&lt;results&gt; \n&lt;approved&gt;1&lt;\/approved&gt; \n&lt;subscriptionId&gt;100000000000000000&lt;\/subscriptionId&gt; \n&lt;\/results&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (for denied transactions)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;?xml version=&#039;1.0&#039; standalone=&#039;yes&#039;?&gt; \n&lt;results&gt; \n&lt;approved&gt;0&lt;\/approved&gt; \n&lt;denialId&gt;100000000000000000&lt;\/denialId&gt; \n&lt;declineCode&gt;15&lt;\/declineCode&gt; \n&lt;declineText&gt; declined by bank &lt;\/declineText&gt; \n&lt;\/results&gt;<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Results Sent (when an error occurs)<\/h4>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">&lt;?xml version=&#039;1.0&#039; standalone=&#039;yes&#039;?&gt; \n&lt;results&gt;-1&lt;\/results&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Error_Codes\">Error Codes<\/h3>\n\n\n\n<p>For a full list of error codes and explanations, please consult the <a href=\"https:\/\/ccbill.com\/doc\/ccbill-api-guide\" target=\"_blank\" rel=\"noreferrer noopener\">CCBill API Guide<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Best_Practices\">Best Practices<\/h2>\n\n\n\n<p><strong>CCBill\u2019s 1-Click APIs<\/strong> allow merchants to offer their consumers a <strong>convenient upgrade billing solution<\/strong>. Consumers do not have to re-enter their payment details on subsequent purchases. The APIs are managed by the merchant, and the consumers initiate transactions within the merchant\u2019s website or member\u2019s area. While these can be very convenient and valuable tools, they do not come without <strong>added risk<\/strong>. The merchant must manage much of the consumer experience, and the APIs are designed to bypass CCBill\u2019s authentication system, V-Scrub.<\/p>\n\n\n\n<p>As a result, the merchant must understand their responsibilities and implement a <strong>system of controls<\/strong> designed to manage the consumer experience and <strong>minimize the risk of chargebacks<\/strong> and revenue loss.<\/p>\n\n\n\n<p>While each merchant\u2019s business model is unique and the controls they implement may differ, the following&nbsp;<strong>best practices<\/strong>&nbsp;guide merchants who process&nbsp;<strong>1-Click transactions<\/strong>.<\/p>\n\n\n\n<ol style=\"list-style-type:1\" class=\"wp-block-list\">\n<li><strong>Consumer Disclosure<\/strong>: Increase consumer education and awareness throughout the payment process and website.\n<ul class=\"wp-block-list\">\n<li><strong>Clear Pricing Descriptions<\/strong> throughout the upgrade process. Prices should include the proper currency and accurate value of credits\/tokens and should display any other terms relevant to the purchase.<\/li>\n\n\n\n<li>The purchase button should be action-oriented to ensure the consumer is aware they are initiating a purchase.<\/li>\n\n\n\n<li>Clear Approval\/Denial Messaging: The consumer should be immediately notified of the approval\/denial within the member\u2019s area, and confirmation emails should be sent.<\/li>\n\n\n\n<li>1-Click Environment Education: Consumers need to understand they can initiate charges against their account with the click of a button. In addition to clear messaging, some merchants may want to ensure their customers can opt-in and opt out of the 1-click environment.<\/li>\n\n\n\n<li><strong>Refund Policy<\/strong>: The merchant\u2019s refund policy should be <strong>easy to locate<\/strong> on the website and should clearly instruct consumers what issues may result in a refund if they run into issues with their purchase.<\/li>\n\n\n\n<li><strong>Billing Descriptors<\/strong> should be reinforced in the upgrade process and in confirmation emails. The merchant\u2019s support page should reinforce the descriptors.<\/li>\n\n\n\n<li><strong>Support Information<\/strong> should be prevalent throughout the entire website to ensure customers can contact support for any issue with their service.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Velocity Controls<\/strong>: The 1-click APIs do not limit transaction volume, and the transactions are not scrubbed for risk.\n<ul class=\"wp-block-list\">\n<li><strong>New Customers vs. Existing<\/strong>: Treat new customers with added scrutiny by limiting their transactions in a given period. For example, a new customer should only be allowed to make 4 transactions within the initial 30 days.<\/li>\n\n\n\n<li><strong>Existing Customers<\/strong> who have proven to be low risk can also be asked to <strong>revalidate their data<\/strong> after a higher number of transactions. For example, the customer has to opt back into the 1-click agreement after 20 transactions.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Affiliate\/Traffic Source Monitoring<\/strong>: The merchant should report refund and chargeback activity to their traffic sources to ensure they are being appropriately managed from month to month.\n<ul class=\"wp-block-list\">\n<li>Affiliates\/Traffic sources with high chargeback rates should be terminated.<\/li>\n\n\n\n<li>Delay payouts with new affiliate\/traffic sources to ensure transactions can be reviewed before paying the affiliate. If high-risk patterns are detected, delay the payout to ensure refunds and chargebacks can clear.<br><strong>Note<\/strong>: This may take up to 120 days<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Model\/Cam Studio Monitoring<\/strong>: The merchant should report refund and chargeback activity to their model and cam studio sources to ensure they are being appropriately managed from month to month.\n<ul class=\"wp-block-list\">\n<li>Model\/Cam Studio sources with high chargeback rates should be terminated.<\/li>\n\n\n\n<li>Delay payouts with new model\/cam studio sources to review transactions before paying the affiliate. If high-risk patterns are detected, delay the payout to ensure refunds and chargebacks can clear. This may take up to 120 days<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Post Transaction Monitoring<\/strong>: The merchant should verify a consumer if higher risk patterns or behavior are detected.\n<ul class=\"wp-block-list\">\n<li><strong>Review customers' credit\/token<\/strong> usage patterns. New customers who do not use tokens or credits upon payment should be considered high risk.<\/li>\n\n\n\n<li><strong>Review IPs<\/strong> associated with logins and compare them to purchase IPs. Differences should be considered high risk.<\/li>\n\n\n\n<li><strong>High dollar amounts<\/strong> spent in shorter periods should be reviewed to ensure legitimacy.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Introduction This document is an addendum to the CCBill API documentation and discusses the Charge...<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"kk_blocks_editor_width":"","_kiokenblocks_attr":"","_kiokenblocks_dimensions":"","footnotes":""},"categories":[29],"tags":[],"class_list":["post-495","post","type-post","status-publish","format-standard","hentry","category-api-documentation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CCBill Merchant Knowledge Base | CCBill API: Charge by Previous Transaction ID<\/title>\n<meta name=\"description\" content=\"Charging by previous transaction ID allows clients to offer special offers to consumers without using CCBill signup forms.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CCBill Merchant Knowledge Base | CCBill API: Charge by Previous Transaction ID\" \/>\n<meta property=\"og:description\" content=\"Charging by previous transaction ID allows clients to offer special offers to consumers without using CCBill signup forms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id\" \/>\n<meta property=\"og:site_name\" content=\"CCBill Doc\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-10T18:44:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-09T10:29:19+00:00\" \/>\n<meta name=\"author\" content=\"Goran Jevtic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Goran Jevtic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id\",\"url\":\"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id\",\"name\":\"CCBill Merchant Knowledge Base | CCBill API: Charge by Previous Transaction ID\",\"isPartOf\":{\"@id\":\"https:\/\/ccbill.com\/doc\/#website\"},\"datePublished\":\"2020-08-10T18:44:10+00:00\",\"dateModified\":\"2025-07-09T10:29:19+00:00\",\"author\":{\"@id\":\"https:\/\/ccbill.com\/doc\/#\/schema\/person\/07053eea9e71524817d8c51f00e49547\"},\"description\":\"Charging by previous transaction ID allows clients to offer special offers to consumers without using CCBill signup forms.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ccbill.com\/doc\/#website\",\"url\":\"https:\/\/ccbill.com\/doc\/\",\"name\":\"CCBill Doc\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ccbill.com\/doc\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/ccbill.com\/doc\/#\/schema\/person\/07053eea9e71524817d8c51f00e49547\",\"name\":\"Goran Jevtic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ccbill.com\/doc\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2f1f69525606d377dbc5663dc0499431?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2f1f69525606d377dbc5663dc0499431?s=96&d=mm&r=g\",\"caption\":\"Goran Jevtic\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CCBill Merchant Knowledge Base | CCBill API: Charge by Previous Transaction ID","description":"Charging by previous transaction ID allows clients to offer special offers to consumers without using CCBill signup forms.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id","og_locale":"en_US","og_type":"article","og_title":"CCBill Merchant Knowledge Base | CCBill API: Charge by Previous Transaction ID","og_description":"Charging by previous transaction ID allows clients to offer special offers to consumers without using CCBill signup forms.","og_url":"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id","og_site_name":"CCBill Doc","article_published_time":"2020-08-10T18:44:10+00:00","article_modified_time":"2025-07-09T10:29:19+00:00","author":"Goran Jevtic","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Goran Jevtic","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id","url":"https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id","name":"CCBill Merchant Knowledge Base | CCBill API: Charge by Previous Transaction ID","isPartOf":{"@id":"https:\/\/ccbill.com\/doc\/#website"},"datePublished":"2020-08-10T18:44:10+00:00","dateModified":"2025-07-09T10:29:19+00:00","author":{"@id":"https:\/\/ccbill.com\/doc\/#\/schema\/person\/07053eea9e71524817d8c51f00e49547"},"description":"Charging by previous transaction ID allows clients to offer special offers to consumers without using CCBill signup forms.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ccbill.com\/doc\/ccbill-api-charge-by-previous-transaction-id"]}]},{"@type":"WebSite","@id":"https:\/\/ccbill.com\/doc\/#website","url":"https:\/\/ccbill.com\/doc\/","name":"CCBill Doc","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ccbill.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/ccbill.com\/doc\/#\/schema\/person\/07053eea9e71524817d8c51f00e49547","name":"Goran Jevtic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ccbill.com\/doc\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2f1f69525606d377dbc5663dc0499431?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2f1f69525606d377dbc5663dc0499431?s=96&d=mm&r=g","caption":"Goran Jevtic"}}]}},"_links":{"self":[{"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/posts\/495"}],"collection":[{"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/comments?post=495"}],"version-history":[{"count":16,"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/posts\/495\/revisions"}],"predecessor-version":[{"id":11132,"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/posts\/495\/revisions\/11132"}],"wp:attachment":[{"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/media?parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/categories?post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ccbill.com\/doc\/wp-json\/wp\/v2\/tags?post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}