reserveSubscriptionCharge
Use the reserveSubscriptionCharge to preauthorise, or reserve a single occurrence of a recurring payment, for example a monthly subscription.

Test URL | https://testgateway.altapaysecure.com/merchant/API/<method> |
Production URL | https://<YourShopName>.altapaysecure.com/merchant/API/<method> |
To reserve several payments, you call the method multiple times.
In addition to the payment amount, you can add a separate surcharge amount.
The old method name, preauthRecurring is deprecated, and should not be used anymore.

Parameter | Description | Type | Mandatory |
---|---|---|---|
transaction_id | The id of the subscription. | [0-9a-f]{1,32} | X |
amount | The amount to capture. | float | |
surcharge_amount | The surcharge to capture in addition to the payment amount. This is not supported by all providers. | float |

The table shows the most pertinent response values for the method. For a complete list of API response parameters, see API Response structure (XML).
Parameter | Description | Type |
---|---|---|
Result | Success or Fail. | string |

GET call
https://<YourShopName>.altapaysecure.com/merchant/API/reserveSubscriptionCharge/?transaction_id=1&amount=5
XML result
<?xml version="1.0" encoding="utf-8" ?> <APIResponse version="20170228"> <Header> <Date>2020-09-29T12:34:56+02:00</Date> <Path>API/reserveSubscriptionCharge</Path> <ErrorCode>0</ErrorCode> <ErrorMessage></ErrorMessage> </Header> <Body> <Result>Success</Result> <Transactions> <Transaction> <TransactionId>1</TransactionId> <PaymentId>5387ebc9-f5d9-49f1-8b4d-44746369977a</PaymentId> <CardStatus>Valid</CardStatus> <CreditCardToken>93f534a2f5d66d6ab3f16c8a7bb7e852656d4bb2</CreditCardToken> <CreditCardMaskedPan>411111******1111</CreditCardMaskedPan> <ThreeDSecureResult>Not_Applicable</ThreeDSecureResult> <LiableForChargeback>Merchant</LiableForChargeback> <BlacklistToken>4f244dec4907eba0f6432e53b17a60ebcf51365e</BlacklistToken> <ShopOrderId>myorderid</ShopOrderId> <Shop>AltaPay Shop</Shop> <Terminal>AltaPay Test Terminal</Terminal> <TransactionStatus>recurring_confirmed</TransactionStatus> <ReasonCode>NONE</ReasonCode> <MerchantCurrency>978</MerchantCurrency> <MerchantCurrencyAlpha>EUR</MerchantCurrencyAlpha> <CardHolderCurrency>978</CardHolderCurrency> <CardHolderCurrencyAlpha>EUR</CardHolderCurrencyAlpha> <ReservedAmount>0</ReservedAmount> <CapturedAmount>0</CapturedAmount> <RefundedAmount>0</RefundedAmount> <RecurringDefaultAmount>10.00</RecurringDefaultAmount> <CreatedDate>2010-09-28 12:34:56</CreatedDate> <UpdatedDate>2010-09-28 12:34:56</UpdatedDate> <PaymentNature>CreditCard</PaymentNature> <PaymentNatureService name="TestAcquirer"> <SupportsRefunds>true</SupportsRefunds> <SupportsRelease>true</SupportsRelease> <SupportsMultipleCaptures>true</SupportsMultipleCaptures> <SupportsMultipleRefunds>false</SupportsMultipleRefunds> </PaymentNatureService> <FraudRiskScore>13.37</FraudRiskScore> <FraudExplanation>Fraud detection explanation</FraudExplanation> <PaymentInfos> <PaymentInfo name="Form_Created_At">2010-09-28 12:34:56</PaymentInfo> <PaymentInfo name="Form_Provider">AltaPay Test Form</PaymentInfo> <PaymentInfo name="Merchant_Provided_Info">Some info by merchant</PaymentInfo> </PaymentInfos> <CustomerInfo/> <ReconciliationIdentifiers/> </Transaction> <Transaction> <TransactionId>2</TransactionId> <PaymentId>ccc1479c-37f9-4962-8d2c-662d75117e9d</PaymentId> <CardStatus>Valid</CardStatus> <CreditCardToken>93f534a2f5d66d6ab3f16c8a7bb7e852656d4bb2</CreditCardToken> <CreditCardMaskedPan>411111******1111</CreditCardMaskedPan> <ThreeDSecureResult>Not_Applicable</ThreeDSecureResult> <LiableForChargeback>Merchant</LiableForChargeback> <BlacklistToken>4f244dec4907eba0f6432e53b17a60ebcf51365e</BlacklistToken> <ShopOrderId>myorderid</ShopOrderId> <Shop>AltaPay Shop</Shop> <Terminal>AltaPay Test Terminal</Terminal> <TransactionStatus>preauth</TransactionStatus> <ReasonCode>NONE</ReasonCode> <MerchantCurrency>978</MerchantCurrency> <MerchantCurrencyAlpha>EUR</MerchantCurrencyAlpha> <CardHolderCurrency>978</CardHolderCurrency> <CardHolderCurrencyAlpha>EUR</CardHolderCurrencyAlpha> <ReservedAmount>5.00</ReservedAmount> <CapturedAmount>0</CapturedAmount> <RefundedAmount>0</RefundedAmount> <RecurringDefaultAmount>0</RecurringDefaultAmount> <CreatedDate>2010-09-28 12:34:56</CreatedDate> <UpdatedDate>2010-09-28 12:34:56</UpdatedDate> <PaymentNature>CreditCard</PaymentNature> <PaymentNatureService name="TestAcquirer"> <SupportsRefunds>true</SupportsRefunds> <SupportsRelease>true</SupportsRelease> <SupportsMultipleCaptures>true</SupportsMultipleCaptures> <SupportsMultipleRefunds>false</SupportsMultipleRefunds> </PaymentNatureService> <FraudRiskScore>13.37</FraudRiskScore> <FraudExplanation>Fraud detection explanation</FraudExplanation> <PaymentInfos> <PaymentInfo name="Form_Created_At">2010-09-28 12:34:56</PaymentInfo> <PaymentInfo name="Form_Provider">AltaPay Test Form</PaymentInfo> <PaymentInfo name="Merchant_Provided_Info">Some info by merchant</PaymentInfo> </PaymentInfos> <CustomerInfo/> <ReconciliationIdentifiers/> </Transaction> </Transactions> </Body> </APIResponse>

Use the following to test credit card transactions. For test cases related to other payment methods, see Test case data.
Fails at reserveSubscriptionCharge | Failed | 13.66 |
|
Fails at reserveSubscriptionCharge | Error | 13.67 |
|

If a payment was reserved, you can
- capture it using the captureReservation method.
- release it using the releaseReservation method.
If a payment was reserved and captured, you can:
- refund it using the refundCapturedReservation method.