updatePaymentMethod method updates the Account object with the information for a payment method, such as a credit card that is on record. For example, call this method to change a credit card’s expiration date. This method is especially useful if the Account object has associated active AutoBill objects and you would like to replace their payment methods with another one to apply to the next billing.
Call this method to catch up on the billing of an AutoBill object that has stalled due to a failed billing. For example, when your customers receive an email notification about a hard failure of a subscription (AutoBill), they are usually directed to your site to take remedial action (for example, to update the payment method), which, in turn, should invoke this method to send the updated payment method information to Vindicia.
If both ignoreAvsPolicy and ignoreCvnPolicy are true, no policy evaluation will be done. If only one of those flags is set to true, policy evaluation will not be considered for that element (AVS or CVN). If no value is passed in for either parameter, they will default to false, and the AVS and CVN policy evaluations will be used to determine PaymentMethod validation status.
For more detail on AVS and CVN Return Codes, please work with your Vindicia Client Services representative.
Input
srd:sparse response description, a SOAP string (which must be a JSON object), in which you specify the elements you want returned.This parameter enables the calling system to constrain amethod call to return only components you specify. This gives you greater control over returned content, and improves response time within the Vindicia platform by reducing the processing needed for the call.
Some fields are required, either practically or in the WSDL, and will be returned regardless of the srd. A null srd returns the complete response.
account: the Account object whose payment method you would like to change. Use the merchantAccountId or VID to identify the object.
paymentMethod: the required PaymentMethod object that contains the new data to apply to the Account object’s payment method. (For more information, see The PaymentMethod Object.)
-
If you specify a VID or
merchantPaymentMethodIdto identifypaymentMethod, this method updates the payment method in question. If you do not specify aVIDormerchantPaymentMethodId, this method creates a new payment method, and attaches it to theAccountobject. -
If you specify an existing sort order for the payment method (for example, 0, which is the default),
updatePaymentMethodpushes down the payment method with the same sort order to the next increment (for example, 1), and increments the sort order of the subsequent payment methods accordingly.
AutoBills to catch-up billing on, and on which AutoBills you want to replace the payment method.
None—Do not bill on anyAutoBillsfor this/theseAccounts. Do not replace thepaymentMethodon this/theseAccount(s).matchinPaymentMethod—Bill only on those readyAutoBillswhose payment method matches the default payment method on the specifiedAccount. Replace the payment method only on thoseAutoBillswhose payment method matches the default payment method on the specifiedAccount.AllDue—Bill all (account and children)AutoBillswith payment methods belonging to the specifiedAccountthat are in error or ready to bill. The payment method is replaced on those billed.AllDueAndMatching—Bill all (Accountand children)AutoBills with payment method belonging to the specifiedAccountthat are in error or ready to bill. The payment method is replaced on those billed, as well as on anyAutoBills, with a payment method matching the specifiedAccount'sprimary payment method.AllActive—Bill all readyAutoBillss, replace on allAutoBills with payment methods belonging to the specifiedAccount
AllActive on updateScopeOnChildren and None on updateScopeOnAccount. This would set the payment method on every child AutoBil to the new payment method, set the payment method on the Account to the new payment method, but not change the payment method on any AutoBills belonging directly to the specified (primary/parent) Account.
updateBehavior: specifies whether to just Update (update without validation), Validate (validate first), or CatchUp (catch up on billing first).
-
Update: the
paymentMethodis saved and associated with the account. If the updateScopeOnAccount and/or updateScopeOnChildren values are set to a value other than None, or if the updateScopeOnAccount value is left unspecified, the payment method associated withAutoBills within the specified scope of the update will also be set to the new or updated payment method specified in the call. -
Validate: the call attempts to validate the payment method and, if successful, proceeds as in the
Updatecase. Does not update and returns the appropriate4*xx*error code if validation fails. -
CatchUp: if there are no
AutoBills within updateScopeOnAccount and updateScopeOnChildren eligible for billing, the call proceeds as ifValidationwere set. Otherwise, for eachAutoBillin the updateScopeOnAccount and updateScopeOnChildren purview, catch-up billing is performed such that:- If the
AutoBillis inGood Standingand is not ready to bill, thepaymentMethodon theAutoBillis set to the new or updated payment method. - If the
AutoBillis inGood Standingand is due to bill today, or if the is inSoftorHard Errorand its end date is after today (that is, still within the retry period), an attempt is made to bill (or reprocess the failed billing attempt) on theAutoBillusing the new or updated payment method specified in theAccount.updatePaymentMethod()call. If the attempt is successful, the payment method for subsequent billing attempts on theAutoBillis set to the new or updated payment method. If theAutoBillwas in error and the reprocessing attempt was successful, theAutoBillstatus is set toGood Standing. If theAutoBillwas inHard Error,it is reactivated. - After catch-up billing, if any
AutoBillbilling or reprocessing attempts were successful, the payment method on theAccountis set to the new or updated payment method.
- If the
AutoBill payment method updates have been performed:
- If all
AutoBillbilling attempts were successful and any or all payment methods were updated successfully on theAutoBill(s) andAccount, the call returns200(success) and a list of merchantAutoBillidentifiers of successfully billedAutoBills in the Successes field of theReturnobject. - If some
AutoBillbilling attempts were successful, the call returns206(partial success) and a list of merchantAutoBillidentifiers of successfully billed or updatedAutoBills in the Successes field of theReturnobject, and a list of merchantReturnidentifiers of unsuccessfully billed or updatedReturns in the Failures field of theReturnobject. - If the
paymentMethodis invalid, or catch-up billing or update failed on all eligibleAutoBills (where there wereAutoBills eligible for billing or update), the call returns a list of failures in theReturnobject and an appropriate4*xx*return code.
true, will override the AVS policy, and update the paymentMethod, regardless of the AVS return code. If set to false or null, (and if updatePaymentMethod is set to Validate) the AVS return code will be used to determine whether to update the paymentMethod.
ignoreCvnPolicy: an optional Boolean flag that, if set to true will override the CVN policy, and update the paymentMethod, regardless of the CVN return code. If set to false or null, (and if updatePaymentMethod is set to Validate) the CVN return code will be used to determine whether to update the paymentMethod.
updateScopeOnChildren: enumerated options controlling whether and when to bill and/or replace the payment method on associated AutoBills belonging to the child Accounts of the specified Account. If you do not specify a value, updateScopeOnChildren defaults to the equivalent of the none option.
Use the following enumerated values to specify which child Account you want to catch-up billing on, and on which AutoBills you want to replace the payment method.
None—Do not bill on anyAutoBills for this/theseAccounts. Do not replace the payment method on this/theseAccount(s).matchingPaymentMethod—Bill only on those readyAutoBillswhose payment method matches the default payment method on the specifiedAccount. Replace the payment method only on thoseAutoBills whose payment method matches the default payment method on the specifiedAccount.AllDue—Bill all (account and children)AutoBillswith payment methods belonging to the specifiedAccountthat are in error or ready to bill. The payment method is replaced on those billed.AllDueAndMatching—Bill all (account and children)AutoBills with payment methods belonging to the specifiedAccountthat are in error or ready to bill. The payment method is replaced on those billed, as well as on anyAutoBills, with a payment method matching the specifiedAccount'sprimary payment method.AllActive—Bill all readyAutoBills, replace on allAutoBillswith payment methods belonging to the specifiedAccount.
AllActive on updateScopeOnChildren and None on updateScopeOnAccount. This would set the payment method on every child AutoBill to the new payment method, set the payment method on the Account to the new payment method, but not change the payment method on any AutoBills belonging directly to the specified (primary/parent) Account.
enable3ds: Disable 3DS authentication flow for this transaction if false; if true or undefined, the 3DS authentication flow will be determined by the merchant option flag use3ds.
Output
return: an object of typeReturn that indicates the success or failure of the call.
account: the Account object whose payment method was changed.
validated: a Boolean flag that, if set to true, indicates that this method has successfully validated the PaymentMethod object.
successes: Merchant identifiers for AutoBills successfully billed during catch up billing.
failures: Merchant identifiers for AutoBills unsuccessfully billed during catch up billing.
initialTransaction: Validation Transaction.
authStatus: If payment method validation was requested, or the initial Transaction was processed, this object will contain more information on response to the validation from the payment processor.

