One Hat Cyber Team
Your IP:
216.73.216.19
Server IP:
198.54.114.155
Server:
Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
Server Software:
LiteSpeed
PHP Version:
5.6.40
Create File
|
Create Folder
Execute
Dir :
~
/
home
/
fluxyjvi
/
www
/
assets
/
images
/
View File Name :
authorizenet.tar
CONTRIBUTING.md 0000644 00000002570 15107327162 0007005 0 ustar 00 Thanks for contributing to the Authorize.Net PHP SDK. Before you submit a pull request, we ask that you consider the following: - Submit an issue to state the problem your pull request solves or the funtionality that it adds. We can then advise on the feasability of the pull request, and let you know if there are other possible solutions. - Part of the SDK is auto-generated based on the XML schema. Due to this auto-generation, we cannot merge contributions for request or response classes. You are welcome to open an issue to report problems or suggest improvements. Auto-generated classes include all files inside [contract/v1](https://github.com/AuthorizeNet/sdk-php/tree/master/lib/net/authorize/api/contract/v1) and [controller](https://github.com/AuthorizeNet/sdk-php/tree/master/lib/net/authorize/api/controller) folders, except [controller/base](https://github.com/AuthorizeNet/sdk-php/tree/master/lib/net/authorize/api/controller/base). - Files marked as deprecated are no longer supported. Issues and pull requests for changes to these deprecated files will be closed. - Recent changes will be in future branch. Check the code in *future* branch first to see if a fix has already been merged, before suggesting changes to a file. - **Always create pull request to the future branch.** The pull request will be merged to future, and later pushed to master as part of the next release. classmap.php 0000644 00000112764 15107327162 0007077 0 ustar 00 <?php spl_autoload_extensions(".php"); // comma-separated list spl_autoload_register(); /** * A map of classname => filename for SPL autoloading. * * @package AuthorizeNet */ $baseDir = __DIR__ ; $libDir = $baseDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR; $vendorDir = $baseDir . '/vendor'; return array( // Following section contains the new controller model classes needed //Utils //'net\authorize\util\ObjectToXml' => $libDir . 'net/authorize/util/ObjectToXml.php', 'net\authorize\util\HttpClient' => $libDir . 'net/authorize/util/HttpClient.php', 'net\authorize\util\Helpers' => $libDir . 'net/authorize/util/Helpers.php', 'net\authorize\util\Log' => $libDir . 'net/authorize/util/Log.php', 'net\authorize\util\LogFactory' => $libDir . 'net/authorize/util/LogFactory.php', 'net\authorize\util\ANetSensitiveFields' => $libDir . 'net/authorize/util/ANetSensitiveFields.php', 'net\authorize\util\SensitiveTag' => $libDir . 'net/authorize/util/SensitiveTag.php', 'net\authorize\util\SensitiveDataConfigType' => $libDir . 'net/authorize/util/SensitiveDataConfigType.php', 'net\authorize\util\Mapper' => $libDir . 'net/authorize/util/Mapper.php', 'net\authorize\util\MapperObj' => $libDir . 'net/authorize/util/MapperObj.php', //constants 'net\authorize\api\constants\ANetEnvironment' => $libDir . 'net/authorize/api/constants/ANetEnvironment.php', //base classes 'net\authorize\api\controller\base\IApiOperation' => $libDir . 'net/authorize/api/controller/base/IApiOperation.php', 'net\authorize\api\controller\base\ApiOperationBase' => $libDir . 'net/authorize/api/controller/base/ApiOperationBase.php', //following are generated class mappings 'net\authorize\api\contract\v1\ANetApiRequestType' => $libDir . 'net/authorize/api/contract/v1/ANetApiRequestType.php', 'net\authorize\api\contract\v1\ANetApiResponseType' => $libDir . 'net/authorize/api/contract/v1/ANetApiResponseType.php', 'net\authorize\api\contract\v1\ARBCancelSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBCancelSubscriptionRequest.php', 'net\authorize\api\contract\v1\ARBCancelSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBCancelSubscriptionResponse.php', 'net\authorize\api\contract\v1\ARBCreateSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBCreateSubscriptionRequest.php', 'net\authorize\api\contract\v1\ARBCreateSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBCreateSubscriptionResponse.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionListRequest' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionListRequest.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionListResponse' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionListResponse.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionListSortingType.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionRequest.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionResponse.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionStatusRequest' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionStatusRequest.php', 'net\authorize\api\contract\v1\ARBGetSubscriptionStatusResponse' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionStatusResponse.php', 'net\authorize\api\contract\v1\ARBSubscriptionMaskedType' => $libDir . 'net/authorize/api/contract/v1/ARBSubscriptionMaskedType.php', 'net\authorize\api\contract\v1\ARBSubscriptionType' => $libDir . 'net/authorize/api/contract/v1/ARBSubscriptionType.php', 'net\authorize\api\contract\v1\ArbTransactionType' => $libDir . 'net/authorize/api/contract/v1/ArbTransactionType.php', 'net\authorize\api\contract\v1\ARBUpdateSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBUpdateSubscriptionRequest.php', 'net\authorize\api\contract\v1\ARBUpdateSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBUpdateSubscriptionResponse.php', 'net\authorize\api\contract\v1\ArrayOfSettingType' => $libDir . 'net/authorize/api/contract/v1/ArrayOfSettingType.php', 'net\authorize\api\contract\v1\AuthenticateTestRequest' => $libDir . 'net/authorize/api/contract/v1/AuthenticateTestRequest.php', 'net\authorize\api\contract\v1\AuthenticateTestResponse' => $libDir . 'net/authorize/api/contract/v1/AuthenticateTestResponse.php', 'net\authorize\api\contract\v1\AuthorizationIndicatorType' => $libDir . 'net/authorize/api/contract/v1/AuthorizationIndicatorType.php', 'net\authorize\api\contract\v1\BankAccountMaskedType' => $libDir . 'net/authorize/api/contract/v1/BankAccountMaskedType.php', 'net\authorize\api\contract\v1\BankAccountType' => $libDir . 'net/authorize/api/contract/v1/BankAccountType.php', 'net\authorize\api\contract\v1\BatchDetailsType' => $libDir . 'net/authorize/api/contract/v1/BatchDetailsType.php', 'net\authorize\api\contract\v1\BatchStatisticType' => $libDir . 'net/authorize/api/contract/v1/BatchStatisticType.php', 'net\authorize\api\contract\v1\CardArtType' => $libDir . 'net/authorize/api/contract/v1/CardArtType.php', 'net\authorize\api\contract\v1\CcAuthenticationType' => $libDir . 'net/authorize/api/contract/v1/CcAuthenticationType.php', 'net\authorize\api\contract\v1\ContactDetailType' => $libDir . 'net/authorize/api/contract/v1/ContactDetailType.php', 'net\authorize\api\contract\v1\CreateCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerPaymentProfileRequest.php', 'net\authorize\api\contract\v1\CreateCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerPaymentProfileResponse.php', 'net\authorize\api\contract\v1\CreateCustomerProfileFromTransactionRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileFromTransactionRequest.php', 'net\authorize\api\contract\v1\CreateCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileRequest.php', 'net\authorize\api\contract\v1\CreateCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileResponse.php', 'net\authorize\api\contract\v1\CreateCustomerProfileTransactionRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileTransactionRequest.php', 'net\authorize\api\contract\v1\CreateCustomerProfileTransactionResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileTransactionResponse.php', 'net\authorize\api\contract\v1\CreateCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerShippingAddressRequest.php', 'net\authorize\api\contract\v1\CreateCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerShippingAddressResponse.php', 'net\authorize\api\contract\v1\CreateProfileResponseType' => $libDir . 'net/authorize/api/contract/v1/CreateProfileResponseType.php', 'net\authorize\api\contract\v1\CreateTransactionRequest' => $libDir . 'net/authorize/api/contract/v1/CreateTransactionRequest.php', 'net\authorize\api\contract\v1\CreateTransactionResponse' => $libDir . 'net/authorize/api/contract/v1/CreateTransactionResponse.php', 'net\authorize\api\contract\v1\CreditCardMaskedType' => $libDir . 'net/authorize/api/contract/v1/CreditCardMaskedType.php', 'net\authorize\api\contract\v1\CreditCardSimpleType' => $libDir . 'net/authorize/api/contract/v1/CreditCardSimpleType.php', 'net\authorize\api\contract\v1\CreditCardTrackType' => $libDir . 'net/authorize/api/contract/v1/CreditCardTrackType.php', 'net\authorize\api\contract\v1\CreditCardType' => $libDir . 'net/authorize/api/contract/v1/CreditCardType.php', 'net\authorize\api\contract\v1\CustomerAddressExType' => $libDir . 'net/authorize/api/contract/v1/CustomerAddressExType.php', 'net\authorize\api\contract\v1\CustomerAddressType' => $libDir . 'net/authorize/api/contract/v1/CustomerAddressType.php', 'net\authorize\api\contract\v1\CustomerDataType' => $libDir . 'net/authorize/api/contract/v1/CustomerDataType.php', 'net\authorize\api\contract\v1\CustomerProfileIdType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileIdType.php', 'net\authorize\api\contract\v1\CustomerPaymentProfileBaseType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileBaseType.php', 'net\authorize\api\contract\v1\CustomerPaymentProfileExType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileExType.php', 'net\authorize\api\contract\v1\CustomerPaymentProfileListItemType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileListItemType.php', 'net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileMaskedType.php', 'net\authorize\api\contract\v1\CustomerPaymentProfileSortingType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileSortingType.php', 'net\authorize\api\contract\v1\CustomerPaymentProfileType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileType.php', 'net\authorize\api\contract\v1\CustomerProfileBaseType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileBaseType.php', 'net\authorize\api\contract\v1\CustomerProfileExType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileExType.php', 'net\authorize\api\contract\v1\CustomerProfileMaskedType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileMaskedType.php', 'net\authorize\api\contract\v1\CustomerProfilePaymentType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfilePaymentType.php', 'net\authorize\api\contract\v1\CustomerProfileSummaryType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileSummaryType.php', 'net\authorize\api\contract\v1\CustomerProfileType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileType.php', 'net\authorize\api\contract\v1\CustomerType' => $libDir . 'net/authorize/api/contract/v1/CustomerType.php', 'net\authorize\api\contract\v1\DecryptPaymentDataRequest' => $libDir . 'net/authorize/api/contract/v1/DecryptPaymentDataRequest.php', 'net\authorize\api\contract\v1\DecryptPaymentDataResponse' => $libDir . 'net/authorize/api/contract/v1/DecryptPaymentDataResponse.php', 'net\authorize\api\contract\v1\DeleteCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerPaymentProfileRequest.php', 'net\authorize\api\contract\v1\DeleteCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerPaymentProfileResponse.php', 'net\authorize\api\contract\v1\DeleteCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerProfileRequest.php', 'net\authorize\api\contract\v1\DeleteCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerProfileResponse.php', 'net\authorize\api\contract\v1\DeleteCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerShippingAddressRequest.php', 'net\authorize\api\contract\v1\DeleteCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerShippingAddressResponse.php', 'net\authorize\api\contract\v1\DriversLicenseMaskedType' => $libDir . 'net/authorize/api/contract/v1/DriversLicenseMaskedType.php', 'net\authorize\api\contract\v1\DriversLicenseType' => $libDir . 'net/authorize/api/contract/v1/DriversLicenseType.php', 'net\authorize\api\contract\v1\EmailSettingsType' => $libDir . 'net/authorize/api/contract/v1/EmailSettingsType.php', 'net\authorize\api\contract\v1\EncryptedTrackDataType' => $libDir . 'net/authorize/api/contract/v1/EncryptedTrackDataType.php', 'net\authorize\api\contract\v1\EnumCollection' => $libDir . 'net/authorize/api/contract/v1/EnumCollection.php', 'net\authorize\api\contract\v1\ErrorResponse' => $libDir . 'net/authorize/api/contract/v1/ErrorResponse.php', 'net\authorize\api\contract\v1\ExtendedAmountType' => $libDir . 'net/authorize/api/contract/v1/ExtendedAmountType.php', 'net\authorize\api\contract\v1\FDSFilterType' => $libDir . 'net/authorize/api/contract/v1/FDSFilterType.php', 'net\authorize\api\contract\v1\FingerPrintType' => $libDir . 'net/authorize/api/contract/v1/FingerPrintType.php', 'net\authorize\api\contract\v1\FraudInformationType'=> $libDir . 'net/authorize/api/contract/v1/FraudInformationType.php', 'net\authorize\api\contract\v1\GetBatchStatisticsRequest' => $libDir . 'net/authorize/api/contract/v1/GetBatchStatisticsRequest.php', 'net\authorize\api\contract\v1\GetBatchStatisticsResponse' => $libDir . 'net/authorize/api/contract/v1/GetBatchStatisticsResponse.php', 'net\authorize\api\contract\v1\GetCustomerPaymentProfileListRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileListRequest.php', 'net\authorize\api\contract\v1\GetCustomerPaymentProfileListResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileListResponse.php', 'net\authorize\api\contract\v1\GetCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileRequest.php', 'net\authorize\api\contract\v1\GetCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileResponse.php', 'net\authorize\api\contract\v1\GetCustomerProfileIdsRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileIdsRequest.php', 'net\authorize\api\contract\v1\GetCustomerProfileIdsResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileIdsResponse.php', 'net\authorize\api\contract\v1\GetCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileRequest.php', 'net\authorize\api\contract\v1\GetCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileResponse.php', 'net\authorize\api\contract\v1\GetCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerShippingAddressRequest.php', 'net\authorize\api\contract\v1\GetCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerShippingAddressResponse.php', 'net\authorize\api\contract\v1\GetHostedPaymentPageRequest'=> $libDir . 'net/authorize/api/contract/v1/GetHostedPaymentPageRequest.php', 'net\authorize\api\contract\v1\GetHostedPaymentPageResponse'=> $libDir . 'net/authorize/api/contract/v1/GetHostedPaymentPageResponse.php', 'net\authorize\api\contract\v1\GetHostedProfilePageRequest' => $libDir . 'net/authorize/api/contract/v1/GetHostedProfilePageRequest.php', 'net\authorize\api\contract\v1\GetHostedProfilePageResponse' => $libDir . 'net/authorize/api/contract/v1/GetHostedProfilePageResponse.php', 'net\authorize\api\contract\v1\GetMerchantDetailsRequest'=> $libDir . 'net/authorize/api/contract/v1/GetMerchantDetailsRequest.php', 'net\authorize\api\contract\v1\GetMerchantDetailsResponse'=> $libDir . 'net/authorize/api/contract/v1/GetMerchantDetailsResponse.php', 'net\authorize\api\contract\v1\GetSettledBatchListRequest' => $libDir . 'net/authorize/api/contract/v1/GetSettledBatchListRequest.php', 'net\authorize\api\contract\v1\GetSettledBatchListResponse' => $libDir . 'net/authorize/api/contract/v1/GetSettledBatchListResponse.php', 'net\authorize\api\contract\v1\GetTransactionDetailsRequest' => $libDir . 'net/authorize/api/contract/v1/GetTransactionDetailsRequest.php', 'net\authorize\api\contract\v1\GetTransactionDetailsResponse' => $libDir . 'net/authorize/api/contract/v1/GetTransactionDetailsResponse.php', 'net\authorize\api\contract\v1\GetTransactionListRequest' => $libDir . 'net/authorize/api/contract/v1/GetTransactionListRequest.php', 'net\authorize\api\contract\v1\GetTransactionListResponse' => $libDir . 'net/authorize/api/contract/v1/GetTransactionListResponse.php', 'net\authorize\api\contract\v1\GetUnsettledTransactionListRequest' => $libDir . 'net/authorize/api/contract/v1/GetUnsettledTransactionListRequest.php', 'net\authorize\api\contract\v1\GetUnsettledTransactionListResponse' => $libDir . 'net/authorize/api/contract/v1/GetUnsettledTransactionListResponse.php', 'net\authorize\api\contract\v1\HeldTransactionRequestType'=> $libDir . 'net/authorize/api/contract/v1/HeldTransactionRequestType.php', 'net\authorize\api\contract\v1\ImpersonationAuthenticationType' => $libDir . 'net/authorize/api/contract/v1/ImpersonationAuthenticationType.php', 'net\authorize\api\contract\v1\IsAliveRequest' => $libDir . 'net/authorize/api/contract/v1/IsAliveRequest.php', 'net\authorize\api\contract\v1\IsAliveResponse' => $libDir . 'net/authorize/api/contract/v1/IsAliveResponse.php', 'net\authorize\api\contract\v1\KeyBlockType' => $libDir . 'net/authorize/api/contract/v1/KeyBlockType.php', 'net\authorize\api\contract\v1\KeyManagementSchemeType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType.php', 'net\authorize\api\contract\v1\KeyValueType' => $libDir . 'net/authorize/api/contract/v1/KeyValueType.php', 'net\authorize\api\contract\v1\LineItemType' => $libDir . 'net/authorize/api/contract/v1/LineItemType.php', 'net\authorize\api\contract\v1\LogoutRequest' => $libDir . 'net/authorize/api/contract/v1/LogoutRequest.php', 'net\authorize\api\contract\v1\LogoutResponse' => $libDir . 'net/authorize/api/contract/v1/LogoutResponse.php', 'net\authorize\api\contract\v1\MerchantAuthenticationType' => $libDir . 'net/authorize/api/contract/v1/MerchantAuthenticationType.php', 'net\authorize\api\contract\v1\MerchantContactType' => $libDir . 'net/authorize/api/contract/v1/MerchantContactType.php', 'net\authorize\api\contract\v1\MessagesType' => $libDir . 'net/authorize/api/contract/v1/MessagesType.php', 'net\authorize\api\contract\v1\MobileDeviceLoginRequest' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceLoginRequest.php', 'net\authorize\api\contract\v1\MobileDeviceLoginResponse' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceLoginResponse.php', 'net\authorize\api\contract\v1\MobileDeviceRegistrationRequest' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceRegistrationRequest.php', 'net\authorize\api\contract\v1\MobileDeviceRegistrationResponse' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceRegistrationResponse.php', 'net\authorize\api\contract\v1\MobileDeviceType' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceType.php', 'net\authorize\api\contract\v1\NameAndAddressType' => $libDir . 'net/authorize/api/contract/v1/NameAndAddressType.php', 'net\authorize\api\contract\v1\OpaqueDataType' => $libDir . 'net/authorize/api/contract/v1/OpaqueDataType.php', 'net\authorize\api\contract\v1\OrderExType' => $libDir . 'net/authorize/api/contract/v1/OrderExType.php', 'net\authorize\api\contract\v1\OrderType' => $libDir . 'net/authorize/api/contract/v1/OrderType.php', 'net\authorize\api\contract\v1\PagingType' => $libDir . 'net/authorize/api/contract/v1/PagingType.php', 'net\authorize\api\contract\v1\PaymentDetailsType' => $libDir . 'net/authorize/api/contract/v1/PaymentDetailsType.php', 'net\authorize\api\contract\v1\PaymentMaskedType' => $libDir . 'net/authorize/api/contract/v1/PaymentMaskedType.php', 'net\authorize\api\contract\v1\PaymentProfileType' => $libDir . 'net/authorize/api/contract/v1/PaymentProfileType.php', 'net\authorize\api\contract\v1\PaymentScheduleType' => $libDir . 'net/authorize/api/contract/v1/PaymentScheduleType.php', 'net\authorize\api\contract\v1\PaymentSimpleType' => $libDir . 'net/authorize/api/contract/v1/PaymentSimpleType.php', 'net\authorize\api\contract\v1\PaymentType' => $libDir . 'net/authorize/api/contract/v1/PaymentType.php', 'net\authorize\api\contract\v1\PayPalType' => $libDir . 'net/authorize/api/contract/v1/PayPalType.php', 'net\authorize\api\contract\v1\PermissionType' => $libDir . 'net/authorize/api/contract/v1/PermissionType.php', 'net\authorize\api\contract\v1\ProcessorType'=> $libDir . 'net/authorize/api/contract/v1/ProcessorType.php', 'net\authorize\api\contract\v1\ProfileTransactionType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransactionType.php', 'net\authorize\api\contract\v1\ProfileTransAmountType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransAmountType.php', 'net\authorize\api\contract\v1\ProfileTransAuthCaptureType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransAuthCaptureType.php', 'net\authorize\api\contract\v1\ProfileTransAuthOnlyType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransAuthOnlyType.php', 'net\authorize\api\contract\v1\ProfileTransCaptureOnlyType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransCaptureOnlyType.php', 'net\authorize\api\contract\v1\ProfileTransOrderType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransOrderType.php', 'net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransPriorAuthCaptureType.php', 'net\authorize\api\contract\v1\ProfileTransRefundType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransRefundType.php', 'net\authorize\api\contract\v1\ProfileTransVoidType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransVoidType.php', 'net\authorize\api\contract\v1\ReturnedItemType' => $libDir . 'net/authorize/api/contract/v1/ReturnedItemType.php', 'net\authorize\api\contract\v1\SearchCriteriaCustomerProfileType' => $libDir . 'net/authorize/api/contract/v1/SearchCriteriaCustomerProfileType.php', 'net\authorize\api\contract\v1\SecurePaymentContainerErrorType' => $libDir . 'net/authorize/api/contract/v1/SecurePaymentContainerErrorType.php', 'net\authorize\api\contract\v1\SecurePaymentContainerRequest' => $libDir . 'net/authorize/api/contract/v1/SecurePaymentContainerRequest.php', 'net\authorize\api\contract\v1\SecurePaymentContainerResponse' => $libDir . 'net/authorize/api/contract/v1/SecurePaymentContainerResponse.php', 'net\authorize\api\contract\v1\SendCustomerTransactionReceiptRequest' => $libDir . 'net/authorize/api/contract/v1/SendCustomerTransactionReceiptRequest.php', 'net\authorize\api\contract\v1\SendCustomerTransactionReceiptResponse' => $libDir . 'net/authorize/api/contract/v1/SendCustomerTransactionReceiptResponse.php', 'net\authorize\api\contract\v1\SettingType' => $libDir . 'net/authorize/api/contract/v1/SettingType.php', 'net\authorize\api\contract\v1\SolutionType' => $libDir . 'net/authorize/api/contract/v1/SolutionType.php', 'net\authorize\api\contract\v1\SubMerchantType' => $libDir . 'net/authorize/api/contract/v1/SubMerchantType.php', 'net\authorize\api\contract\v1\SubscriptionCustomerProfileType' => $libDir . 'net/authorize/api/contract/v1/SubscriptionCustomerProfileType.php', 'net\authorize\api\contract\v1\SubscriptionDetailType' => $libDir . 'net/authorize/api/contract/v1/SubscriptionDetailType.php', 'net\authorize\api\contract\v1\SubscriptionPaymentType' => $libDir . 'net/authorize/api/contract/v1/SubscriptionPaymentType.php', 'net\authorize\api\contract\v1\TokenMaskedType' => $libDir . 'net/authorize/api/contract/v1/TokenMaskedType.php', 'net\authorize\api\contract\v1\TransactionDetailsType' => $libDir . 'net/authorize/api/contract/v1/TransactionDetailsType.php', 'net\authorize\api\contract\v1\TransactionListSortingType'=> $libDir . 'net/authorize/api/contract/v1/TransactionListSortingType.php', 'net\authorize\api\contract\v1\TransactionRequestType' => $libDir . 'net/authorize/api/contract/v1/TransactionRequestType.php', 'net\authorize\api\contract\v1\TransactionResponseType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType.php', 'net\authorize\api\contract\v1\TransactionSummaryType' => $libDir . 'net/authorize/api/contract/v1/TransactionSummaryType.php', 'net\authorize\api\contract\v1\TransRetailInfoType' => $libDir . 'net/authorize/api/contract/v1/TransRetailInfoType.php', 'net\authorize\api\contract\v1\UpdateCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerPaymentProfileRequest.php', 'net\authorize\api\contract\v1\UpdateCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerPaymentProfileResponse.php', 'net\authorize\api\contract\v1\UpdateCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerProfileRequest.php', 'net\authorize\api\contract\v1\UpdateCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerProfileResponse.php', 'net\authorize\api\contract\v1\UpdateCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerShippingAddressRequest.php', 'net\authorize\api\contract\v1\UpdateCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerShippingAddressResponse.php', 'net\authorize\api\contract\v1\UpdateHeldTransactionRequest'=> $libDir . 'net/authorize/api/contract/v1/UpdateHeldTransactionRequest.php', 'net\authorize\api\contract\v1\UpdateHeldTransactionResponse'=> $libDir . 'net/authorize/api/contract/v1/UpdateHeldTransactionResponse.php', 'net\authorize\api\contract\v1\UpdateSplitTenderGroupRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateSplitTenderGroupRequest.php', 'net\authorize\api\contract\v1\UpdateSplitTenderGroupResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateSplitTenderGroupResponse.php', 'net\authorize\api\contract\v1\UserFieldType' => $libDir . 'net/authorize/api/contract/v1/UserFieldType.php', 'net\authorize\api\contract\v1\ValidateCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/ValidateCustomerPaymentProfileRequest.php', 'net\authorize\api\contract\v1\ValidateCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/ValidateCustomerPaymentProfileResponse.php', 'net\authorize\api\contract\v1\WebCheckOutDataType' => $libDir . 'net/authorize/api/contract/v1/WebCheckOutDataType.php', 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType.php', 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/DeviceInfoAType.php', 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/EncryptedDataAType.php', 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/ModeAType.php', 'net\authorize\api\contract\v1\MessagesType\MessageAType' => $libDir . 'net/authorize/api/contract/v1/MessagesType/MessageAType.php', 'net\authorize\api\contract\v1\PaymentScheduleType\IntervalAType' => $libDir . 'net/authorize/api/contract/v1/PaymentScheduleType/IntervalAType.php', 'net\authorize\api\contract\v1\TransactionRequestType\UserFieldsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionRequestType/UserFieldsAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\MessagesAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/MessagesAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/PrePaidCardAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/SecureAcceptanceAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\UserFieldsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/UserFieldsAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType/ErrorAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/MessagesAType/MessageAType.php', 'net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType/SplitTenderPaymentAType.php', 'net\authorize\api\contract\v1\WebCheckOutDataType\TokenAType' => $libDir . 'net/authorize/api/contract/v1/WebCheckOutDataType/TokenAType.php', 'net\authorize\api\contract\v1\GetTransactionListForCustomerRequest' => $libDir . 'net/authorize/api/contract/v1/GetTransactionListForCustomerRequest.php', 'net\authorize\api\contract\v1\GetAUJobSummaryRequest' => $libDir . 'net/authorize/api/contract/v1/getAUJobSummaryRequest.php', 'net\authorize\api\contract\v1\GetAUJobSummaryResponse' => $libDir . 'net/authorize/api/contract/v1/GetAUJobSummaryResponse.php', 'net\authorize\api\contract\v1\GetAUJobDetailsRequest' => $libDir . 'net/authorize/api/contract/v1/GetAUJobDetailsRequest.php', 'net\authorize\api\contract\v1\GetAUJobDetailsResponse' => $libDir . 'net/authorize/api/contract/v1/GetAUJobDetailsResponse.php', 'net\authorize\api\contract\v1\AuDeleteType' => $libDir . 'net/authorize/api/contract/v1/AuDeleteType.php', 'net\authorize\api\contract\v1\AuDetailsType' => $libDir . 'net/authorize/api/contract/v1/AuDetailsType.php', 'net\authorize\api\contract\v1\AuResponseType' => $libDir . 'net/authorize/api/contract/v1/AuResponseType.php', 'net\authorize\api\contract\v1\AuUpdateType' => $libDir . 'net/authorize/api/contract/v1/AuUpdateType.php', 'net\authorize\api\contract\v1\ListOfAUDetailsType' => $libDir . 'net/authorize/api/contract/v1/ListOfAUDetailsType.php', 'net\authorize\api\contract\v1\EmvTagType' => $libDir . 'net/authorize/api/contract/v1/EmvTagType.php', 'net\authorize\api\contract\v1\PaymentEmvType' => $libDir . 'net/authorize/api/contract/v1/PaymentEmvType.php', 'net\authorize\api\contract\v1\OtherTaxType' => $libDir . 'net/authorize/api/contract/v1/OtherTaxType.php', 'net\authorize\api\contract\v1\UpdateMerchantDetailsRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateMerchantDetailsRequest.php', 'net\authorize\api\contract\v1\UpdateMerchantDetailsResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateMerchantDetailsResponse.php', 'net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType' => $libDir . 'net/authorize/api/contract/v1/WebCheckOutDataTypeTokenType.php', //Controllers 'net\authorize\api\controller\ARBCancelSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBCancelSubscriptionController.php', 'net\authorize\api\controller\ARBCreateSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBCreateSubscriptionController.php', 'net\authorize\api\controller\ARBGetSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBGetSubscriptionController.php', 'net\authorize\api\controller\ARBGetSubscriptionListController' => $libDir . 'net/authorize/api/controller/ARBGetSubscriptionListController.php', 'net\authorize\api\controller\ARBGetSubscriptionStatusController' => $libDir . 'net/authorize/api/controller/ARBGetSubscriptionStatusController.php', 'net\authorize\api\controller\ARBUpdateSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBUpdateSubscriptionController.php', 'net\authorize\api\controller\AuthenticateTestController' => $libDir . 'net/authorize/api/controller/AuthenticateTestController.php', 'net\authorize\api\controller\CreateCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/CreateCustomerPaymentProfileController.php', 'net\authorize\api\controller\CreateCustomerProfileController' => $libDir . 'net/authorize/api/controller/CreateCustomerProfileController.php', 'net\authorize\api\controller\CreateCustomerProfileFromTransactionController' => $libDir . 'net/authorize/api/controller/CreateCustomerProfileFromTransactionController.php', 'net\authorize\api\controller\CreateCustomerProfileTransactionController' => $libDir . 'net/authorize/api/controller/CreateCustomerProfileTransactionController.php', 'net\authorize\api\controller\CreateCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/CreateCustomerShippingAddressController.php', 'net\authorize\api\controller\CreateTransactionController' => $libDir . 'net/authorize/api/controller/CreateTransactionController.php', 'net\authorize\api\controller\DecryptPaymentDataController' => $libDir . 'net/authorize/api/controller/DecryptPaymentDataController.php', 'net\authorize\api\controller\DeleteCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/DeleteCustomerPaymentProfileController.php', 'net\authorize\api\controller\DeleteCustomerProfileController' => $libDir . 'net/authorize/api/controller/DeleteCustomerProfileController.php', 'net\authorize\api\controller\DeleteCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/DeleteCustomerShippingAddressController.php', 'net\authorize\api\controller\GetAUJobDetailsController' => $libDir . 'net/authorize/api/controller/GetAUJobDetailsController.php', 'net\authorize\api\controller\GetAUJobSummaryController' => $libDir . 'net/authorize/api/controller/GetAUJobSummaryController.php', 'net\authorize\api\controller\GetBatchStatisticsController' => $libDir . 'net/authorize/api/controller/GetBatchStatisticsController.php', 'net\authorize\api\controller\GetCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/GetCustomerPaymentProfileController.php', 'net\authorize\api\controller\GetCustomerPaymentProfileListController' => $libDir . 'net/authorize/api/controller/GetCustomerPaymentProfileListController.php', 'net\authorize\api\controller\GetCustomerProfileController' => $libDir . 'net/authorize/api/controller/GetCustomerProfileController.php', 'net\authorize\api\controller\GetCustomerProfileIdsController' => $libDir . 'net/authorize/api/controller/GetCustomerProfileIdsController.php', 'net\authorize\api\controller\GetCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/GetCustomerShippingAddressController.php', 'net\authorize\api\controller\GetHostedPaymentPageController' => $libDir . 'net/authorize/api/controller/GetHostedPaymentPageController.php', 'net\authorize\api\controller\GetHostedProfilePageController' => $libDir . 'net/authorize/api/controller/GetHostedProfilePageController.php', 'net\authorize\api\controller\GetMerchantDetailsController' => $libDir . 'net/authorize/api/controller/GetMerchantDetailsController.php', 'net\authorize\api\controller\GetSettledBatchListController' => $libDir . 'net/authorize/api/controller/GetSettledBatchListController.php', 'net\authorize\api\controller\GetTransactionDetailsController' => $libDir . 'net/authorize/api/controller/GetTransactionDetailsController.php', 'net\authorize\api\controller\GetTransactionListController' => $libDir . 'net/authorize/api/controller/GetTransactionListController.php', 'net\authorize\api\controller\GetTransactionListForCustomerController' => $libDir . 'net/authorize/api/controller/GetTransactionListForCustomerController.php', 'net\authorize\api\controller\GetUnsettledTransactionListController' => $libDir . 'net/authorize/api/controller/GetUnsettledTransactionListController.php', 'net\authorize\api\controller\IsAliveController' => $libDir . 'net/authorize/api/controller/IsAliveController.php', 'net\authorize\api\controller\LogoutController' => $libDir . 'net/authorize/api/controller/LogoutController.php', 'net\authorize\api\controller\MobileDeviceLoginController' => $libDir . 'net/authorize/api/controller/MobileDeviceLoginController.php', 'net\authorize\api\controller\MobileDeviceRegistrationController' => $libDir . 'net/authorize/api/controller/MobileDeviceRegistrationController.php', 'net\authorize\api\controller\SecurePaymentContainerController' => $libDir . 'net/authorize/api/controller/SecurePaymentContainerController.php', 'net\authorize\api\controller\SendCustomerTransactionReceiptController' => $libDir . 'net/authorize/api/controller/SendCustomerTransactionReceiptController.php', 'net\authorize\api\controller\UpdateCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/UpdateCustomerPaymentProfileController.php', 'net\authorize\api\controller\UpdateCustomerProfileController' => $libDir . 'net/authorize/api/controller/UpdateCustomerProfileController.php', 'net\authorize\api\controller\UpdateCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/UpdateCustomerShippingAddressController.php', 'net\authorize\api\controller\UpdateHeldTransactionController' => $libDir . 'net/authorize/api/controller/UpdateHeldTransactionController.php', 'net\authorize\api\controller\UpdateMerchantDetailsController' => $libDir . 'net/authorize/api/controller/UpdateMerchantDetailsController.php', 'net\authorize\api\controller\UpdateSplitTenderGroupController' => $libDir . 'net/authorize/api/controller/UpdateSplitTenderGroupController.php', 'net\authorize\api\controller\ValidateCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/ValidateCustomerPaymentProfileController.php' ); AnetApiSchema.xsd 0000644 00000622571 15107327164 0007751 0 ustar 00 <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:anet="AnetApi/xml/v1/schema/AnetApiSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="AnetApi/xml/v1/schema/AnetApiSchema.xsd" elementFormDefault="qualified"> <!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Request type definitions begin here xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --> <xs:simpleType name="numericString"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]+"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="alphaNumericString"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9a-zA-Z]+"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="alphaNumericSpaceString"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9a-zA-Z\s]+"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:complexType name="ArrayOfLong"> <xs:sequence> <xs:element name="long" type="xs:long" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfNumericString"> <xs:sequence> <xs:element name="numericString" type="anet:numericString" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfString"> <xs:sequence> <xs:element name="string" type="xs:string" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfLineItem"> <xs:sequence> <xs:element name="lineItem" type="anet:lineItemType" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfBatchStatisticType"> <xs:sequence> <xs:element name="statistic" type="anet:batchStatisticType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfBatchDetailsType"> <xs:sequence> <xs:element name="batch" type="anet:batchDetailsType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfTransactionSummaryType"> <xs:sequence> <xs:element name="transaction" type="anet:transactionSummaryType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ARBTransactionList"> <xs:sequence> <xs:element name="arbTransaction" type="anet:arbTransaction" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfSetting"> <xs:sequence> <xs:element name="setting" type="anet:settingType" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfFDSFilter"> <xs:sequence> <xs:element name="FDSFilter" type="anet:FDSFilterType" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfPermissionType"> <xs:sequence> <xs:element name="permission" type="anet:permissionType" nillable="false" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfContactDetail"> <xs:sequence> <xs:element name="contactDetail" type="anet:ContactDetailType" nillable="false" minOccurs="0" maxOccurs="unbounded"></xs:element> </xs:sequence> </xs:complexType> <!-- ============================================================================== Reason for MasterCard Auth Indicator Transaction Value ============================================================================== --> <xs:simpleType name="authIndicatorEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="pre"/> <xs:enumeration value="final"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="bankAccountTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="checking"/> <xs:enumeration value="savings"/> <xs:enumeration value="businessChecking"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="echeckTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="PPD"/> <xs:enumeration value="WEB"/> <xs:enumeration value="CCD"/> <xs:enumeration value="TEL"/> <xs:enumeration value="ARC"/> <xs:enumeration value="BOC"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="paymentMethodEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="creditCard"/> <xs:enumeration value="eCheck"/> <xs:enumeration value="payPal"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="cardTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="Visa"/> <xs:enumeration value="MasterCard"/> <xs:enumeration value="AmericanExpress"/> <xs:enumeration value="Discover"/> <xs:enumeration value="JCB"/> <xs:enumeration value="DinersClub"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="accountTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="Visa"/> <xs:enumeration value="MasterCard"/> <xs:enumeration value="AmericanExpress"/> <xs:enumeration value="Discover"/> <xs:enumeration value="JCB"/> <xs:enumeration value="DinersClub"/> <xs:enumeration value="eCheck"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="customerTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="individual"/> <xs:enumeration value="business"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="ARBSubscriptionUnitEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="days"/> <xs:enumeration value="months"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="validationModeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="none"/> <xs:enumeration value="testMode"/> <xs:enumeration value="liveMode"/> <xs:enumeration value="oldLiveMode"/> <!-- Free test-mode transaction. No validation against live cardholder account. --> <!-- Validate against live cardholder account for 0.00 if available, 0.01 otherwise. --> <!-- Validate against live cardholder account for 0.01 even if 0.00 option is available. NOT RECOMMENDED. Use of this option can result in fines from your processor. --> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="splitTenderStatusEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="completed"/> <xs:enumeration value="held"/> <xs:enumeration value="voided"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="ARBSubscriptionStatusEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="active"/> <xs:enumeration value="expired"/> <xs:enumeration value="suspended"/> <xs:enumeration value="canceled"/> <xs:enumeration value="terminated"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="transactionTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="authOnlyTransaction"/> <xs:enumeration value="authCaptureTransaction"/> <xs:enumeration value="captureOnlyTransaction"/> <xs:enumeration value="refundTransaction"/> <xs:enumeration value="priorAuthCaptureTransaction"/> <xs:enumeration value="voidTransaction"/> <xs:enumeration value="getDetailsTransaction"/> <xs:enumeration value="authOnlyContinueTransaction"/> <xs:enumeration value="authCaptureContinueTransaction"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="transactionStatusEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="authorizedPendingCapture"/> <xs:enumeration value="capturedPendingSettlement"/> <xs:enumeration value="communicationError"/> <xs:enumeration value="refundSettledSuccessfully"/> <xs:enumeration value="refundPendingSettlement"/> <xs:enumeration value="approvedReview"/> <xs:enumeration value="declined"/> <xs:enumeration value="couldNotVoid"/> <xs:enumeration value="expired"/> <xs:enumeration value="generalError"/> <xs:enumeration value="pendingFinalSettlement"/> <xs:enumeration value="pendingSettlement"/> <xs:enumeration value="failedReview"/> <xs:enumeration value="settledSuccessfully"/> <xs:enumeration value="settlementError"/> <xs:enumeration value="underReview"/> <xs:enumeration value="updatingSettlement"/> <xs:enumeration value="voided"/> <xs:enumeration value="FDSPendingReview"/> <xs:enumeration value="FDSAuthorizedPendingReview"/> <xs:enumeration value="returnedItem"/> <xs:enumeration value="chargeback"/> <xs:enumeration value="chargebackReversal"/> <xs:enumeration value="authorizedPendingRelease"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="settlementStateEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="settledSuccessfully"/> <xs:enumeration value="settlementError"/> <xs:enumeration value="pendingSettlement"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="FDSFilterActionEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="reject"/> <xs:enumeration value="decline"/> <xs:enumeration value="hold"/> <xs:enumeration value="authAndHold"/> <xs:enumeration value="report"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="permissionsEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="API_Merchant_BasicReporting"/> <xs:enumeration value="Submit_Charge"/> <xs:enumeration value="Submit_Refund"/> <xs:enumeration value="Submit_Update"/> <xs:enumeration value="Mobile_Admin"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="deviceActivationEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="Activate"/> <xs:enumeration value="Disable"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="TransactionGroupStatusEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="any"/> <xs:enumeration value="pendingApproval"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="afdsTransactionEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="approve"/> <xs:enumeration value="decline"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:simpleType name="customerProfileTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="regular" /> <xs:enumeration value="guest" /> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:complexType name="driversLicenseType"> <xs:sequence> <!-- Format of number should be string or four X's followed by the last four digits. --> <xs:element name="number"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="state"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="2"/> <xs:maxLength value="2"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- Format of dateOfBirth should be xs:date (1965-01-28) or XX/XX/1965. --> <xs:element name="dateOfBirth"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="10"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="driversLicenseMaskedType"> <xs:sequence> <xs:element name="number"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="state"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="2"/> <xs:maxLength value="2"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="dateOfBirth"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="10"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="nameAndAddressType"> <xs:sequence> <xs:element name="firstName" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="lastName" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="company" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="address" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="city" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="state" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="zip" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="country" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="merchantContactType"> <xs:sequence> <xs:element name="merchantName" type="xs:string" minOccurs="0"/> <xs:element name="merchantAddress" type="xs:string" minOccurs="0"/> <xs:element name="merchantCity" type="xs:string" minOccurs="0"/> <xs:element name="merchantState" type="xs:string" minOccurs="0"/> <xs:element name="merchantZip" type="xs:string" minOccurs="0"/> <xs:element name="merchantPhone" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="transRetailInfoType"> <xs:sequence> <xs:element name="marketType" type="xs:string" default="2" minOccurs="0"/> <xs:element name="deviceType" type="xs:string" minOccurs="0"/> <xs:element name="customerSignature" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="terminalNumber" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="creditCardSimpleType"> <xs:sequence> <!-- Format of cardNumber should be numeric string or four X's followed by the last four digits. --> <xs:element name="cardNumber"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="16"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- Format of expirationDate should be gYearMonth (such as 2001-10) or four X's. --> <xs:element name="expirationDate"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="creditCardTrackType"> <xs:choice> <xs:element name="track1" type="xs:string"/> <xs:element name="track2" type="xs:string"/> </xs:choice> </xs:complexType> <xs:simpleType name="cardCode"> <xs:restriction base="anet:numericString"> <xs:minLength value="3"/> <xs:maxLength value="4"/> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:complexType name="creditCardType"> <xs:complexContent> <xs:extension base="anet:creditCardSimpleType"> <xs:sequence> <!-- cardCode may be passed in for validation but it will not be stored. --> <xs:element name="cardCode" type="anet:cardCode" minOccurs="0" maxOccurs="1"/> <!-- To identify whether the CardNumber passed in is a PaymentToken or a real creditCardNumber. --> <xs:element name="isPaymentToken" type="xs:boolean" minOccurs="0"/> <!-- If the CardNumber passed in is a paymentToken, a cryptogram is needed for one-off payments. --> <xs:element name="cryptogram" type="xs:string" minOccurs="0"/> <!-- This is only needed for chase pay. --> <xs:element name="tokenRequestorName" type="xs:string" minOccurs="0" maxOccurs="1"/> <!-- This is only needed for chase pay. --> <xs:element name="tokenRequestorId" type="xs:string" minOccurs="0" maxOccurs="1"/> <!-- This is only needed for chase pay. --> <xs:element name="tokenRequestorEci" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="creditCardMaskedType"> <xs:sequence> <xs:element name="cardNumber"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="expirationDate"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="cardType" type="xs:string" minOccurs="0"/> <!-- anet:cardTypeEnum --> <xs:element name="cardArt" type="anet:cardArt" minOccurs="0"/> <xs:element name="issuerNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="6"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="isPaymentToken" type="xs:boolean" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ccAuthenticationType"> <xs:sequence> <xs:element name="authenticationIndicator" type="xs:string"/> <xs:element name="cardholderAuthenticationValue" type="xs:string"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="bankAccountType"> <xs:sequence> <xs:element name="accountType" type="anet:bankAccountTypeEnum" minOccurs="0"/> <!-- Format of routingNumber should be nine digits or four X's followed by the last four digits. --> <xs:element name="routingNumber"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="9"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- Format of accountNumber should be numeric string or four X's followed by the last four digits. --> <xs:element name="accountNumber"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="17"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="nameOnAccount"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="22"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="echeckType" type="anet:echeckTypeEnum" minOccurs="0"/> <xs:element name="bankName" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="checkNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="15"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="bankAccountMaskedType"> <xs:sequence> <xs:element name="accountType" type="anet:bankAccountTypeEnum" minOccurs="0"/> <xs:element name="routingNumber"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="accountNumber"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="nameOnAccount"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="22"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="echeckType" type="anet:echeckTypeEnum" minOccurs="0"/> <xs:element name="bankName" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!--============= opaqueDataType ======================================================--> <xs:complexType name="opaqueDataType"> <xs:sequence> <xs:element name="dataDescriptor" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="dataValue" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="dataKey" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="expirationTimeStamp" type="xs:dateTime" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="paymentSimpleType"> <xs:sequence> <xs:choice> <xs:element name="creditCard" type="anet:creditCardSimpleType"/> <xs:element name="bankAccount" type="anet:bankAccountType"/> </xs:choice> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="paymentType"> <xs:sequence> <xs:choice> <xs:element name="creditCard" type="anet:creditCardType"/> <xs:element name="bankAccount" type="anet:bankAccountType"/> <xs:element name="trackData" type="anet:creditCardTrackType"/> <xs:element name="encryptedTrackData" type="anet:encryptedTrackDataType"/> <xs:element name="payPal" type="anet:payPalType"/> <xs:element name="opaqueData" type="anet:opaqueDataType"/> <xs:element name="emv" type="anet:paymentEmvType"/> </xs:choice> <xs:element name="dataSource" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="paymentMaskedType"> <xs:sequence> <xs:choice> <xs:element name="creditCard" type="anet:creditCardMaskedType"/> <xs:element name="bankAccount" type="anet:bankAccountMaskedType"/> <xs:element name="tokenInformation" type="anet:tokenMaskedType"/> </xs:choice> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="tokenMaskedType"> <xs:sequence> <xs:element name="tokenSource" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="tokenNumber" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="expirationDate" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="tokenRequestorId" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="orderType"> <xs:sequence> <xs:element name="invoiceNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="description" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="discountAmount" minOccurs="0" type="xs:decimal"/> <xs:element name="taxIsAfterDiscount" type="xs:boolean" minOccurs="0"> </xs:element> <xs:element name="totalTaxTypeCode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="3"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="purchaserVATRegistrationNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="21"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="merchantVATRegistrationNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="21"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="vatInvoiceReferenceNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="15"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="purchaserCode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="17"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="summaryCommodityCode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="purchaseOrderDateUTC" minOccurs="0" type="xs:date"/> <xs:element name="supplierOrderReference" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="authorizedContactName" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="36"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="cardAcceptorRefNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="amexDataTAA1" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="amexDataTAA2" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="amexDataTAA3" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="amexDataTAA4" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="orderExType"> <xs:complexContent> <xs:extension base="anet:orderType"> <xs:sequence> <xs:element name="purchaseOrderNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerType"> <xs:sequence> <xs:element name="type" type="anet:customerTypeEnum" minOccurs="0"/> <xs:element name="id" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="phoneNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="faxNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="driversLicense" type="anet:driversLicenseType" minOccurs="0"/> <xs:element name="taxId" minOccurs="0"> <xs:simpleType> <xs:restriction base="anet:numericString"> <xs:minLength value="9"/> <xs:maxLength value="9"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerDataType"> <xs:sequence> <xs:element name="type" type="anet:customerTypeEnum" minOccurs="0"/> <xs:element name="id" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="driversLicense" type="anet:driversLicenseType" minOccurs="0"/> <xs:element name="taxId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="9"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="merchantAuthenticationType"> <xs:sequence> <xs:element name="name" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- name="MerchantAuthenticationItemChoiceType" --> <xs:choice minOccurs="1" maxOccurs="1"> <xs:element name="transactionKey"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="16"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="sessionToken" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="impersonationAuthentication" type="anet:impersonationAuthenticationType" minOccurs="0" maxOccurs="1"/> <xs:element name="fingerPrint" type="anet:fingerPrintType" minOccurs="0" maxOccurs="1"/> <xs:element name="clientKey" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element maxOccurs="1" minOccurs="0" name="accessToken" type="xs:string"/> </xs:choice> <xs:element name="mobileDeviceId" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===========fingerPrint ========================== --> <xs:complexType name="fingerPrintType"> <xs:sequence> <xs:element name="hashValue" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="sequence" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="timestamp" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="currencyCode" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="amount" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===========Decryption Start ========================== --> <xs:complexType name="cardArt"> <xs:sequence> <xs:element name="cardBrand" type="xs:string" minOccurs="0"/> <xs:element name="cardImageHeight" type="xs:string" minOccurs="0"/> <xs:element name="cardImageUrl" type="xs:string" minOccurs="0"/> <xs:element name="cardImageWidth" type="xs:string" minOccurs="0"/> <xs:element name="cardType" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="paymentDetails"> <xs:sequence> <xs:element name="currency" type="xs:string" minOccurs="0"/> <xs:element name="promoCode" type="xs:string" minOccurs="0"/> <xs:element name="misc" type="xs:string" minOccurs="0"/> <xs:element name="giftWrap" type="xs:string" minOccurs="0"/> <xs:element name="discount" type="xs:string" minOccurs="0"/> <xs:element name="tax" type="xs:string" minOccurs="0"/> <xs:element name="shippingHandling" type="xs:string" minOccurs="0"/> <xs:element name="subTotal" type="xs:string" minOccurs="0"/> <xs:element name="orderID" type="xs:string" minOccurs="0"/> <xs:element name="amount" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:element name="decryptPaymentDataRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="opaqueData" type="anet:opaqueDataType" minOccurs="1" maxOccurs="1"/> <xs:element name="callId" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="decryptPaymentDataResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="shippingInfo" type="anet:customerAddressType" minOccurs="0"/> <xs:element name="billingInfo" type="anet:customerAddressType" minOccurs="0"/> <xs:element name="cardInfo" type="anet:creditCardMaskedType" minOccurs="0"/> <xs:element name="paymentDetails" type="anet:paymentDetails" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- ===========Decryption End ========================== --> <!-- ===========Encryption Start ========================== --> <xs:element name="securePaymentContainerRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="data" type="anet:webCheckOutDataType" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="securePaymentContainerResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="opaqueData" type="anet:opaqueDataType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:complexType name="webCheckOutDataType"> <xs:sequence> <xs:element name="type" type="anet:webCheckOutTypeEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="id" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="64"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="token" type="anet:webCheckOutDataTypeToken" minOccurs="0" maxOccurs="1"/> <xs:element name="bankToken" type="anet:bankAccountType" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="securePaymentContainerErrorType"> <xs:sequence> <xs:element name="code" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:simpleType name="webCheckOutTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="PAN"/> <xs:enumeration value="TOKEN"/> </xs:restriction> </xs:simpleType> <!-- ===========Encryption End ========================== --> <!-- ===========META CREDENTIALS========================== --> <xs:complexType name="impersonationAuthenticationType"> <xs:sequence> <xs:element name="partnerLoginId" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="partnerTransactionKey" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="16"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="paymentScheduleType"> <xs:sequence> <!-- required for a new schedule, optional when updating --> <xs:element name="interval" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="length"> <xs:simpleType> <xs:restriction base="xs:short"> <xs:minInclusive value="1"/> <xs:maxInclusive value="32000"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="unit" type="anet:ARBSubscriptionUnitEnum"/> </xs:sequence> </xs:complexType> </xs:element> <!-- required for a new schedule, not allowed when editting existing subscription --> <xs:element name="startDate" type="xs:date" minOccurs="0"/> <!-- required for a new schedule, optional when updating --> <xs:element name="totalOccurrences" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:short"> <xs:minInclusive value="1"/> <xs:maxInclusive value="32000"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- trialOccurrences is always optional --> <xs:element name="trialOccurrences" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:short"> <xs:minInclusive value="0"/> <xs:maxInclusive value="32000"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ARBSubscriptionType"> <xs:sequence> <xs:element name="name" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- paymentSchedule is required for a new subscription, optional if updating existing subscription --> <xs:element name="paymentSchedule" type="anet:paymentScheduleType" minOccurs="0"/> <xs:element name="amount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.01"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="trialAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="4"/> <xs:minInclusive value="0.00"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- required for Create, optional on Update --> <xs:element name="payment" type="anet:paymentType" minOccurs="0"/> <xs:element name="order" type="anet:orderType" minOccurs="0"/> <xs:element name="customer" type="anet:customerType" minOccurs="0"/> <xs:element name="billTo" type="anet:nameAndAddressType" minOccurs="0"/> <xs:element name="shipTo" type="anet:nameAndAddressType" minOccurs="0"/> <xs:element name="profile" type="anet:customerProfileIdType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ARBSubscriptionMaskedType"> <xs:sequence> <xs:element name="name" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- paymentSchedule is required for a new subscription, optional if updating existing subscription --> <xs:element name="paymentSchedule" type="anet:paymentScheduleType" minOccurs="0"/> <xs:element name="amount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.01"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="trialAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="4"/> <xs:minInclusive value="0.00"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="status" type="anet:ARBSubscriptionStatusEnum" minOccurs="0"/> <xs:element name="profile" type="anet:subscriptionCustomerProfileType" minOccurs="0"/> <xs:element name="order" type="anet:orderType" minOccurs="0"/> <xs:element name="arbTransactions" type="anet:ARBTransactionList" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="subscriptionCustomerProfileType"> <xs:complexContent> <xs:extension base="anet:customerProfileExType"> <xs:sequence> <xs:element name="paymentProfile" type="anet:customerPaymentProfileMaskedType" minOccurs="0" maxOccurs="1"/> <xs:element name="shippingProfile" type="anet:customerAddressExType" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="subscriptionPaymentType"> <xs:sequence> <xs:element name="id"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="payNum"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="fraudInformationType"> <xs:sequence> <xs:element name="fraudFilterList" type="anet:ArrayOfFraudFilterType" minOccurs="1" maxOccurs="1"/> <xs:element name="fraudAction"> <xs:simpleType> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfFraudFilterType"> <xs:sequence> <xs:element name="fraudFilter" type="xs:string" minOccurs="1" maxOccurs="1000"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="mobileDeviceType"> <xs:sequence> <xs:element name="mobileDeviceId" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="description" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="phoneNumber" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="devicePlatform" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="deviceActivation" type="anet:deviceActivationEnum" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- =================================================================== subMerchantType These are the fields that are used for a transaction request. =================================================================== --> <xs:complexType name="subMerchantType"> <xs:sequence> <xs:element name="identifier" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="doingBusinessAs" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="paymentServiceProviderName" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="paymentServiceFacilitator" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="streetAddress" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="phone" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="40" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="postalCode" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="city" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="regionCode" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="countryCode" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- =================================================================== transactionRequestType These are the fields that are used for a transaction request. =================================================================== --> <xs:complexType name="transactionRequestType"> <xs:sequence> <xs:element name="transactionType" type="xs:string" /> <xs:element name="amount" type="xs:decimal" minOccurs="0" /> <xs:element name="currencyCode" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element> <xs:element name="payment" type="anet:paymentType" minOccurs="0" /> <xs:element name="profile" type="anet:customerProfilePaymentType" minOccurs="0"/> <xs:element name="solution" type="anet:solutionType" minOccurs="0"/> <xs:element name="callId" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="terminalNumber" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="authCode" type="xs:string" minOccurs="0"/> <xs:element name="refTransId" type="xs:string" minOccurs="0"/> <xs:element name="splitTenderId" type="xs:string" minOccurs="0"/> <xs:element name="order" type="anet:orderType" minOccurs="0"/> <xs:element name="lineItems" type="anet:ArrayOfLineItem" minOccurs="0"/> <xs:element name="tax" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="duty" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="shipping" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="taxExempt" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:boolean"/> </xs:simpleType> </xs:element> <xs:element name="poNumber" type="xs:string" minOccurs="0"/> <xs:element name="customer" type="anet:customerDataType" minOccurs="0"/> <xs:element name="billTo" type="anet:customerAddressType" minOccurs="0"/> <xs:element name="shipTo" type="anet:nameAndAddressType" minOccurs="0"/> <xs:element name="customerIP" type="xs:string" minOccurs="0"/> <xs:element name="cardholderAuthentication" type="anet:ccAuthenticationType" minOccurs="0"/> <xs:element name="retail" type="anet:transRetailInfoType" minOccurs="0"/> <xs:element name="employeeId" type="xs:string" minOccurs="0"/> <xs:element name="transactionSettings" type="anet:ArrayOfSetting" minOccurs="0"> <xs:annotation> <xs:documentation>Allowed values for settingName are: emailCustomer, merchantEmail, allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling, duplicateWindow, testRequest.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="userFields" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="userField" type="anet:userField" minOccurs="0" maxOccurs="20"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="surcharge" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="merchantDescriptor" type="xs:string" minOccurs="0" /> <xs:element name="subMerchant" type="anet:subMerchantType" minOccurs="0" maxOccurs="1" /> <xs:element name="tip" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="processingOptions" type="anet:processingOptions" minOccurs="0" maxOccurs="1"/> <xs:element name="subsequentAuthInformation" type="anet:subsequentAuthInformation" minOccurs="0" maxOccurs="1"/> <xs:element name="otherTax" minOccurs="0" type="anet:otherTaxType" /> <xs:element name="shipFrom" minOccurs="0" type="anet:nameAndAddressType" /> <xs:element name="authorizationIndicatorType" type="anet:authorizationIndicatorType" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="KeyManagementScheme"> <xs:sequence> <xs:element name="DUKPT"> <xs:complexType> <xs:sequence> <xs:element name="Operation" type="anet:OperationType"/> <xs:element name="Mode"> <xs:complexType> <xs:sequence> <xs:element name="PIN" type="xs:string" minOccurs="0"/> <xs:element name="Data" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DeviceInfo"> <xs:complexType> <xs:sequence> <xs:element name="Description" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EncryptedData"> <xs:complexType> <xs:sequence> <xs:element name="Value" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:simpleType name="OperationType"> <xs:restriction base="xs:string"> <xs:enumeration value="DECRYPT"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EncryptionAlgorithmType"> <xs:restriction base="xs:string"> <xs:enumeration value="TDES"/> <xs:enumeration value="AES"/> <xs:enumeration value="RSA"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EncodingType"> <xs:restriction base="xs:string"> <xs:enumeration value="Base64"/> <xs:enumeration value="Hex"/> </xs:restriction> </xs:simpleType> <xs:complexType name="KeyValue"> <xs:sequence> <xs:element name="Encoding" type="anet:EncodingType"/> <xs:element name="EncryptionAlgorithm" type="anet:EncryptionAlgorithmType"/> <xs:element name="Scheme" type="anet:KeyManagementScheme"/> </xs:sequence> </xs:complexType> <xs:complexType name="KeyBlock"> <xs:sequence> <xs:element name="Value" type="anet:KeyValue"/> </xs:sequence> </xs:complexType> <xs:complexType name="encryptedTrackDataType"> <xs:sequence> <xs:element name="FormOfPayment" type="anet:KeyBlock"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="settingType"> <xs:sequence> <xs:element name="settingName" type="xs:string" minOccurs="0"/> <xs:element name="settingValue" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="permissionType"> <xs:sequence> <xs:element name="permissionName" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:simpleType name="settingNameEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="emailCustomer"> <xs:annotation> <xs:documentation>true/false. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="merchantEmail"> <xs:annotation> <xs:documentation>string. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="allowPartialAuth"> <xs:annotation> <xs:documentation>true/false. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="headerEmailReceipt"> <xs:annotation> <xs:documentation>string. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="footerEmailReceipt"> <xs:annotation> <xs:documentation>string. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="recurringBilling"> <xs:annotation> <xs:documentation>true/false. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="duplicateWindow"> <xs:annotation> <xs:documentation>number. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="testRequest"> <xs:annotation> <xs:documentation>true/false. Used by createTransaction method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileReturnUrl"> <xs:annotation> <xs:documentation>string. Used by getHostedProfilePage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileReturnUrlText"> <xs:annotation> <xs:documentation>string. Used by getHostedProfilePage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfilePageBorderVisible"> <xs:annotation> <xs:documentation>true/false. Used by getHostedProfilePage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileIFrameCommunicatorUrl"> <xs:annotation> <xs:documentation>string. Used by getHostedProfilePage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileHeadingBgColor"> <xs:annotation> <xs:documentation>#e0e0e0. Used by getHostedProfilePage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileValidationMode"> <xs:annotation> <xs:documentation> liveMode/testMode liveMode: generates a transaction to the processor in the amount of 0.01 or 0.00. is immediately voided, if successful. testMode: performs field validation only, all fields are validated except unrestricted field definitions (viz. telephone number) do not generate errors. If a validation transaction is unsuccessful, the profile is not created, and the merchant receives an error. </xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileBillingAddressRequired"> <xs:annotation> <xs:documentation>true/false. If true, sets First Name, Last Name, Address, City, State, and Zip Code as required fields in order for a payment profile to be created or updated within a hosted CIM form.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileCardCodeRequired"> <xs:annotation> <xs:documentation>true/false. If true, sets the Card Code field as required in order for a payment profile to be created or updated within a hosted CIM form.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileBillingAddressOptions"> <xs:annotation> <xs:documentation> showBillingAddress/showNone showBillingAddress: Allow merchant to show billing address. showNone : Hide billing address and billing name. </xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileManageOptions"> <xs:annotation> <xs:documentation> showAll/showPayment/ShowShipping showAll: Shipping and Payment profiles are shown on the manage page, this is the default. showPayment : Only Payment profiles are shown on the manage page. showShipping : Only Shippiung profiles are shown on the manage page. </xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentIFrameCommunicatorUrl"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentButtonOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentReturnOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentOrderOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentPaymentOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentBillingAddressOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentShippingAddressOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentSecurityOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentCustomerOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentStyleOptions"> <xs:annotation> <xs:documentation>JSON string. Used by getHostedPaymentPage method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="typeEmailReceipt"> <xs:annotation> <xs:documentation>JSON string. Used by sendCustomerTransactionReceipt method</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfilePaymentOptions"> <xs:annotation> <xs:documentation> showAll/showCreditCard/showBankAccount showAll: both CreditCard and BankAccount sections will be shown on Add payment page, this is the default. showCreditCard :only CreditCard payment form will be shown on Add payment page. showBankAccount :only BankAccount payment form will be shown on Add payment page. </xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedProfileSaveButtonText"> <xs:annotation> <xs:documentation>string. Used by getHostedProfilePage method to accept button text configuration.</xs:documentation> </xs:annotation> </xs:enumeration> <xs:enumeration value="hostedPaymentVisaCheckoutOptions"> <xs:annotation> <xs:documentation>string. Used by getHostedPaymentPage method to accept VisaCheckout configuration.</xs:documentation> </xs:annotation> </xs:enumeration> </xs:restriction> </xs:simpleType> <!-- ===================================================== --> <xs:complexType name="userField"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0"/> <xs:element name="value" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="emvTag"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0"/> <xs:element name="value" type="xs:string" minOccurs="0"/> <xs:element name="formatted" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerPaymentProfileBaseType"> <xs:sequence> <xs:element name="customerType" type="anet:customerTypeEnum" minOccurs="0"/> <xs:element name="billTo" type="anet:customerAddressType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerPaymentProfileType"> <xs:complexContent> <xs:extension base="anet:customerPaymentProfileBaseType"> <xs:sequence> <xs:element name="payment" type="anet:paymentType" minOccurs="0"/> <xs:element name="driversLicense" type="anet:driversLicenseType" minOccurs="0"/> <!-- Format of taxId should be numeric string or four X's followed by the last four digits. --> <xs:element name="taxId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="9"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="defaultPaymentProfile" type="xs:boolean" minOccurs="0"/> <xs:element name="subsequentAuthInformation" type="anet:subsequentAuthInformation" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerPaymentProfileExType"> <xs:complexContent> <xs:extension base="anet:customerPaymentProfileType"> <xs:sequence> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerPaymentProfileMaskedType"> <xs:complexContent> <xs:extension base="anet:customerPaymentProfileBaseType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="1"/> <xs:element name="defaultPaymentProfile" type="xs:boolean" minOccurs="0"/> <xs:element name="payment" type="anet:paymentMaskedType" minOccurs="0"/> <xs:element name="driversLicense" type="anet:driversLicenseMaskedType" minOccurs="0"/> <xs:element name="taxId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="subscriptionIds" type="anet:SubscriptionIdList" minOccurs="0" maxOccurs="1"/> <xs:element name="originalNetworkTransId" type="anet:networkTransId" minOccurs="0" maxOccurs="1"/> <xs:element name="originalAuthAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="SubscriptionIdList"> <xs:sequence> <xs:element name="subscriptionId" type="anet:numericString" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerProfileBaseType"> <xs:sequence> <xs:element name="merchantCustomerId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="description" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerProfileType"> <xs:complexContent> <xs:extension base="anet:customerProfileBaseType"> <xs:sequence> <xs:element name="paymentProfiles" type="anet:customerPaymentProfileType" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="shipToList" type="anet:customerAddressType" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="profileType" type="anet:customerProfileTypeEnum" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="paymentEmvType"> <xs:sequence> <xs:element name="emvData" minOccurs="1" maxOccurs="1"/> <xs:element name="emvDescriptor" minOccurs="1" maxOccurs="1"/> <xs:element name="emvVersion" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerProfileExType"> <xs:complexContent> <xs:extension base="anet:customerProfileBaseType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerProfileInfoExType"> <xs:complexContent> <xs:extension base="anet:customerProfileExType"> <xs:sequence> <xs:element name="profileType" type="anet:customerProfileTypeEnum" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerProfileMaskedType"> <xs:complexContent> <xs:extension base="anet:customerProfileExType"> <xs:sequence> <xs:element name="paymentProfiles" type="anet:customerPaymentProfileMaskedType" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="shipToList" type="anet:customerAddressExType" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="profileType" type="anet:customerProfileTypeEnum" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerAddressType"> <xs:complexContent> <xs:extension base="anet:nameAndAddressType"> <xs:sequence> <xs:element name="phoneNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="faxNumber" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="25"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="customerAddressExType"> <xs:complexContent> <xs:extension base="anet:customerAddressType"> <xs:sequence> <xs:element name="customerAddressId" type="anet:numericString" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="extendedAmountType"> <xs:sequence> <xs:element name="amount"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="name" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="31"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="description" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <!-- ===================================================== --> <xs:complexType name="otherTaxType"> <xs:sequence> <xs:element name="nationalTaxAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="localTaxAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="alternateTaxAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="alternateTaxId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="15"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="vatTaxRate" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:totalDigits value="5"/> <xs:fractionDigits value="5"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="vatTaxAmount" minOccurs="0" type="xs:decimal" /> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <!-- ===================================================== --> <xs:complexType name="lineItemType"> <xs:sequence> <xs:element name="itemId"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="31"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="name"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="31"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="description" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="quantity"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="unitPrice"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="taxable" minOccurs="0" type="xs:boolean" /> <xs:element name="unitOfMeasure" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="12"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="typeOfSupply" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="taxRate" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:totalDigits value="5"/> <xs:fractionDigits value="5"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="taxAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="nationalTax" minOccurs="0" type="xs:decimal"/> <xs:element name="localTax" minOccurs="0" type="xs:decimal"/> <xs:element name="vatRate" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:totalDigits value="5"/> <xs:fractionDigits value="5"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="alternateTaxId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="alternateTaxType" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="alternateTaxTypeApplied" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="alternateTaxRate" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:totalDigits value="5" /> <xs:fractionDigits value="5" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="alternateTaxAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="totalAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="commodityCode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="15"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="productCode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="productSKU" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="discountRate" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:totalDigits value="5" /> <xs:fractionDigits value="5" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="discountAmount" minOccurs="0" type="xs:decimal" /> <xs:element name="taxIncludedInTotal" minOccurs="0" type ="xs:boolean" /> <xs:element name="taxIsAfterDiscount" minOccurs="0" type="xs:boolean" > </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransAmountType"> <xs:sequence> <xs:element name="amount"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.01"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="tax" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="shipping" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="duty" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="lineItems" type="anet:lineItemType" minOccurs="0" maxOccurs="30"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransOrderType"> <xs:complexContent> <xs:extension base="anet:profileTransAmountType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerPaymentProfileId" type="anet:numericString"/> <xs:element name="customerShippingAddressId" type="anet:numericString" minOccurs="0"/> <xs:element name="order" type="anet:orderExType" minOccurs="0"/> <xs:element name="taxExempt" type="xs:boolean" minOccurs="0"/> <xs:element name="recurringBilling" type="xs:boolean" minOccurs="0"/> <xs:element name="cardCode" type="anet:cardCode" minOccurs="0" maxOccurs="1"/> <xs:element name="splitTenderId" type="anet:numericString" minOccurs="0"/> <xs:element name="processingOptions" type="anet:processingOptions" minOccurs="0" maxOccurs="1"/> <xs:element name="subsequentAuthInformation" type="anet:subsequentAuthInformation" minOccurs="0" maxOccurs="1"/> <xs:element name="authorizationIndicatorType" type="anet:authorizationIndicatorType" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransAuthCaptureType"> <xs:complexContent> <xs:extension base="anet:profileTransOrderType"/> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransAuthOnlyType"> <xs:complexContent> <xs:extension base="anet:profileTransOrderType"/> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransPriorAuthCaptureType"> <xs:complexContent> <xs:extension base="anet:profileTransAmountType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerShippingAddressId" type="anet:numericString" minOccurs="0"/> <xs:element name="transId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransCaptureOnlyType"> <xs:complexContent> <xs:extension base="anet:profileTransOrderType"> <xs:sequence> <xs:element name="approvalCode"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="6"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransRefundType"> <xs:complexContent> <xs:extension base="anet:profileTransAmountType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerShippingAddressId" type="anet:numericString" minOccurs="0"/> <!-- Format of creditCardNumberMasked should be four X's followed by the last four digits. --> <xs:element name="creditCardNumberMasked" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- Format of bankRoutingNumberMasked should be four X's followed by the last four digits. --> <xs:element name="bankRoutingNumberMasked" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <!-- Format of bankAccountNumberMasked should be four X's followed by the last four digits. --> <xs:element name="bankAccountNumberMasked" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="8"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="order" type="anet:orderExType" minOccurs="0"/> <xs:element name="transId" type="anet:numericString" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransVoidType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerShippingAddressId" type="anet:numericString" minOccurs="0"/> <xs:element name="transId" type="anet:numericString"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="profileTransactionType"> <xs:choice> <xs:element name="profileTransAuthCapture" type="anet:profileTransAuthCaptureType"/> <xs:element name="profileTransAuthOnly" type="anet:profileTransAuthOnlyType"/> <xs:element name="profileTransPriorAuthCapture" type="anet:profileTransPriorAuthCaptureType"/> <xs:element name="profileTransCaptureOnly" type="anet:profileTransCaptureOnlyType"/> <xs:element name="profileTransRefund" type="anet:profileTransRefundType"/> <xs:element name="profileTransVoid" type="anet:profileTransVoidType"/> </xs:choice> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="transactionSummaryType"> <xs:sequence> <xs:element name="transId" type="anet:numericString"/> <xs:element name="submitTimeUTC" type="xs:dateTime"/> <xs:element name="submitTimeLocal" type="xs:dateTime"/> <xs:element name="transactionStatus" type="xs:string"/> <!-- anet:transactionStatusEnum --> <xs:element name="invoiceNumber" type="xs:string" minOccurs="0"/> <xs:element name="firstName" type="xs:string" minOccurs="0"/> <xs:element name="lastName" type="xs:string" minOccurs="0"/> <xs:element name="accountType" type="xs:string"/> <!-- anet:accountTypeEnum --> <xs:element name="accountNumber" type="xs:string"/> <xs:element name="settleAmount" type="xs:decimal"/> <xs:element name="marketType" type="xs:string" minOccurs="0"/> <!-- anet:marketTypeEnum --> <xs:element name="product" type="xs:string" minOccurs="0"/> <!-- anet:productEnum --> <xs:element name="mobileDeviceId" type="xs:string" minOccurs="0"/> <xs:element name="subscription" type="anet:subscriptionPaymentType" minOccurs="0"/> <xs:element name="hasReturnedItems" type="xs:boolean" minOccurs="0"/> <xs:element name="fraudInformation" type="anet:fraudInformationType" minOccurs="0"/> <xs:element name="profile" type="anet:customerProfileIdType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="arbTransaction"> <xs:sequence> <xs:element name="transId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="response" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="submitTimeUTC" type="xs:dateTime" minOccurs="0" maxOccurs="1"/> <xs:element name="payNum" type="xs:int" minOccurs="0" maxOccurs="1"/> <xs:element name="attemptNum" type="xs:int" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="transactionDetailsType"> <xs:sequence> <xs:element name="transId" type="anet:numericString"/> <xs:element name="refTransId" type="anet:numericString" minOccurs="0"/> <xs:element name="splitTenderId" type="anet:numericString" minOccurs="0"/> <xs:element name="submitTimeUTC" type="xs:dateTime"/> <xs:element name="submitTimeLocal" type="xs:dateTime"/> <xs:element name="transactionType" type="xs:string"/> <!-- anet:transactionTypeEnum --> <xs:element name="transactionStatus" type="xs:string"/> <!-- anet:transactionStatusEnum --> <xs:element name="responseCode" type="xs:int"/> <xs:element name="responseReasonCode" type="xs:int"/> <xs:element name="subscription" type="anet:subscriptionPaymentType" minOccurs="0"/> <xs:element name="responseReasonDescription" type="xs:string"/> <xs:element name="authCode" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="6"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="AVSResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="1"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="cardCodeResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="1"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="CAVVResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="1"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="FDSFilterAction" type="xs:string" minOccurs="0"/> <!-- anet:FDSFilterActionEnum --> <xs:element name="FDSFilters" type="anet:ArrayOfFDSFilter" minOccurs="0"/> <xs:element name="batch" type="anet:batchDetailsType" minOccurs="0"/> <xs:element name="order" type="anet:orderExType" minOccurs="0"/> <xs:element name="requestedAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="authAmount"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="settleAmount"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="tax" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="shipping" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="duty" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="lineItems" type="anet:ArrayOfLineItem" minOccurs="0"/> <xs:element name="prepaidBalanceRemaining" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="taxExempt" type="xs:boolean" minOccurs="0"/> <xs:element name="payment" type="anet:paymentMaskedType"/> <xs:element name="customer" type="anet:customerDataType" minOccurs="0"/> <xs:element name="billTo" type="anet:customerAddressType" minOccurs="0"/> <xs:element name="shipTo" type="anet:nameAndAddressType" minOccurs="0"/> <xs:element name="recurringBilling" type="xs:boolean" minOccurs="0"/> <xs:element name="customerIP" type="xs:string" minOccurs="0"/> <xs:element name="product" type="xs:string" minOccurs="0"/> <xs:element name="entryMode" type="xs:string" minOccurs="0"/> <xs:element name="marketType" type="xs:string" minOccurs="0"/> <xs:element name="mobileDeviceId" type="xs:string" minOccurs="0"/> <xs:element name="customerSignature" type="xs:string" minOccurs="0"/> <xs:element name="returnedItems" type="anet:ArrayOfReturnedItem" minOccurs="0"/> <xs:element name="solution" type="anet:solutionType" minOccurs="0"/> <xs:element name="emvDetails" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="tag" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="tagId" type="xs:string"/> <xs:element name="data" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="profile" type="anet:customerProfileIdType" minOccurs="0"/> <xs:element name="surcharge" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="employeeId" type="xs:string" minOccurs="0" /> <xs:element name="tip" type="anet:extendedAmountType" minOccurs="0"/> <xs:element name="otherTax" minOccurs="0" type="anet:otherTaxType" /> <xs:element name="shipFrom" minOccurs="0" type="anet:nameAndAddressType" /> <xs:element name="networkTransId" type="anet:networkTransId" minOccurs="0" /> <xs:element name="originalNetworkTransId" type="anet:networkTransId" minOccurs="0" maxOccurs="1"/> <xs:element name="originalAuthAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="authorizationIndicator" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="solutionType"> <xs:sequence> <xs:element name="id" type="xs:string" maxOccurs="1"/> <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="vendorName" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ArrayOfReturnedItem"> <xs:sequence> <xs:element name="returnedItem" type="anet:returnedItemType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="returnedItemType"> <xs:sequence> <xs:element name="id" type="anet:numericString"/> <xs:element name="dateUTC" type="xs:dateTime"/> <xs:element name="dateLocal" type="xs:dateTime"/> <xs:element name="code" type="xs:string"/> <xs:element name="description" type="xs:string"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="FDSFilterType"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="action" type="xs:string"/> <!-- anet:FDSFilterActionEnum --> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="batchDetailsType"> <xs:sequence> <xs:element name="batchId" type="anet:numericString"/> <xs:element name="settlementTimeUTC" type="xs:dateTime" minOccurs="0"/> <xs:element name="settlementTimeLocal" type="xs:dateTime" minOccurs="0"/> <xs:element name="settlementState" type="xs:string"/> <!-- anet:settlementStateEnum --> <xs:element name="paymentMethod" type="xs:string" minOccurs="0"/> <!-- anet:paymentMethodEnum --> <xs:element name="marketType" type="xs:string" minOccurs="0"/> <!-- anet:marketTypeEnum --> <xs:element name="product" type="xs:string" minOccurs="0"/> <!-- anet:productEnum --> <xs:element name="statistics" type="anet:ArrayOfBatchStatisticType" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="batchStatisticType"> <xs:sequence> <xs:element name="accountType" type="xs:string"/> <!-- anet:accountTypeEnum --> <xs:element name="chargeAmount" type="xs:decimal"/> <xs:element name="chargeCount" type="xs:int"/> <xs:element name="refundAmount" type="xs:decimal"/> <xs:element name="refundCount" type="xs:int"/> <xs:element name="voidCount" type="xs:int"/> <xs:element name="declineCount" type="xs:int"/> <xs:element name="errorCount" type="xs:int"/> <xs:element name="returnedItemAmount" type="xs:decimal" minOccurs="0" maxOccurs="1"/> <xs:element name="returnedItemCount" type="xs:int" minOccurs="0"/> <xs:element name="chargebackAmount" type="xs:decimal" minOccurs="0"/> <xs:element name="chargebackCount" type="xs:int" minOccurs="0"/> <xs:element name="correctionNoticeCount" type="xs:int" minOccurs="0"/> <xs:element name="chargeChargeBackAmount" type="xs:decimal" minOccurs="0"/> <xs:element name="chargeChargeBackCount" type="xs:int" minOccurs="0"/> <xs:element name="refundChargeBackAmount" type="xs:decimal" minOccurs="0"/> <xs:element name="refundChargeBackCount" type="xs:int" minOccurs="0"/> <xs:element name="chargeReturnedItemsAmount" type="xs:decimal" minOccurs="0"/> <xs:element name="chargeReturnedItemsCount" type="xs:int" minOccurs="0"/> <xs:element name="refundReturnedItemsAmount" type="xs:decimal" minOccurs="0"/> <xs:element name="refundReturnedItemsCount" type="xs:int" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="transactionResponse"> <xs:sequence> <xs:element name="responseCode" type="xs:string" minOccurs="0"/> <xs:element name="rawResponseCode" type="xs:string" minOccurs="0"/> <xs:element name="authCode" type="xs:string" minOccurs="0"/> <xs:element name="avsResultCode" type="xs:string" minOccurs="0"/> <xs:element name="cvvResultCode" type="xs:string" minOccurs="0"/> <xs:element name="cavvResultCode" type="xs:string" minOccurs="0"/> <xs:element name="transId" type="xs:string" minOccurs="0"/> <xs:element name="refTransID" type="xs:string" minOccurs="0"/> <xs:element name="transHash" type="xs:string" minOccurs="0"/> <xs:element name="testRequest" type="xs:string" minOccurs="0"/> <xs:element name="accountNumber" type="xs:string" minOccurs="0"/> <xs:element name="entryMode" type="xs:string" minOccurs="0"/> <xs:element name="accountType" type="xs:string" minOccurs="0"/> <xs:element name="splitTenderId" type="xs:string" minOccurs="0"/> <xs:element name="prePaidCard" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="requestedAmount" type="xs:string" minOccurs="0"/> <xs:element name="approvedAmount" type="xs:string" minOccurs="0"/> <xs:element name="balanceOnCard" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="messages" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="message" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="code" type="xs:string" minOccurs="0"/> <xs:element name="description" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="errors" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="error" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="errorCode" type="xs:string" minOccurs="0"/> <xs:element name="errorText" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="splitTenderPayments" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="splitTenderPayment" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="transId" type="xs:string" minOccurs="0"/> <xs:element name="responseCode" type="xs:string" minOccurs="0"/> <xs:element name="responseToCustomer" type="xs:string" minOccurs="0"/> <xs:element name="authCode" type="xs:string" minOccurs="0"/> <xs:element name="accountNumber" type="xs:string" minOccurs="0"/> <xs:element name="accountType" type="xs:string" minOccurs="0"/> <xs:element name="requestedAmount" type="xs:string" minOccurs="0"/> <xs:element name="approvedAmount" type="xs:string" minOccurs="0"/> <xs:element name="balanceOnCard" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="userFields" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="userField" type="anet:userField" minOccurs="0" maxOccurs="20"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="shipTo" type="anet:nameAndAddressType" minOccurs="0"/> <xs:element name="secureAcceptance" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="SecureAcceptanceUrl" type="xs:string" minOccurs="0"/> <xs:element name="PayerID" type="xs:string" minOccurs="0"/> <xs:element name="PayerEmail" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="emvResponse" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="tlvData" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="tags" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="tag" type="anet:emvTag" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="transHashSha2" type="xs:string" minOccurs="0"/> <xs:element name="profile" type="anet:customerProfileIdType" minOccurs="0"/> <xs:element name="networkTransId" type="anet:networkTransId" minOccurs="0"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="ContactDetailType"> <xs:sequence> <xs:element name="email" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="firstName" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="lastName" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- =================================================================== The ANetApiRequest defines elements common to all API method requests. =================================================================== --> <xs:complexType name="ANetApiRequest"> <xs:sequence> <xs:element name="merchantAuthentication" type="anet:merchantAuthenticationType"/> <!-- Identifier of the API client application/SDK/library/binding e.g. PHP-SDK-1.0.9.1, ACTIVE_MERCHANT, etc. --> <xs:element name="clientId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="refId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="emailSettingsType"> <xs:annotation> <xs:documentation>Allowed values for settingName are: headerEmailReceipt and footerEmailReceipt</xs:documentation> </xs:annotation> <xs:complexContent> <xs:extension base="anet:ArrayOfSetting"> <xs:attribute name="version" use="optional"> <xs:simpleType> <xs:restriction base="xs:integer"/> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> <!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Response type definitions begin here xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --> <!-- =================================================================== The messagesType provides the result of the request. The resultCode element provides the overall result of the request. The individual message(s) provide more detail, especially for errors, about the result. Ok - The request was processed and accepted without error. If any messages are present they will be informational only. Error - The request resulted in one or more errors. See messages for details. =================================================================== --> <xs:simpleType name="messageTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="Ok"/> <xs:enumeration value="Error"/> </xs:restriction> </xs:simpleType> <xs:complexType name="messagesType"> <xs:sequence> <xs:element name="resultCode" type="anet:messageTypeEnum"/> <xs:element name="message" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="code" type="xs:string"/> <xs:element name="text" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <!-- =================================================================== The ANetApiResponse defines elements common to all API method responses. =================================================================== --> <xs:complexType name="ANetApiResponse"> <xs:sequence> <xs:element name="refId" type="xs:string" minOccurs="0"/> <xs:sequence> <xs:element name="messages" type="anet:messagesType"/> </xs:sequence> <xs:element name="sessionToken" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx API method definitions begin here xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --> <!-- =================================================================== errorResponse This is the response when an error occurs before the method can be determined, such as an "unknown method" type of error. =================================================================== --> <xs:element name="ErrorResponse" type="anet:ANetApiResponse"/> <!-- =================================================================== isAliveRequest This method is used to test the availability of the API. =================================================================== --> <xs:element name="isAliveRequest"> <xs:complexType> <xs:sequence> <xs:element name="refId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <!-- =================================================================== isAliveResponse This is the response to isAliveRequest. =================================================================== --> <xs:element name="isAliveResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== authenticateTestRequest This method is used to test the availability of the API. =================================================================== --> <xs:element name="authenticateTestRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== authenticateTestResponse This is the response to authenticateTestRequest. =================================================================== --> <xs:element name="authenticateTestResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBCreateSubscriptionRequest This method is used to create a new ARB subscription. The merchant must be signed up for the ARB service to use it. =================================================================== --> <xs:element name="ARBCreateSubscriptionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="subscription" type="anet:ARBSubscriptionType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBCreateSubscriptionResponse This is the response to ARBCreateSubscriptionRequest. =================================================================== --> <xs:element name="ARBCreateSubscriptionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- subscriptionId will only be present if a subscription was created. --> <xs:element name="subscriptionId" type="anet:numericString" minOccurs="0"/> <xs:element name="profile" type="anet:customerProfileIdType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBUpdateSubscriptionRequest This method is used to update an existing ARB subscription. The merchant must be signed up for the ARB service to use it. =================================================================== --> <xs:element name="ARBUpdateSubscriptionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="subscriptionId" type="anet:numericString"/> <xs:element name="subscription" type="anet:ARBSubscriptionType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBUpdateSubscriptionResponse This is the response to ARBUpdateSubscriptionResponse. =================================================================== --> <xs:element name="ARBUpdateSubscriptionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="profile" type="anet:customerProfileIdType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBCancelSubscriptionRequest This method is used to cancel an existing ARB subscription. The merchant must be signed up for the ARB service to use it. =================================================================== --> <xs:element name="ARBCancelSubscriptionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="subscriptionId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBCancelSubscriptionResponse This is the response to ARBCancelSubscriptionRequest. =================================================================== --> <xs:element name="ARBCancelSubscriptionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBGetSubscriptionStatusRequest This method is used to get the status of an existing ARB subscription. The merchant must be signed up for the ARB service to use it. =================================================================== --> <xs:element name="ARBGetSubscriptionStatusRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="subscriptionId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== ARBGetSubscriptionStatusResponse This is the response to ARBGetSubscriptionStatusRequest. =================================================================== --> <xs:element name="ARBGetSubscriptionStatusResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="status" type="anet:ARBSubscriptionStatusEnum" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerProfileRequest This method is used to create a new customer profile along with any customer payment profiles and customer shipping addresses for the customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="createCustomerProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="profile" type="anet:customerProfileType"/> <xs:element name="validationMode" type="anet:validationModeEnum" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerProfileResponse This is the response to createCustomerProfileRequest. =================================================================== --> <xs:element name="createCustomerProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- customerProfileId will only be present if a profile was created. --> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerPaymentProfileIdList" type="anet:ArrayOfNumericString"/> <xs:element name="customerShippingAddressIdList" type="anet:ArrayOfNumericString"/> <xs:element name="validationDirectResponseList" type="anet:ArrayOfString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createProfileResponse This is the partial response for createProfile in the transactionRequestType. =================================================================== --> <xs:complexType name="createProfileResponse"> <xs:sequence> <xs:element name="messages" type="anet:messagesType" minOccurs="1" maxOccurs="1"/> <!-- customerProfileId will only be present if a profile was created. --> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="customerPaymentProfileIdList" type="anet:ArrayOfNumericString" minOccurs="0" maxOccurs="1"/> <xs:element name="customerShippingAddressIdList" type="anet:ArrayOfNumericString" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- =================================================================== createCustomerPaymentProfileRequest This method is used to create a new customer payment profile for an existing customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="createCustomerPaymentProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="paymentProfile" type="anet:customerPaymentProfileType"/> <xs:element name="validationMode" type="anet:validationModeEnum" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerPaymentProfileResponse This is the response to createCustomerPaymentProfileRequest. =================================================================== --> <xs:element name="createCustomerPaymentProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- customerPaymentProfileId and customerProfileId will only be present if a payment profile was created or a duplicate payment profile was found. --> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0"/> <!-- validationDirectResponse will only be present if validationMode is testMode or liveMode. --> <xs:element name="validationDirectResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerShippingAddressRequest This method is used to create a new customer shipping address for an existing customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="createCustomerShippingAddressRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="address" type="anet:customerAddressType"/> <xs:element name="defaultShippingAddress" type="xs:boolean" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerShippingAddressResponse This is the response to createCustomerShippingAddressRequest. =================================================================== --> <xs:element name="createCustomerShippingAddressResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- customerAddressId and customerProfileId will only be present if a shipping address was created or a duplicate shipping address was found. --> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0"/> <xs:element name="customerAddressId" type="anet:numericString" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerProfileFromTransactionRequest This method is used to create a Customer profile, payment profile, and shipping profile from an existing successful transaction. =================================================================== --> <xs:element name="createCustomerProfileFromTransactionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="transId" type="anet:numericString" minOccurs="1" maxOccurs="1"/> <xs:element name="customer" type="anet:customerProfileBaseType" minOccurs="0" maxOccurs="1"/> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="defaultPaymentProfile" type="xs:boolean" minOccurs="0"/> <xs:element name="defaultShippingAddress" type="xs:boolean" minOccurs="0"/> <xs:element name="profileType" type="anet:customerProfileTypeEnum" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerProfileRequest This method is used to retrieve an existing customer profile along with all the customer payment profiles and customer shipping addresses for the customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="getCustomerProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="merchantCustomerId" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="unmaskExpirationDate" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="includeIssuerInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerProfileResponse This is the response to getCustomerProfileRequest. =================================================================== --> <xs:element name="getCustomerProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- profile will only be present if a profile was successfully retrieved. --> <xs:element name="profile" type="anet:customerProfileMaskedType" minOccurs="0"/> <xs:element name="subscriptionIds" type="anet:SubscriptionIdList" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerPaymentProfileRequest This method is used to retrieve an existing customer payment profile for a customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="getCustomerPaymentProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="unmaskExpirationDate" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="includeIssuerInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerPaymentProfileResponse This is the response to getCustomerPaymentProfileRequest. =================================================================== --> <xs:element name="getCustomerPaymentProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- paymentProfile and customerProfileId will only be present if a payment profile was successfully retrieved. --> <xs:element name="paymentProfile" type="anet:customerPaymentProfileMaskedType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerShippingAddressRequest This method is used to retrieve an existing customer shipping address for a customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="getCustomerShippingAddressRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerAddressId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerShippingAddressResponse This is the response to getCustomerShippingAddressRequest. =================================================================== --> <xs:element name="getCustomerShippingAddressResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- address and customerProfileId will only be present if a shipping address was successfully retrieved. --> <xs:element name="defaultShippingAddress" type="xs:boolean" minOccurs="0"/> <xs:element name="address" type="anet:customerAddressExType" minOccurs="0"/> <xs:element name="subscriptionIds" type="anet:SubscriptionIdList" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateCustomerProfileRequest This method is used to update an existing customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="updateCustomerProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="profile" type="anet:customerProfileInfoExType" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateCustomerProfileResponse This is the response to updateCustomerProfileRequest. =================================================================== --> <xs:element name="updateCustomerProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateCustomerPaymentProfileRequest This method is used to update an existing customer payment profile for a customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="updateCustomerPaymentProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="paymentProfile" type="anet:customerPaymentProfileExType"/> <xs:element name="validationMode" type="anet:validationModeEnum" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateCustomerPaymentProfileResponse This is the response to updateCustomerPaymentProfileRequest. =================================================================== --> <xs:element name="updateCustomerPaymentProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <!-- validationDirectResponse will only be present if validationMode is testMode or liveMode. --> <xs:element name="validationDirectResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateCustomerShippingAddressRequest This method is used to update an existing customer shipping address for a customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="updateCustomerShippingAddressRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="address" type="anet:customerAddressExType"/> <xs:element name="defaultShippingAddress" type="xs:boolean" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateCustomerShippingAddressResponse This is the response to updateCustomerShippingAddressRequest. =================================================================== --> <xs:element name="updateCustomerShippingAddressResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== deleteCustomerProfileRequest This method is used to delete an existing customer profile along with all the customer payment profiles and customer shipping addresses for the customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="deleteCustomerProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== deleteCustomerProfileResponse This is the response to deleteCustomerProfileRequest. =================================================================== --> <xs:element name="deleteCustomerProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== deleteCustomerPaymentProfileRequest This method is used to delete an existing customer payment profile from a customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="deleteCustomerPaymentProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerPaymentProfileId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== deleteCustomerPaymentProfileResponse This is the response to deleteCustomerPaymentProfileRequest. =================================================================== --> <xs:element name="deleteCustomerPaymentProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== deleteCustomerShippingAddressRequest This method is used to delete an existing customer shipping address from a customer profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="deleteCustomerShippingAddressRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerAddressId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== deleteCustomerShippingAddressResponse This is the response to deleteCustomerShippingAddressRequest. =================================================================== --> <xs:element name="deleteCustomerShippingAddressResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerProfileTransactionRequest This method is used to generate a payment transaction for a customer payment profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="createCustomerProfileTransactionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="transaction" type="anet:profileTransactionType"/> <xs:element name="extraOptions" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="1024"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createCustomerProfileTransactionResponse This is the response to createCustomerProfileTransactionRequest. =================================================================== --> <xs:element name="createCustomerProfileTransactionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="transactionResponse" type="anet:transactionResponse" minOccurs="0"/> <xs:element name="directResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== validateCustomerPaymentProfileRequest This method is used to check a customer payment profile by generating a test transaction for it. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="validateCustomerPaymentProfileRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerPaymentProfileId" type="anet:numericString"/> <xs:element name="customerShippingAddressId" type="anet:numericString" minOccurs="0"/> <xs:element name="cardCode" type="anet:cardCode" minOccurs="0" maxOccurs="1"/> <xs:element name="validationMode" type="anet:validationModeEnum"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== validateCustomerPaymentProfileResponse This is the response to validateCustomerPaymentProfileRequest. =================================================================== --> <xs:element name="validateCustomerPaymentProfileResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="directResponse" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerProfileIdsRequest This method is used retrieve the customer profile ids for your account in case they get lost. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="getCustomerProfileIdsRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerProfileIdsResponse This is the response to getCustomerProfileIdsRequest. =================================================================== --> <xs:element name="getCustomerProfileIdsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="ids" type="anet:ArrayOfNumericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateSplitTenderGroupRequest This method is used to void or release an order after getting a partial authorization for a transaction. =================================================================== --> <xs:element name="updateSplitTenderGroupRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="splitTenderId" type="xs:string"/> <xs:element name="splitTenderStatus" type="anet:splitTenderStatusEnum"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateSplitTenderGroupResponse This is the response to updateSplitTenderGroupRequest. =================================================================== --> <xs:element name="updateSplitTenderGroupResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getTransactionDetailsRequest This method is used to retrieve detailed information about a single transaction. =================================================================== --> <xs:element name="getTransactionDetailsRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="transId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getTransactionDetailsResponse This is the response to getTransactionDetailsRequest. =================================================================== --> <xs:element name="getTransactionDetailsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="transaction" type="anet:transactionDetailsType"/> <!-- Identifier of the API client application/SDK/library/binding e.g. PHP-SDK-1.0.9.1, ACTIVE_MERCHANT, etc. --> <xs:element name="clientId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="transrefId" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createTransactionRequest This method is used to process transactions. =================================================================== --> <xs:element name="createTransactionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="transactionRequest" type="anet:transactionRequestType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== createTransactionResponse This is the response that will be returned to a client following any type of transaction request. =================================================================== --> <xs:element name="createTransactionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="transactionResponse" type="anet:transactionResponse"/> <xs:element name="profileResponse" type="anet:createProfileResponse" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== heldTransactionRequestType These are the fields that are used for a FDS transaction request. =================================================================== --> <xs:complexType name="heldTransactionRequestType"> <xs:sequence> <xs:element name="action" type="anet:afdsTransactionEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="refTransId" type="xs:string" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- =================================================================== updateHeldTransactionRequest This method is used to approve or decline suspicious transactions. =================================================================== --> <xs:element name="updateHeldTransactionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="heldTransactionRequest" type="anet:heldTransactionRequestType" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== updateHeldTransactionResponse This is the response that will be returned to a client following updateHeldTransactionRequest. =================================================================== --> <xs:element name="updateHeldTransactionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="transactionResponse" type="anet:transactionResponse" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getBatchStatisticsRequest This method is used to get the batch details for the specified BatchId =================================================================== --> <xs:element name="getBatchStatisticsRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="batchId" type="anet:numericString"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getBatchStatisticsResponse This is the response to getBatchStatisticsRequest. =================================================================== --> <xs:element name="getBatchStatisticsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="batch" type="anet:batchDetailsType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getSettledBatchListRequest This method is used to retrieve a list of settled batches. =================================================================== --> <xs:element name="getSettledBatchListRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="includeStatistics" type="xs:boolean" minOccurs="0"/> <xs:element name="firstSettlementDate" type="xs:dateTime" minOccurs="0"/> <xs:element name="lastSettlementDate" type="xs:dateTime" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getSettledBatchListResponse This is the response to getSettledBatchListRequest. =================================================================== --> <xs:element name="getSettledBatchListResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="batchList" type="anet:ArrayOfBatchDetailsType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getTransactionListRequest This method is used to retrieve a list of settled transactions. =================================================================== --> <xs:element name="getTransactionListRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="batchId" type="anet:numericString" minOccurs="0"/> <xs:element name="sorting" type="anet:TransactionListSorting" minOccurs="0" maxOccurs="1"/> <xs:element name="paging" type="anet:Paging" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getTransactionListResponse This is the response to getTransactionListRequest. =================================================================== --> <xs:element name="getTransactionListResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="transactions" type="anet:ArrayOfTransactionSummaryType" minOccurs="0"/> <xs:element name="totalNumInResultSet" type="xs:int" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getHostedProfilePageRequest This method is used to give access to the hosted customer profile page to one of your customers. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="getHostedProfilePageRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="hostedProfileSettings" type="anet:ArrayOfSetting" minOccurs="0"> <xs:annotation> <xs:documentation>Allowed values for settingName are: hostedProfileReturnUrl, hostedProfileReturnUrlText, hostedProfilePageBorderVisible, hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor, hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired, hostedProfileBillingAddressOptions, hostedProfileManageOptions, hostedProfilePaymentOptions, hostedProfileSaveButtonText.</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getHostedProfilePageResponse This is the response to getHostedProfilePageRequest. =================================================================== --> <xs:element name="getHostedProfilePageResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="token" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getUnsettledTransactionListRequest This method is used to retrieve a list of unsettled transactions. =================================================================== --> <xs:element name="getUnsettledTransactionListRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="status" type="anet:TransactionGroupStatusEnum" minOccurs="0" maxOccurs="1"/> <xs:element name="sorting" type="anet:TransactionListSorting" minOccurs="0" maxOccurs="1"/> <xs:element name="paging" type="anet:Paging" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getHostedPaymentPageRequest This method is used to give access to the hosted payment page to one of your customers. =================================================================== --> <xs:element name="getHostedPaymentPageRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="transactionRequest" type="anet:transactionRequestType"/> <xs:element name="hostedPaymentSettings" type="anet:ArrayOfSetting" minOccurs="0"> <xs:annotation> <xs:documentation>Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl, hostedPaymentButtonOptions, hostedPaymentReturnOptions, hostedPaymentOrderOptions, hostedPaymentPaymentOptions, hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions, hostedPaymentSecurityOptions, hostedPaymentCustomerOptions, hostedPaymentStyleOptions</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getHostedPaymentPageResponse This is the response to getHostedPaymentPageRequest. =================================================================== --> <xs:element name="getHostedPaymentPageResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="token" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:simpleType name="TransactionListOrderFieldEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="id"/> <xs:enumeration value="submitTimeUTC"/> </xs:restriction> </xs:simpleType> <xs:complexType name="TransactionListSorting"> <xs:sequence> <xs:element name="orderBy" type="anet:TransactionListOrderFieldEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="orderDescending" type="xs:boolean" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- =================================================================== getUnsettledTransactionListResponse This is the response to getUnsettledTransactionListRequest. =================================================================== --> <xs:element name="getUnsettledTransactionListResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="transactions" type="anet:ArrayOfTransactionSummaryType" minOccurs="0"/> <xs:element name="totalNumInResultSet" type="xs:int" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== mobileDeviceRegistrationRequest This method is used to request registration for a mobile device. =================================================================== --> <xs:element name="mobileDeviceRegistrationRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="mobileDevice" type="anet:mobileDeviceType" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== mobileDeviceRegistrationResponse This is the response to mobileDeviceRegistrationRequest. =================================================================== --> <xs:element name="mobileDeviceRegistrationResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== mobileDeviceLoginRequest This method is used to authenticate a mobile device. =================================================================== --> <xs:element name="mobileDeviceLoginRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== mobileDeviceLoginResponse This is the response to mobileDeviceLoginRequest. =================================================================== --> <xs:element name="mobileDeviceLoginResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="merchantContact" type="anet:merchantContactType"/> <xs:element name="userPermissions" type="anet:ArrayOfPermissionType"/> <xs:element name="merchantAccount" type="anet:transRetailInfoType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== logoutRequest This method is used to end a session from a mobile device. =================================================================== --> <xs:element name="logoutRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== logoutResponse This is the response to logoutRequest. =================================================================== --> <xs:element name="logoutResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== sendCustomerTransactionReceiptRequest This method is used to send a transaction email receipt. =================================================================== --> <xs:element name="sendCustomerTransactionReceiptRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="transId" type="anet:numericString"/> <xs:element name="customerEmail" type="xs:string"/> <xs:element name="emailSettings" type="anet:emailSettingsType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== sendCustomerTransactionReceiptResponse This is the response to sendCustomerTransactionReceiptRequest. =================================================================== --> <xs:element name="sendCustomerTransactionReceiptResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== PayPal Payment Type. =================================================================== --> <xs:complexType name="payPalType"> <xs:sequence> <xs:element name="successUrl" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="cancelUrl" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2048"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="paypalLc" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="2"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="paypalHdrImg" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="127"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="paypalPayflowcolor" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="6"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="payerID" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="ARBGetSubscriptionListRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="searchType" type="anet:ARBGetSubscriptionListSearchTypeEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="sorting" type="anet:ARBGetSubscriptionListSorting" minOccurs="0" maxOccurs="1"/> <xs:element name="paging" type="anet:Paging" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:complexType name="Paging"> <xs:sequence> <xs:element name="limit" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="1"/> <xs:maxInclusive value="1000"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="offset" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:int"> <xs:minInclusive value="1"/> <xs:maxInclusive value="100000"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ARBGetSubscriptionListSorting"> <xs:sequence> <xs:element name="orderBy" type="anet:ARBGetSubscriptionListOrderFieldEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="orderDescending" type="xs:boolean" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:simpleType name="ARBGetSubscriptionListSearchTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="cardExpiringThisMonth"/> <xs:enumeration value="subscriptionActive"/> <xs:enumeration value="subscriptionExpiringThisMonth"/> <xs:enumeration value="subscriptionInactive"/> <!-- AboutExpire --> <!-- ActiveCard --> <!-- WillExpire --> <!-- Inactive --> </xs:restriction> </xs:simpleType> <xs:simpleType name="ARBGetSubscriptionListOrderFieldEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="id"/> <xs:enumeration value="name"/> <xs:enumeration value="status"/> <xs:enumeration value="createTimeStampUTC"/> <xs:enumeration value="lastName"/> <xs:enumeration value="firstName"/> <xs:enumeration value="accountNumber"/> <xs:enumeration value="amount"/> <xs:enumeration value="pastOccurrences"/> </xs:restriction> </xs:simpleType> <xs:element name="ARBGetSubscriptionListResponse"> <xs:complexType mixed="false"> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="totalNumInResultSet" type="xs:int" minOccurs="0" maxOccurs="1"/> <xs:element name="subscriptionDetails" type="anet:ArrayOfSubscription" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:complexType name="ArrayOfSubscription"> <xs:sequence> <xs:element name="subscriptionDetail" type="anet:SubscriptionDetail" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="SubscriptionDetail"> <xs:sequence> <xs:element name="id" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="status" type="anet:ARBSubscriptionStatusEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="createTimeStampUTC" type="xs:dateTime" minOccurs="1" maxOccurs="1"/> <xs:element name="firstName" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="lastName" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="totalOccurrences" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="pastOccurrences" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="paymentMethod" type="anet:paymentMethodEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="accountNumber" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="invoice" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="amount" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="currencyCode" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="customerProfileId" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="customerPaymentProfileId" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="customerShippingProfileId" type="xs:int" minOccurs="0" maxOccurs="1"/> <!-- <xs:element minOccurs="1" maxOccurs="1" name="currencyId" type="xs:int" /> <xs:element minOccurs="1" maxOccurs="1" name="ARBStatusId" type="xs:int" /> <xs:element minOccurs="1" maxOccurs="1" name="PaymentMethodType" type="xs:int" /> --> </xs:sequence> </xs:complexType> <xs:complexType name="customerProfileSummaryType"> <xs:sequence> <xs:element name="customerProfileId" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="merchantCustomerId" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="createdDate" type="xs:dateTime"/> </xs:sequence> </xs:complexType> <!-- Enums used in some complextypes that are not directly referenced --> <xs:element name="EnumCollection"> <xs:complexType> <xs:sequence> <!-- classes --> <xs:element name="customerProfileSummaryType" type="anet:customerProfileSummaryType" minOccurs="1" maxOccurs="1"/> <xs:element name="paymentSimpleType" type="anet:paymentSimpleType" minOccurs="1" maxOccurs="1"/> <!-- enums --> <xs:element name="accountTypeEnum" type="anet:accountTypeEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="cardTypeEnum" type="anet:cardTypeEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="FDSFilterActionEnum" type="anet:FDSFilterActionEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="permissionsEnum" type="anet:permissionsEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="settingNameEnum" type="anet:settingNameEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="settlementStateEnum" type="anet:settlementStateEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="transactionStatusEnum" type="anet:transactionStatusEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="transactionTypeEnum" type="anet:transactionTypeEnum" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <!-- =================================================================== Customer Profile Payment Type. =================================================================== --> <xs:complexType name="customerProfilePaymentType"> <xs:sequence> <xs:element name="createProfile" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="paymentProfile" type="anet:paymentProfile" minOccurs="0" maxOccurs="1"/> <xs:element name="shippingProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- =================================================================== Payment Profile Type. =================================================================== --> <xs:complexType name="paymentProfile"> <xs:sequence> <xs:element name="paymentProfileId" type="anet:numericString" minOccurs="1" maxOccurs="1"/> <xs:element name="cardCode" type="anet:cardCode" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- Element definition for GetCustomerPaymentProfileList --> <xs:element name="getCustomerPaymentProfileListRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="searchType" type="anet:CustomerPaymentProfileSearchTypeEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="month" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="sorting" type="anet:CustomerPaymentProfileSorting" minOccurs="0" maxOccurs="1"/> <xs:element name="paging" type="anet:Paging" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="getCustomerPaymentProfileListResponse"> <xs:complexType mixed="false"> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="totalNumInResultSet" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="paymentProfiles" type="anet:arrayOfCustomerPaymentProfileListItemType" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:simpleType name="CustomerPaymentProfileOrderFieldEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="id"/> </xs:restriction> </xs:simpleType> <xs:complexType name="CustomerPaymentProfileSorting"> <xs:sequence> <xs:element name="orderBy" type="anet:CustomerPaymentProfileOrderFieldEnum" minOccurs="1" maxOccurs="1"/> <xs:element name="orderDescending" type="xs:boolean" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:simpleType name="CustomerPaymentProfileSearchTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="cardsExpiringInMonth"/> <!-- expired or expiring --> </xs:restriction> </xs:simpleType> <xs:complexType name="customerPaymentProfileListItemType"> <xs:sequence> <xs:element name="defaultPaymentProfile" type="xs:boolean" minOccurs="0"/> <xs:element name="customerPaymentProfileId" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="customerProfileId" type="xs:int" minOccurs="1" maxOccurs="1"/> <xs:element name="billTo" type="anet:customerAddressType" minOccurs="1" maxOccurs="1"/> <xs:element name="payment" type="anet:paymentMaskedType" minOccurs="1" maxOccurs="1"/> <xs:element name="originalNetworkTransId" type="anet:networkTransId" minOccurs="0" maxOccurs="1"/> <xs:element name="originalAuthAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="arrayOfCustomerPaymentProfileListItemType"> <xs:sequence> <xs:element name="paymentProfile" type="anet:customerPaymentProfileListItemType" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- =================================================================== ARBGetSubscriptionRequest This method is used to get details of an existing ARB subscription. The merchant must be signed up for the ARB service to use it. =================================================================== --> <xs:element name="ARBGetSubscriptionRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="subscriptionId" type="anet:numericString" minOccurs="1" maxOccurs="1"/> <xs:element name="includeTransactions" type="xs:boolean" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== Get ARBSubscription Response =================================================================== --> <xs:element name="ARBGetSubscriptionResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="subscription" type="anet:ARBSubscriptionMaskedType" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== Get TransactionList For Customer Request This method is used to retrieve a list of transactions for a customer profile, and optionally, a customer payment profile. The merchant must be signed up for the CIM service to use it. =================================================================== --> <xs:element name="getTransactionListForCustomerRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="sorting" type="anet:TransactionListSorting" minOccurs="0" maxOccurs="1"/> <xs:element name="paging" type="anet:Paging" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== Customer Profile Subscription Payment Type. =================================================================== --> <xs:complexType name="customerProfileIdType"> <xs:sequence> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="1" maxOccurs="1"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> <xs:element name="customerAddressId" type="anet:numericString" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- =================================================================== Get AUJobSummary Request This method is used to get summary of jobs done by Account Updater. =================================================================== --> <xs:element name="getAUJobSummaryRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="month" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== Get AUJobSummary Response =================================================================== --> <xs:element name="getAUJobSummaryResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="auSummary" type="anet:ArrayOfAUResponseType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- ===================================================== --> <xs:complexType name="ArrayOfAUResponseType"> <xs:sequence> <xs:element name="auResponse" type="anet:auResponseType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="auResponseType"> <xs:sequence> <xs:element name="auReasonCode" type="xs:string"/> <xs:element name="profileCount" type="xs:long"/> <xs:element name="reasonDescription" type="xs:string"/> </xs:sequence> </xs:complexType> <!-- =================================================================== Get AUJobDetails Request This method is used to get summary of jobs done by Account Updater. =================================================================== --> <xs:element name="getAUJobDetailsRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="month" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="modifiedTypeFilter" type="anet:AUJobTypeEnum" minOccurs="0" maxOccurs="1"/> <xs:element name="paging" type="anet:Paging" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =========================================================== --> <xs:simpleType name="AUJobTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="all"/> <xs:enumeration value="updates"/> <xs:enumeration value="deletes"/> <!-- All Entries --> <!-- Only Updated Entries --> <!-- Only Deleted Entries --> </xs:restriction> </xs:simpleType> <!-- =================================================================== Get AUJobDetails Response =================================================================== --> <xs:element name="getAUJobDetailsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="totalNumInResultSet" type="xs:int" minOccurs="0" maxOccurs="1"/> <xs:element name="auDetails" type="anet:ListOfAUDetailsType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- ===================================================== --> <xs:complexType name="ListOfAUDetailsType"> <xs:choice maxOccurs="unbounded"> <xs:element name="auUpdate" type="anet:auUpdateType" minOccurs="0"/> <xs:element name="auDelete" type="anet:auDeleteType" minOccurs="0"/> </xs:choice> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="auUpdateType"> <xs:complexContent> <xs:extension base="anet:auDetailsType"> <xs:sequence> <xs:element name="newCreditCard" type="anet:creditCardMaskedType"/> <xs:element name="oldCreditCard" type="anet:creditCardMaskedType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="auDeleteType"> <xs:complexContent> <xs:extension base="anet:auDetailsType"> <xs:sequence> <xs:element name="creditCard" type="anet:creditCardMaskedType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ===================================================== --> <xs:complexType name="auDetailsType"> <xs:sequence> <xs:element name="customerProfileID" type="xs:long"/> <xs:element name="customerPaymentProfileID" type="xs:long"/> <xs:element name="firstName" type="xs:string" minOccurs="0"/> <xs:element name="lastName" type="xs:string" minOccurs="0"/> <xs:element name="updateTimeUTC" type="xs:string"/> <xs:element name="auReasonCode" type="xs:string"/> <xs:element name="reasonDescription" type="xs:string"/> </xs:sequence> </xs:complexType> <!-- =================================================================== Get MerchantDetails Request This method is used to get merchant capabilities. =================================================================== --> <xs:element name="getMerchantDetailsRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- ===================================================== --> <xs:simpleType name="currencyCodeType"> <xs:restriction base="xs:string"> <xs:minLength value="3"/> <xs:maxLength value="3"/> </xs:restriction> </xs:simpleType> <!-- ============================================================================== Processing Options type Processing Options are used to pass additional transaction processing options ============================================================================== --> <xs:complexType name="processingOptions"> <xs:sequence> <xs:element name="isFirstRecurringPayment" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="isFirstSubsequentAuth" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="isSubsequentAuth" type="xs:boolean" minOccurs="0" maxOccurs="1"/> <xs:element name="isStoredCredentials" type="xs:boolean" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ============================================================================== Processing Options type Processing Options are used to pass additional transaction processing options ============================================================================== --> <xs:complexType name="authorizationIndicatorType"> <xs:sequence> <xs:element name="authorizationIndicator" type="anet:authIndicatorEnum" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ============================================================================== Subsequent Auth Information type Subsequent Auth Information is used to pass additional information for Merchant-Initiated transactions ============================================================================== --> <xs:complexType name="subsequentAuthInformation"> <xs:sequence> <xs:element name="originalNetworkTransId" type="anet:networkTransId" minOccurs="0" maxOccurs="1"/> <xs:element name="originalAuthAmount" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.00"/> <xs:fractionDigits value="4"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="reason" type="anet:merchantInitTransReasonEnum" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <!-- ============================================================================== Credit Card processing network transaction id ============================================================================== --> <xs:simpleType name="networkTransId"> <xs:restriction base="anet:alphaNumericSpaceString"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> <!-- ============================================================================== Reason for Merchant Initiated Transaction ============================================================================== --> <xs:simpleType name="merchantInitTransReasonEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="resubmission"/> <xs:enumeration value="delayedCharge"/> <xs:enumeration value="reauthorization"/> <xs:enumeration value="noShow"/> </xs:restriction> </xs:simpleType> <!-- =================================================================== ArrayOfCurrencyCode =================================================================== --> <xs:complexType name="ArrayOfCurrencyCode"> <xs:sequence> <xs:element name="currency" type="anet:currencyCodeType" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- =================================================================== ArrayOfCardType =================================================================== --> <xs:complexType name="ArrayOfCardType"> <xs:sequence> <xs:element name="cardType" type="xs:string" nillable="true" minOccurs="0" maxOccurs="30"/> </xs:sequence> </xs:complexType> <!--============= processorType ======================================================--> <xs:complexType name="processorType"> <xs:sequence> <xs:element name="name"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="id" type="xs:int"></xs:element> <xs:element name="cardTypes" type ="anet:ArrayOfCardType" minOccurs="0" maxOccurs="1" ></xs:element> </xs:sequence> </xs:complexType> <!-- =================================================================== ArrayOfProcessorType =================================================================== --> <xs:complexType name="ArrayOfProcessorType"> <xs:sequence> <xs:element name="processor" type="anet:processorType" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- =================================================================== marketType Name of the marketType. =================================================================== --> <xs:simpleType name="marketType"> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> <!-- =================================================================== ArrayOfMarketType =================================================================== --> <xs:complexType name="ArrayOfMarketType"> <xs:sequence> <xs:element name="marketType" type="anet:marketType" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- =================================================================== productCodeType Name of the productCode. =================================================================== --> <xs:simpleType name="productCodeType"> <xs:restriction base="xs:string"> <xs:maxLength value="3"/> </xs:restriction> </xs:simpleType> <!-- =================================================================== ArrayOfProductCode =================================================================== --> <xs:complexType name="ArrayOfProductCode"> <xs:sequence> <xs:element name="productCode" type="anet:productCodeType" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- =================================================================== paymentMethodsType represents the array of payment methods. =================================================================== --> <xs:simpleType name="paymentMethodsTypeEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="Visa"/> <xs:enumeration value="MasterCard"/> <xs:enumeration value="Discover"/> <xs:enumeration value="AmericanExpress"/> <xs:enumeration value="DinersClub"/> <xs:enumeration value="JCB"/> <xs:enumeration value="EnRoute"/> <xs:enumeration value="Echeck"/> <xs:enumeration value="Paypal"/> <xs:enumeration value="VisaCheckout"/> <xs:enumeration value="ApplePay"/> <xs:enumeration value="AndroidPay"/> <xs:enumeration value="GooglePay"/> </xs:restriction> </xs:simpleType> <!-- =================================================================== ArrayOfPaymentMethod =================================================================== --> <xs:complexType name="ArrayOfPaymentMethod"> <xs:sequence> <xs:element name="paymentMethod" type="anet:paymentMethodsTypeEnum" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="webCheckOutDataTypeToken"> <xs:sequence> <xs:element name="cardNumber" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="16"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="expirationDate" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="4"/> <xs:maxLength value="7"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="cardCode" type="anet:cardCode" minOccurs="0" maxOccurs="1"/> <xs:element name="zip" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="fullName" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="64"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> <!-- =================================================================== Get MerchantDetails Response =================================================================== --> <xs:element name="getMerchantDetailsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="isTestMode" type="xs:boolean" minOccurs="0"/> <xs:element name="processors" type="anet:ArrayOfProcessorType"/> <xs:element name="merchantName" type="xs:string"/> <xs:element name="gatewayId" type="anet:numericString"/> <xs:element name="marketTypes" type="anet:ArrayOfMarketType"/> <xs:element name="productCodes" type="anet:ArrayOfProductCode"/> <xs:element name="paymentMethods" type="anet:ArrayOfPaymentMethod"/> <xs:element name="currencies" type="anet:ArrayOfCurrencyCode"/> <xs:element name="publicClientKey" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="businessInformation" type="anet:customerAddressType" minOccurs="0" maxOccurs="1" /> <xs:element name="merchantTimeZone" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="100"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="contactDetails" type="anet:ArrayOfContactDetail" minOccurs="0" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== Update MerchantDetails Request This method is used for a partner to update merchant details. =================================================================== --> <xs:element name="updateMerchantDetailsRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element name="isTestMode" type="xs:boolean" minOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== Update MerchantDetails Response This method is used for a partner to update merchant details. =================================================================== --> <xs:element name="updateMerchantDetailsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"/> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerPaymentProfileNonceRequest This method is used to get Nonce (payment token) for an existing customer payment profile for a customer profile. =================================================================== --> <xs:element name="getCustomerPaymentProfileNonceRequest"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiRequest"> <xs:sequence> <xs:element maxOccurs="1" minOccurs="1" name="connectedAccessToken" type="xs:string"/> <xs:element name="customerProfileId" type="anet:numericString" minOccurs="1" maxOccurs="1"/> <xs:element name="customerPaymentProfileId" type="anet:numericString" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <!-- =================================================================== getCustomerPaymentProfileNonceResponse =================================================================== --> <xs:element name="getCustomerPaymentProfileNonceResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="anet:ANetApiResponse"> <xs:sequence> <xs:element name="opaqueData" type="anet:opaqueDataType" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:schema> LICENSE.txt 0000644 00000042220 15107327177 0006401 0 ustar 00 SDK LICENSE AGREEMENT This Software Development Kit (“SDK”) License Agreement (“Agreement”) is between you (both the individual downloading the SDK and any legal entity on behalf of which such individual is acting) (“You” or “Your”) and Authorize.Net LLC (“Authorize.Net’). IT IS IMPORTANT THAT YOU READ CAREFULLY AND UNDERSTAND THIS AGREEMENT. BY CLICKING THE “I ACCEPT” BUTTON OR AN EQUIVALENT INDICATOR OR BY DOWNLOADING, INSTALLING OR USING THE SDK OR THE DOCUMENTATION, YOU AGREE TO BE BOUND BY THIS AGREEMENT. 1. DEFINITIONS 1.1 “Application(s)” means software programs that You develop to operate with the Gateway using components of the Software. 1.2 “Documentation” means the materials made available to You in connection with the Software by or on behalf of Authorize.Net pursuant to this Agreement. 1.3 “Gateway” means any electronic payment platform maintained and operated by Authorize.Net and any of its affiliates. 1.4 “Software” means all of the software included in the software development kit made available to You by or on behalf of Authorize.Net pursuant to this Agreement, including but not limited to sample source code, code snippets, software tools, code libraries, sample applications, Documentation and any upgrades, modified versions, updates, and/or additions thereto, if any, made available to You by or on behalf of Authorize.Net pursuant to this Agreement. 2. GRANT OF LICENSE; RESTRICTIONS 2.1 Limited License. Subject to and conditioned upon Your compliance with the terms of this Agreement, Authorize.Net hereby grants to You a limited, revocable, non-exclusive, non-transferable, royalty-free license during the term of this Agreement to: (a) in any country worldwide, use, reproduce, modify, and create derivative works of the components of the Software solely for the purpose of developing, testing and manufacturing Applications; (b) distribute, sell or otherwise provide Your Applications that include components of the Software to Your end users; and (c) use the Documentation in connection with the foregoing activities. The license to distribute Applications that include components of the Software as set forth in subsection (b) above includes the right to grant sublicenses to Your end users to use such components of the Software as incorporated into such Applications, subject to the limitations and restrictions set forth in this Agreement. 2.2 Restrictions. You shall not (and shall have no right to): (a) make or distribute copies of the Software or the Documentation, in whole or in part, except as expressly permitted pursuant to Section 2.1; (b) alter or remove any copyright, trademark, trade name or other proprietary notices, legends, symbols or labels appearing on or in the Software or Documentation; (c) sublicense (or purport to sublicense) the Software or the Documentation, in whole or in part, to any third party except as expressly permitted pursuant to Section 2.1; (d) engage in any activity with the Software, including the development or distribution of an Application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the Gateway or platform, servers, or systems of Authorize.Net, any of its affiliates, or any third party; (e) make any statements that Your Application is “certified” or otherwise endorsed, or that its performance is guaranteed, by Authorize.Net or any of its affiliates; or (f) otherwise use or exploit the Software or the Documentation for any purpose other than to develop and distribute Applications as expressly permitted by this Agreement. 2.3 Ownership. You shall retain ownership of Your Applications developed in accordance with this Agreement, subject to Authorize.Net’s ownership of the Software and Documentation (including Authorize.Net’s ownership of any portion of the Software or Documentation incorporated in Your Applications). You acknowledge and agree that all right, title and interest in and to the Software and Documentation shall, at all times, be and remain the exclusive property of Authorize.Net and that You do not have or acquire any rights, express or implied, in the Software or Documentation except those rights expressly granted under this Agreement. 2.4 No Support. Authorize.Net has no obligation to provide support, maintenance, upgrades, modifications or new releases of the Software. 2.5 Open Source Software. You hereby acknowledge that the Software may contain software that is distributed under “open source” license terms (“Open Source Software”). You shall review the Documentation in order to determine which portions of the Software are Open Source Software and are licensed under such Open Source Software license terms. To the extent any such license requires that Authorize.Net provide You any rights with respect to such Open Source Software that are inconsistent with the limited rights granted to You in this Agreement, then such rights in the applicable Open Source Software license shall take precedence over the rights and restrictions granted in this Agreement, but solely with respect to such Open Source Software. You acknowledge that the Open Source Software license is solely between You and the applicable licensor of the Open Source Software and that Your use, reproduction and distribution of Open Source Software shall be in compliance with applicable Open Source Software license. You understand and agree that Authorize.Net is not liable for any loss or damage that You may experience as a result of Your use of Open Source Software and that You will look solely to the licensor of the Open Source Software in the event of any such loss or damage. 2.6 License to Authorize.Net. In the event You choose to submit any suggestions, feedback or other information or materials related to the Software or Documentation or Your use thereof (collectively, “Feedback”) to Authorize.Net, You hereby grant to Authorize.Net a worldwide, non-exclusive, royalty-free, transferable, sublicensable, perpetual and irrevocable license to use and otherwise exploit such Feedback in connection with the Software, Documentation, and other products and services. 2.7 Use. (a) You represent, warrant and agree to use the Software and write Applications only for purposes permitted by (i) this Agreement; (ii) applicable law and regulation, including, without limitation, the Payment Card Industry Data Security Standard (PCI DSS); and (iii) generally accepted practices or guidelines in the relevant jurisdictions. You represent, warrant and agree that if You use the Software to develop Applications for general public end users, that You will protect the privacy and legal rights of those users. If the Application receives or stores personal or sensitive information provided by end users, it must do so securely and in compliance with all applicable laws and regulations, including card association regulations. If the Application receives Authorize.Net account information, the Application may only use that information to access the end user's Authorize.Net account. You represent, warrant and agree that You are solely responsible for (and that neither Authorize.Net nor its affiliates have any responsibility to You or to any third party for): (i) any data, content, or resources that You obtain, transmit or display through the Application; and (ii) any breach of Your obligations under this Agreement, any applicable third party license, or any applicable law or regulation, and for the consequences of any such breach. 3. WARRANTY DISCLAIMER; LIMITATION OF LIABILITY 3.1 Disclaimer. THE SOFTWARE AND THE DOCUMENTATION ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS WITH NO WARRANTY. YOU AGREE THAT YOUR USE OF THE SOFTWARE AND THE DOCUMENTATION IS AT YOUR SOLE RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, AUTHORIZE.NET AND ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE AND THE DOCUMENTATION, INCLUDING ALL WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, SATISFACTORY QUALITY, ACCURACY, TITLE AND NON-INFRINGEMENT, AND ANY WARRANTIES THAT MAY ARISE OUT OF COURSE OF PERFORMANCE, COURSE OF DEALING OR USAGE OF TRADE. NEITHER AUTHORIZE.NET NOR ITS AFFILIATES WARRANT THAT THE FUNCTIONS OR INFORMATION CONTAINED IN THE SOFTWARE OR THE DOCUMENTATION WILL MEET ANY REQUIREMENTS OR NEEDS YOU MAY HAVE, OR THAT THE SOFTWARE OR DOCUMENTATION WILL OPERATE ERROR FREE, OR THAT THE SOFTWARE OR DOCUMENTATION IS COMPATIBLE WITH ANY PARTICULAR OPERATING SYSTEM. 3.2 Limitation of Liability. IN NO EVENT SHALL AUTHORIZE.NET AND ITS AFFILIATES BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, BUSINESS, SAVINGS, DATA, USE OR COST OF SUBSTITUTE PROCUREMENT, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF AUTHORIZE.NET HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR IF SUCH DAMAGES ARE FORESEEABLE. IN NO EVENT SHALL THE ENTIRE LIABILITY OF AUTHORIZE.NET AND AFFILIATES ARISING FROM OR RELATING TO THIS AGREEMENT OR THE SUBJECT MATTER HEREOF EXCEED ONE HUNDRED U.S. DOLLARS ($100). THE PARTIES ACKNOWLEDGE THAT THE LIMITATIONS OF LIABILITY IN THIS SECTION 3.2 AND IN THE OTHER PROVISIONS OF THIS AGREEMENT AND THE ALLOCATION OF RISK HEREIN ARE AN ESSENTIAL ELEMENT OF THE BARGAIN BETWEEN THE PARTIES, WITHOUT WHICH AUTHORIZE.NET WOULD NOT HAVE ENTERED INTO THIS AGREEMENT. 4. INDEMNIFICATION. You shall indemnify, hold harmless and, at Authorize.Net’s request, defend Authorize.Net and its affiliates and their officers, directors, employees, and agents from and against any claim, suit or proceeding, and any associated liabilities, costs, damages and expenses, including reasonable attorneys’ fees, that arise out of relate to: (i) Your Applications or the use or distribution thereof and Your use or distribution of the Software or the Documentation (or any portion thereof including Open Source Software), including, but not limited to, any allegation that any such Application or any such use or distribution infringes, misappropriates or otherwise violates any intellectual property (including, without limitation, copyright, patent, and trademark), privacy, publicity or other rights of any third party, or has caused the death or injury of any person or damage to any property; (ii) Your alleged or actual breach of this Agreement; (iii) the alleged or actual breach of this Agreement by any party to whom you have provided Your Applications, the Software or the Documentation or (iii) Your alleged or actual violation of or non-compliance with any applicable laws, legislation, policies, rules, regulations or governmental requirements (including, without limitation, any laws, legislation, policies, rules, regulations or governmental requirements related to privacy and data collection). 5. TERMINATION. This Agreement and the licenses granted to you herein are effective until terminated. Authorize.Net may terminate this Agreement and the licenses granted to You at any time. Upon termination of this Agreement, You shall cease all use of the Software and the Documentation, return to Authorize.Net or destroy all copies of the Software and Documentation and related materials in Your possession, and so certify to Authorize.Net. Except for the license to You granted herein, the terms of this Agreement shall survive termination. 6. CONFIDENTIAL INFORMATION a. You hereby agree (i) to hold Authorize.Net’s Confidential Information in strict confidence and to take reasonable precautions to protect such Confidential Information (including, without limitation, all precautions You employ with respect to Your own confidential materials), (ii) not to divulge any such Confidential Information to any third person; (iii) not to make any use whatsoever at any time of such Confidential Information except as strictly licensed hereunder, (iv) not to remove or export from the United States or re-export any such Confidential Information or any direct product thereof, except in compliance with, and with all licenses and approvals required under applicable U.S. and foreign export laws and regulations, including, without limitation, those of the U.S. Department of Commerce. b. “Confidential Information” shall mean any data or information, oral or written, treated as confidential that relates to Authorize.Net’s past, present, or future research, development or business activities, including without limitation any unannounced products and services, any information relating to services, developments, inventions, processes, plans, financial information, customer data, revenue, transaction volume, forecasts, projections, application programming interfaces, Software and Documentation. 7. General Terms 7.1 Law. This Agreement and all matters arising out of or relating to this Agreement shall be governed by the internal laws of the State of California without giving effect to any choice of law rule. This Agreement shall not be governed by the United Nations Convention on Contracts for the International Sales of Goods, the application of which is expressly excluded. In the event of any controversy, claim or dispute between the parties arising out of or relating to this Agreement, such controversy, claim or dispute shall be resolved in the state or federal courts in Santa Clara County, California, and the parties hereby irrevocably consent to the jurisdiction and venue of such courts. 7.2 Logo License. Authorize.Net hereby grants to You the right to use, reproduce, publish, perform and display Authorize.Net logo solely in accordance with the current Authorize.Net brand guidelines. 7.3 Severability and Waiver. If any provision of this Agreement is held to be illegal, invalid or otherwise unenforceable, such provision shall be enforced to the extent possible consistent with the stated intention of the parties, or, if incapable of such enforcement, shall be deemed to be severed and deleted from this Agreement, while the remainder of this Agreement shall continue in full force and effect. The waiver by either party of any default or breach of this Agreement shall not constitute a waiver of any other or subsequent default or breach. 7.4 No Assignment. You may not assign, sell, transfer, delegate or otherwise dispose of, whether voluntarily or involuntarily, by operation of law or otherwise, this Agreement or any rights or obligations under this Agreement without the prior written consent of Authorize.Net, which may be withheld in Authorize.Net’s sole discretion. Any purported assignment, transfer or delegation by You shall be null and void. Subject to the foregoing, this Agreement shall be binding upon and shall inure to the benefit of the parties and their respective successors and assigns. 7.5 Government Rights. If You (or any person or entity to whom you provide the Software or Documentation) are an agency or instrumentality of the United States Government, the Software and Documentation are “commercial computer software” and “commercial computer software documentation,” and pursuant to FAR 12.212 or DFARS 227.7202, and their successors, as applicable, use, reproduction and disclosure of the Software and Documentation are governed by the terms of this Agreement. 7.6 Export Administration. You shall comply fully with all relevant export laws and regulations of the United States, including, without limitation, the U.S. Export Administration Regulations (collectively “Export Controls”). Without limiting the generality of the foregoing, You shall not, and You shall require Your representatives not to, export, direct or transfer the Software or the Documentation, or any direct product thereof, to any destination, person or entity restricted or prohibited by the Export Controls. 7.7 Privacy. In order to continually innovate and improve the Software, Licensee understands and agrees that Authorize.Net may collect certain usage statistics including but not limited to a unique identifier, associated IP address, version number of software, and information on which tools and/or services in the Software are being used and how they are being used. 7.8 Entire Agreement; Amendments. This Agreement constitutes the entire agreement between the parties and supersedes all prior or contemporaneous agreements or representations, written or oral, concerning the subject matter of this Agreement. Authorize.Net may make changes to this Agreement, Software or Documentation in its sole discretion. When these changes are made, Authorize.Net will make a new version of the Agreement, Software or Documentation available on the website where the Software is available. This Agreement may not be modified or amended by You except in a writing signed by a duly authorized representative of each party. You acknowledge and agree that Authorize.Net has not made any representations, warranties or agreements of any kind, except as expressly set forth herein. Authorize.Net Software Development Kit (SDK) License Agreement v. February 1, 2017 1 .scrutinizer.yml 0000644 00000000500 15107327200 0007716 0 ustar 00 checks: php: code_rating: true duplication: true tools: php_mess_detector: true php_code_sniffer: true sensiolabs_security_checker: true php_cpd: true php_loc: true php_pdepend: true external_code_coverage: timeout: 1500 #15 min filter: paths: - lib/* README.md 0000644 00000024566 15107327200 0006035 0 ustar 00 # Authorize.Net PHP SDK [](https://travis-ci.org/AuthorizeNet/sdk-php) [](https://scrutinizer-ci.com/g/AuthorizeNet/sdk-php/?branch=master) [](https://packagist.org/packages/authorizenet/authorizenet) ## Requirements * PHP 5.6+ * cURL PHP Extension * JSON PHP Extension * An Authorize.Net account (see _Registration & Configuration_ section below) * TLS 1.2 capable versions of libcurl and OpenSSL (or its equivalent) ### Migrating from older versions Since August 2018, the Authorize.Net API has been reorganized to be more merchant focused. Authorize.Net AIM, ARB, CIM, Transaction Reporting, and SIM classes have been deprecated in favor of net\authorize\api. To see the full list of mapping of new features corresponding to the deprecated features, see [MIGRATING.md](MIGRATING.md). ### Contribution - If you need information or clarification about Authorize.Net features, create an issue with your question. You can also search the [Authorize.Net developer community](https://community.developer.authorize.net/)for discussions related to your question. - Before creating pull requests, read [the contributors guide](CONTRIBUTING.md) ### TLS 1.2 The Authorize.Net APIs only support connections using the TLS 1.2 security protocol. Make sure to upgrade all required components to support TLS 1.2. Keep these components up to date to mitigate the risk of new security flaws. To test whether your current installation is capable of communicating to our servers using TLS 1.2, run the following PHP code and examine the output for the TLS version: ```php <?php $ch = curl_init('https://apitest.authorize.net/xml/v1/request.api'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); $data = curl_exec($ch); curl_close($ch); ``` If curl is unable to connect to our URL (as given in the previous sample), it's likely that your system is not able to connect using TLS 1.2, or does not have a supported cipher installed. To verify what TLS version your connection _does_ support, run the following PHP code: ```php <?php $ch = curl_init('https://www.howsmyssl.com/a/check'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); $json = json_decode($data); echo "Connection uses " . $json->tls_version ."\n"; ``` ## Installation ### Composer We recommend using [`Composer`](http://getcomposer.org). *(Note: we never recommend you override the new secure-http default setting)*. *Update your composer.json file as per the example below and then run for this specific release `composer update`.* ```json { "require": { "php": ">=5.6", "authorizenet/authorizenet": "2.0.2" } } ``` After installation through Composer, don't forget to require its autoloader in your script or bootstrap file: ```php require 'vendor/autoload.php'; ``` ### Custom SPL Autoloader Alternatively, we provide a custom `SPL` autoloader for you to reference from within your PHP file: ```php require 'path/to/anet_php_sdk/autoload.php'; ``` This autoloader still requires the `vendor` directory and all of its dependencies to exist. However, this is a possible solution for cases where composer can't be run on a given system. You can run composer locally or on another system to build the directory, then copy the `vendor` directory to the desired system. ## Registration & Configuration Use of this SDK and the Authorize.Net APIs requires having an account on the Authorize.Net system. You can find these details in the Settings section. If you don't currently have a production Authorize.Net account, [sign up for a sandbox account](https://developer.authorize.net/sandbox/). ### Authentication To authenticate with the Authorize.Net API, use your account's API Login ID and Transaction Key. If you don't have these credentials, obtain them from the Merchant Interface. For production accounts, the Merchant Interface is located at (https://account.authorize.net/), and for sandbox accounts, at (https://sandbox.authorize.net). After you have your credentials, load them into the appropriate variables in your code. The below sample code shows how to set the credentials as part of the API request. #### To set your API credentials for an API request: ... ```php use net\authorize\api\contract\v1 as AnetAPI; ``` ... ```php $merchantAuthentication = new AnetAPI\MerchantAuthenticationType(); $merchantAuthentication->setName("YOURLOGIN"); $merchantAuthentication->setTransactionKey("YOURKEY"); ``` ... ```php $request = new AnetAPI\CreateTransactionRequest(); $request->setMerchantAuthentication($merchantAuthentication); ``` ... You should never include your Login ID and Transaction Key directly in a PHP file that's in a publically accessible portion of your website. A better practice would be to define these in a constants file, and then reference those constants in the appropriate place in your code. ### Switching between the sandbox environment and the production environment Authorize.Net maintains a complete sandbox environment for testing and development purposes. The sandbox environment is an exact replica of our production environment, with simulated transaction authorization and settlement. By default, this SDK is configured to use the sandbox environment. To switch to the production environment, replace the environment constant in the execute method. For example: ```php // For PRODUCTION use $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION); ``` API credentials are different for each environment, so be sure to switch to the appropriate credentials when switching environments. ## SDK Usage Examples and Sample Code To get started using this SDK, it's highly recommended to download our sample code repository: * [Authorize.Net PHP Sample Code Repository (on GitHub)](https://github.com/AuthorizeNet/sample-code-php) In that respository, we have comprehensive sample code for all common uses of our API: Additionally, you can find details and examples of how our API is structured in our API Reference Guide: * [Developer Center API Reference](http://developer.authorize.net/api/reference/index.html) The API Reference Guide provides examples of what information is needed for a particular request and how that information would be formatted. Using those examples, you can easily determine what methods would be necessary to include that information in a request using this SDK. ## Building & Testing the SDK Integration tests for the AuthorizeNet SDK are in the `tests` directory. These tests are mainly for SDK development. However, you can also browse through them to find more usage examples for the various APIs. - Run `composer update --dev` to load the `PHPUnit` test library. - Copy the `phpunit.xml.dist` file to `phpunit.xml` and enter your merchant credentials in the constant fields. - Run `vendor/bin/phpunit` to run the test suite. *You'll probably want to disable emails on your sandbox account.* ### Testing Guide For additional help in testing your own code, Authorize.Net maintains a [comprehensive testing guide](http://developer.authorize.net/hello_world/testing_guide/) that includes test credit card numbers to use and special triggers to generate certain responses from the sandbox environment. ## Logging The SDK generates a log with masking for sensitive data like credit card, expiration dates. The provided levels for logging are `debug`, `info`, `warn`, `error`. Add ````use \net\authorize\util\LogFactory;````. Logger can be initialized using `$logger = LogFactory::getLog(get_class($this));` The default log file `phplog` gets generated in the current folder. The subsequent logs are appended to the same file, unless the execution folder is changed, and a new log file is generated. ### Usage Examples - Logging a string message `$logger->debug("Sending 'XML' Request type");` - Logging xml strings `$logger->debug($xmlRequest);` - Logging using formatting `$logger->debugFormat("Integer: %d, Float: %f, Xml-Request: %s\n", array(100, 1.29f, $xmlRequest));` ### Customizing Sensitive Tags A local copy of [AuthorizedNetSensitiveTagsConfig.json](/lib/net/authorize/util/ANetSensitiveFields.php) gets generated when code invoking the logger first gets executed. The local file can later be edited by developer to re-configure what is masked and what is visible. (*Do not edit the JSON in the SDK*). - For each element of the `sensitiveTags` array, - `tagName` field corresponds to the name of the property in object, or xml-tag that should be hidden entirely ( *XXXX* shown if no replacement specified ) or masked (e.g. showing the last 4 digits of credit card number). - `pattern`[<sup>[Note]</sup>](#regex-note) and `replacement`[<sup>[Note]</sup>](#regex-note) can be left `""`, if the default is to be used (as defined in [Log.php](/lib/net/authorize/util/Log.php)). `pattern` gives the regex to identify, while `replacement` defines the visible part. - `disableMask` can be set to *true* to allow the log to fully display that property in an object, or tag in a xml string. - `sensitiveStringRegexes`[<sup>[Note]</sup>](#regex-note) has list of credit-card regexes. So if credit-card number is not already masked, it would get entirely masked. - Take care of non-ascii characters (refer [manual](http://php.net/manual/en/regexp.reference.unicode.php)) while defining the regex, e.g. use `"pattern": "(\\p{N}+)(\\p{N}{4})"` instead of `"pattern": "(\\d+)(\\d{4})"`. Also note `\\` escape sequence is used. **<a name="regex-note">Note</a>:** **For any regex, no starting or ending '/' or any other delimiter should be defined. The '/' delimiter and unicode flag is added in the code.** ### Transaction Hash Upgrade Authorize.Net is phasing out the MD5 based `transHash` element in favor of the SHA-512 based `transHashSHA2`. The setting in the Merchant Interface which controlled the MD5 Hash option is no longer available, and the `transHash` element will stop returning values at a later date to be determined. For information on how to use `transHashSHA2`, see the [Transaction Hash Upgrade Guide] (https://developer.authorize.net/support/hash_upgrade/). ## License This repository is distributed under a proprietary license. See the provided [`LICENSE.txt`](/LICENSE.txt) file. .gitmodules 0000644 00000000161 15107327201 0006715 0 ustar 00 [submodule "sample-code-php"] path = sample-code-php url = https://github.com/AuthorizeNet/sample-code-php.git autoload.php 0000644 00000000552 15107327202 0007066 0 ustar 00 <?php /** * Custom SPL autoloader for the AuthorizeNet SDK * * @package AuthorizeNet */ spl_autoload_register(function($className) { static $classMap; if (!isset($classMap)) { $classMap = require __DIR__ . DIRECTORY_SEPARATOR . 'classmap.php'; } if (isset($classMap[$className])) { include $classMap[$className]; } }); resources/ControllerTemplate.phpt 0000644 00000001135 15107327202 0013271 0 ustar 00 <?php namespace net\authorize\api\controller; use net\authorize\api\contract\v1\AnetApiRequestType; use net\authorize\api\controller\base\ApiOperationBase; class APICONTROLLERNAMEController extends ApiOperationBase { public function __construct(AnetApiRequestType $request) { $responseType = 'net\authorize\api\contract\v1\APICONTROLLERNAMEResponse'; parent::__construct($request, $responseType); } protected function validateRequest() { //validate required fields of $this->apiRequest-> //validate non-required fields of $this->apiRequest-> } } composer.json 0000644 00000001000 15107327203 0007255 0 ustar 00 { "name": "authorizenet/authorizenet", "type": "library", "version": "2.0.2", "description": "Official PHP SDK for Authorize.Net", "keywords": ["authorizenet", "authorize.net", "payment", "ecommerce"], "license": "proprietary", "homepage": "http://developer.authorize.net", "require": { "php": ">=5.6", "ext-curl": "*", "ext-json": "*" }, "autoload": { "classmap": ["lib"] }, "autoload-dev": { "classmap": ["tests"] } } MIGRATING.md 0000644 00000014773 15107327203 0006423 0 ustar 00 # Migrating from Legacy Authorize.Net Classes Authorize.Net no longer supports several legacy classes, including AuthorizeNetAIM.php, AuthorizenetSIM.php, and others listed below, as part of PHP-SDK. If you are using any of these, we recommend that you update your code to use the new Authorize.Net API classes. **For details on the deprecation and replacement of legacy Authorize.Net APIs, visit https://developer.authorize.net/api/upgrade_guide/.** ## Full list of classes that are no longer supported | Class | New Feature | Sample Codes directory/repository | |----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| | AuthorizeNetAIM.php | [PaymentTransactions](https://developer.authorize.net/api/reference/index.html#payment-transactions) | [sample-code-php/PaymentTransactions](https://github.com/AuthorizeNet/sample-code-php/tree/master/PaymentTransactions) | | AuthorizeNetARB.php | [RecurringBilling](https://developer.authorize.net/api/reference/index.html#recurring-billing) | [sample-code-php/RecurringBilling](https://github.com/AuthorizeNet/sample-code-php/tree/master/RecurringBilling) | | AuthorizeNetCIM.php | [CustomerProfiles](https://developer.authorize.net/api/reference/index.html#customer-profiles) | [sample-code-php/CustomerProfiles](https://github.com/AuthorizeNet/sample-code-php/tree/master/CustomerProfiles) | | Hosted CIM | [Accept Customer](https://developer.authorize.net/content/developer/en_us/api/reference/features/customer_profiles.html#Using_the_Accept_Customer_Hosted_Form) | Not available | | AuthorizeNetCP.php | [PaymentTransactions](https://developer.authorize.net/api/reference/index.html#payment-transactions) | [sample-code-php/PaymentTransactions](https://github.com/AuthorizeNet/sample-code-php/tree/master/PaymentTransactions) | | AuthorizeNetDPM.php | [Accept.JS](https://developer.authorize.net/api/reference/features/acceptjs.html) | [Sample Accept Application](https://github.com/AuthorizeNet/accept-sample-app) | | AuthorizeNetSIM.php | [Accept Hosted](https://developer.authorize.net/content/developer/en_us/api/reference/features/accept_hosted.html) | Not available | | AuthorizeNetSOAP.php | [PaymentTransactions](https://developer.authorize.net/api/reference/index.html#payment-transactions) | [sample-code-php/PaymentTransactions](https://github.com/AuthorizeNet/sample-code-php/tree/master/PaymentTransactions) | | AuthorizeNetTD.php | [TransactionReporting](https://developer.authorize.net/api/reference/index.html#transaction-reporting) | [sample-code-php/TransactionReporting/](https://github.com/AuthorizeNet/sample-code-php/tree/master/TransactionReporting) | ## Example #### Old AuthorizeNetAIM example: ```php define("AUTHORIZENET_API_LOGIN_ID", "YOURLOGIN"); define("AUTHORIZENET_TRANSACTION_KEY", "YOURKEY"); define("AUTHORIZENET_SANDBOX", true); $sale = new AuthorizeNetAIM; $sale->amount = "5.99"; $sale->card_num = '6011000000000012'; $sale->exp_date = '04/15'; $response = $sale->authorizeAndCapture(); if ($response->approved) { $transaction_id = $response->transaction_id; } ``` #### Corresponding new model code (charge-credit-card): ```php require 'vendor/autoload.php'; use net\authorize\api\contract\v1 as AnetAPI; use net\authorize\api\controller as AnetController; define("AUTHORIZENET_LOG_FILE", "phplog"); $merchantAuthentication = new AnetAPI\MerchantAuthenticationType(); $merchantAuthentication->setName("YOURLOGIN"); $merchantAuthentication->setTransactionKey("YOURKEY"); // Create the payment data for a credit card $creditCard = new AnetAPI\CreditCardType(); $creditCard->setCardNumber("6011000000000012"); $creditCard->setExpirationDate("2015-04"); $creditCard->setCardCode("123"); // Add the payment data to a paymentType object $paymentOne = new AnetAPI\PaymentType(); $paymentOne->setCreditCard($creditCard); $transactionRequestType = new AnetAPI\TransactionRequestType(); $transactionRequestType->setTransactionType("authCaptureTransaction"); $transactionRequestType->setAmount("5.99"); $transactionRequestType->setPayment($paymentOne); // Assemble the complete transaction request $request = new AnetAPI\CreateTransactionRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setTransactionRequest($transactionRequestType); // Create the controller and get the response $controller = new AnetController\CreateTransactionController($request); $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); if ($response != null) { // Check to see if the API request was successfully received and acted upon if ($response->getMessages()->getResultCode() == "Ok") { // Since the API request was successful, look for a transaction response // and parse it to display the results of authorizing the card $tresponse = $response->getTransactionResponse(); if ($tresponse != null && $tresponse->getMessages() != null) { echo " Successfully created transaction with Transaction ID: " . $tresponse->getTransId() . "\n"; echo " Transaction Response Code: " . $tresponse->getResponseCode() . "\n"; echo " Message Code: " . $tresponse->getMessages()[0]->getCode() . "\n"; echo " Auth Code: " . $tresponse->getAuthCode() . "\n"; echo " Description: " . $tresponse->getMessages()[0]->getDescription() . "\n"; } } } ``` phpunit.xml.dist 0000644 00000003537 15107327204 0007730 0 ustar 00 <?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://phpunit.de/phpunit.xsd" bootstrap="./tests/bootstrap.php" backupGlobals="false" verbose="true" colors="true"> <testsuites> <testsuite name="AuthorizeNet Integration Tests"> <directory suffix="Test.php">./tests</directory> </testsuite> </testsuites> <logging> <log type="coverage-text" target="php://stdout" showUncoveredFiles="false" lowUpperBound="50" highLowerBound="80" /> <log type="coverage-clover" target="./build/logs/clover.xml" /> </logging> <filter> <whitelist processUncoveredFilesFromWhitelist="true"> <directory suffix=".php">./lib</directory> <exclude> <directory>./vendor</directory> <directory>./tests</directory> <directory>./build</directory> </exclude> </whitelist> </filter> <php> <const name="PHPUNIT_TESTSUITE" value="true" /> <!-- Enter your test account credentials to run tests against sandbox. --> <const name="AUTHORIZENET_API_LOGIN_ID" value="5KP3u95bQpv" /> <const name="AUTHORIZENET_TRANSACTION_KEY" value="346HZ32z3fP4hTG2" /> <const name="AUTHORIZENET_MD5_SETTING" value="" /> <!-- Enter your live account credentials to run tests against production gateway. --> <const name="MERCHANT_LIVE_API_LOGIN_ID" value="" /> <const name="MERCHANT_LIVE_TRANSACTION_KEY" value="" /> <!-- Card Present Sandbox Credentials --> <const name="CP_API_LOGIN_ID" value="" /> <const name="CP_TRANSACTION_KEY" value="" /> <const name="AUTHORIZENET_LOG_FILE" value="./tests/log" /> </php> </phpunit> .gitignore 0000644 00000000210 15107327204 0006526 0 ustar 00 *.DS_Store composer.lock vendor phpunit.xml tests/log build phplog # Ignore eclipse project files .buildpath .project .settings backup .travis.yml 0000644 00000003573 15107327205 0006667 0 ustar 00 language: php sudo: false matrix: include: - php: 5.6 env: - PHPUNIT_VERSION=5.6.* - TEST_SUITE=samples dist: trusty - php: 7.0 env: - PHPUNIT_VERSION=5.6.* - TEST_SUITE=samples dist: trusty - php: 7.1 env: - PHPUNIT_VERSION=5.7.* - TEST_SUITE=samples dist: trusty - php: 7.2 env: - PHPUNIT_VERSION=8.5.* - TEST_SUITE=samples dist: bionic - php: 7.3 env: - PHPUNIT_VERSION=9.5.* - TEST_SUITE=samples dist: bionic - php: 7.4 env: - PHPUNIT_VERSION=9.5.* - TEST_SUITE=samples dist: bionic - php: 8.0 env: - PHPUNIT_VERSION=9.5.* - TEST_SUITE=samples dist: bionic before_install: # execute all of the commands which need to be executed # before installing dependencies - composer validate # make sure that our composer.json file is valid for packaging install: # install all of the dependencies we need here - pecl install xmldiff - composer require "phpunit/phpunit:${PHPUNIT_VERSION}" --no-update - composer update --prefer-dist before_script: # execute all of the commands which need to be executed # before running actual tests - git submodule update --remote --recursive script: # execute all of the tests or other commands to determine # whether the build will pass or fail - if [[ "$TEST_SUITE" == "samples" ]]; then phpenv config-rm xdebug.ini; cp -R lib sample-code-php/; cp -R vendor sample-code-php/; cd sample-code-php; vendor/phpunit/phpunit/phpunit TestRunner.php .; fi after_script: # - if [[ "$TEST_SUITE" == "coverage" ]]; then wget https://scrutinizer-ci.com/ocular.phar; fi # - if [[ "$TEST_SUITE" == "coverage" ]]; then php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi tests/AuthorizeNetSSL_Test.php 0000644 00000003013 15107327205 0012420 0 ustar 00 <?php class AuthorizeNetSSL_Test extends PHPUnit_Framework_TestCase { public function testSandboxSSLCertIsValid() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO exec("echo | openssl s_client -connect test.authorize.net:443 -showcerts -verify 10 -CAfile ../lib/ssl/cert.pem 2>&1", $output, $return_value); $this->assertEquals(0, $return_value); $this->assertTrue(in_array('Verify return code: 0 (ok)', array_map('trim', $output))); exec("echo | openssl s_client -connect apitest.authorize.net:443 -showcerts -verify 10 -CAfile ../lib/ssl/cert.pem 2>&1", $output, $return_value); $this->assertEquals(0, $return_value); $this->assertTrue(in_array('Verify return code: 0 (ok)', array_map('trim', $output))); } public function testLiveSSLCertIsValid() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO exec("echo | openssl s_client -connect secure2.authorize.net:443 -showcerts -verify 10 -CAfile ../lib/ssl/cert.pem 2>&1", $output, $return_value); $this->assertEquals(0, $return_value); $this->assertTrue(in_array('Verify return code: 0 (ok)', array_map('trim', $output))); exec("echo | openssl s_client -connect api2.authorize.net:443 -showcerts -verify 10 -CAfile ../lib/ssl/cert.pem 2>&1", $output, $return_value); $this->assertEquals(0, $return_value); $this->assertTrue(in_array('Verify return code: 0 (ok)', array_map('trim', $output))); } } tests/bootstrap.php 0000644 00000003671 15107327206 0010446 0 ustar 00 <?php /** * Bootstraps the AuthorizeNet PHP SDK test suite */ //properties set in file take precedence over environment //default the value to use $global_api_login_id = (defined('AUTHORIZENET_API_LOGIN_ID') && ''!=AUTHORIZENET_API_LOGIN_ID) ? AUTHORIZENET_API_LOGIN_ID : getenv("api_login_id"); $global_transaction_key = (defined('AUTHORIZENET_TRANSACTION_KEY') && ''!=AUTHORIZENET_TRANSACTION_KEY) ? AUTHORIZENET_TRANSACTION_KEY : getenv("transaction_key"); if (!defined('AUTHORIZENET_LOG_FILE')) { define( "AUTHORIZENET_LOG_FILE", "./authorize-net.log"); } // Append to log file $logMessage = sprintf("Logging Started: %s\n", date(DATE_RFC2822)); if (AUTHORIZENET_LOG_FILE) { file_put_contents(AUTHORIZENET_LOG_FILE, $logMessage, FILE_APPEND); } else { echo $logMessage; } // validate existence of available extensions if (!function_exists('simplexml_load_file')) { $errorMessage = 'The AuthorizeNet SDK requires the SimpleXML PHP extension.'; throw new RuntimeException( $errorMessage ); } if (!function_exists('curl_init')) { $errorMessage = 'The AuthorizeNet SDK requires the cURL PHP extension.'; throw new RuntimeException( $errorMessage ); } // validate existence of credentials if (null == $global_api_login_id || "" == $global_api_login_id) { $errorMessage = "Property 'AUTHORIZENET_API_LOGIN_ID' not found. Define the property value or set the environment 'api_login_id'"; throw new RuntimeException( $errorMessage ); } if (null == $global_transaction_key || "" == $global_transaction_key) { $errorMessage = "Property 'AUTHORIZENET_TRANSACTION_KEY' not found. Define the property value or set the environment 'transaction_key'"; throw new RuntimeException( $errorMessage ); } ini_set('error_reporting', E_ALL); /* $loader = require '../vendor/autoload.php'; if (!isset($loader)) { $errorMessage = 'vendor/autoload.php could not be found.'; throw new RuntimeException( $errorMessage ); } */ tests/AuthorizeNetTD_Test.php 0000644 00000014664 15107327206 0012305 0 ustar 00 <?php class AuthorizeNetTD_Test extends PHPUnit_Framework_TestCase { public function testGetSettledBatchList() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $response = $request->getSettledBatchList(); $this->assertTrue($response->isOk()); $this->assertEquals("I00001",(string)array_pop($response->xpath("messages/message/code"))); } public function testGetSettledBatchListIncludeStatistics() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $response = $request->getSettledBatchList(true); $this->assertTrue($response->isOk()); } public function testGetSettledBatchListForMonth() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $response = $request->getSettledBatchListForMonth(); $this->assertTrue($response->isOk()); } public function testGetTransactionsForDay() { $request = new AuthorizeNetTD; $transactions = $request->getTransactionsForDay(12, 8, 2010); $this->assertTrue(is_array($transactions)); } public function testGetTransactionList() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $response = $request->getSettledBatchList(); $this->assertTrue($response->isOk()); $batches = $response->xpath("batchList/batch"); $batch_id = (string)$batches[0]->batchId; $response = $request->getTransactionList($batch_id); $this->assertTrue($response->isOk()); } public function testGetTransactionListReturnedItems() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $batchId = 0; // Set your $batchId here $response = $request->getTransactionList($batchId); $this->assertTrue($response->isOk()); $transactions = $response->xpath("transactions/transaction"); $transId = $transactions[0]->transId; $details = new AuthorizeNetTD; $response = $details->getTransactionDetails($transId); $this->assertTrue($response->isOk()); $transaction = $response->xml->transaction[0]; $this->assertFalse(empty($transaction->returnedItems)); } public function testGetTransactionListSubscription() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $transId = 0; // Set your $transId here $details = new AuthorizeNetTD; $response = $details->getTransactionDetails($transId); $this->assertTrue($response->isOk()); $transaction = $response->xml->transaction[0]; $this->assertFalse(empty($transaction->subscription)); } public function testGetTransactionDetails() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $sale = new AuthorizeNetAIM; $amount = rand(1, 100); $response = $sale->authorizeAndCapture($amount, '4012888818888', '04/17'); $this->assertTrue($response->approved); $transId = $response->transaction_id; $request = new AuthorizeNetTD; $response = $request->getTransactionDetails($transId); $this->assertTrue($response->isOk()); $this->assertEquals($transId, (string)$response->xml->transaction->transId); $this->assertEquals($amount, (string)$response->xml->transaction->authAmount); $this->assertEquals("Visa", (string)$response->xml->transaction->payment->creditCard->cardType); } public function testGetTransactionDetailsWithSolutionId() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $sale = new AuthorizeNetAIM; $amount = rand(1, 100); $sale->setCustomField('x_solution_id', 'A1000002'); $response = $sale->authorizeAndCapture($amount, '4012888818888', '04/17'); $this->assertTrue($response->approved); $transId = $response->transaction_id; $request = new AuthorizeNetTD; $response = $request->getTransactionDetails($transId); $this->assertTrue($response->isOk()); $this->assertEquals($transId, (string)$response->xml->transaction->transId); $this->assertEquals($amount, (string)$response->xml->transaction->authAmount); $this->assertEquals("Visa", (string)$response->xml->transaction->payment->creditCard->cardType); $this->assertEquals("A1000002", (string)$response->xml->transaction->solution->id); } public function testGetUnsettledTransactionList() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $sale = new AuthorizeNetAIM; $amount = rand(1, 100); $response = $sale->authorizeAndCapture($amount, '4012888818888', '04/17'); $this->assertTrue($response->approved); $request = new AuthorizeNetTD; $response = $request->getUnsettledTransactionList(); $this->assertTrue($response->isOk()); $this->assertTrue($response->xml->transactions->count() >= 1); } public function testGetUnsettledTransactionListHasNoReturnedItems() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $response = $request->getUnsettledTransactionList(); $this->assertTrue($response->isOk()); $this->assertTrue($response->xml->transactions->count() >= 1); foreach($response->xml->transactions->transaction as $transaction) { if($transaction->hasReturnedItems) { $this->assertEquals("false", $transaction->hasReturnedItems); } } } public function testGetBatchStatistics() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $request = new AuthorizeNetTD; $response = $request->getSettledBatchList(); $this->assertTrue($response->isOk()); $this->assertTrue($response->xml->batchList->count() >= 1); $batchId = $response->xml->batchList->batch[0]->batchId; $request = new AuthorizeNetTD; $response = $request->getBatchStatistics($batchId); $this->assertTrue($response->isOk()); } } tests/Controller_Test.php 0000644 00000026046 15107327206 0011554 0 ustar 00 <?php use \net\authorize\api\controller\base\ApiOperationBase; require_once __DIR__ . '/../autoload.php'; //include if tests/bootstrap.php is not loaded automatically require_once __DIR__ . '/bootstrap.php'; class Controller_Test extends PHPUnit_Framework_TestCase { public function testARBGetSubscriptionList() { //$this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO $name = (defined('AUTHORIZENET_API_LOGIN_ID') && ''!=AUTHORIZENET_API_LOGIN_ID) ? AUTHORIZENET_API_LOGIN_ID : getenv("api_login_id"); $transactionKey = (defined('AUTHORIZENET_TRANSACTION_KEY') && ''!=AUTHORIZENET_TRANSACTION_KEY) ? AUTHORIZENET_TRANSACTION_KEY : getenv("transaction_key"); $merchantAuthentication = new net\authorize\api\contract\v1\MerchantAuthenticationType(); $merchantAuthentication->setName($name); $merchantAuthentication->setTransactionKey($transactionKey); //$merchantAuthentication->setMobileDeviceId() $refId = 'ref' . time(); $sorting = new net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType(); $sorting->setOrderBy('firstName'); $sorting->setOrderDescending(false); $paging = new net\authorize\api\contract\v1\PagingType(); $paging->setLimit(10); $paging->setOffset(1); $request = new net\authorize\api\contract\v1\ARBGetSubscriptionListRequest(); $request->setSearchType('subscriptionActive'); $request->setRefId( $refId); $request->setSorting($sorting); $request->setPaging($paging); $request->setMerchantAuthentication($merchantAuthentication); //$controller = new ApiOperationBase($request, 'net\authorize\api\contract\v1\ARBGetSubscriptionListResponse'); $controller = new net\authorize\api\controller\ARBGetSubscriptionListController( $request); $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); // Handle the response. $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertEquals($response->getRefId(), $refId); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } public function testARBGetSubscription() { $name = (defined('AUTHORIZENET_API_LOGIN_ID') && ''!=AUTHORIZENET_API_LOGIN_ID) ? AUTHORIZENET_API_LOGIN_ID : getenv("api_login_id"); $transactionKey = (defined('AUTHORIZENET_TRANSACTION_KEY') && ''!=AUTHORIZENET_TRANSACTION_KEY) ? AUTHORIZENET_TRANSACTION_KEY : getenv("transaction_key"); $merchantAuthentication = new net\authorize\api\contract\v1\MerchantAuthenticationType(); $merchantAuthentication->setName($name); $merchantAuthentication->setTransactionKey($transactionKey); $refId = 'ref' . time(); $request = new net\authorize\api\contract\v1\ARBGetSubscriptionRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setRefId($refId); $request->setSubscriptionId("2930242"); $controller = new net\authorize\api\controller\ARBGetSubscriptionController($request); $response = $controller->executeWithApiResponse( \net\authorize\api\constants\ANetEnvironment::SANDBOX); $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertEquals($response->getRefId(), $refId); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } public function testGetCustomerPaymentProfileList() { $name = (defined('AUTHORIZENET_API_LOGIN_ID') && ''!=AUTHORIZENET_API_LOGIN_ID) ? AUTHORIZENET_API_LOGIN_ID : getenv("api_login_id"); $transactionKey = (defined('AUTHORIZENET_TRANSACTION_KEY') && ''!=AUTHORIZENET_TRANSACTION_KEY) ? AUTHORIZENET_TRANSACTION_KEY : getenv("transaction_key"); $merchantAuthentication = new net\authorize\api\contract\v1\MerchantAuthenticationType(); $merchantAuthentication->setName($name); $merchantAuthentication->setTransactionKey($transactionKey); $refId = 'ref' . time(); $paging = new net\authorize\api\contract\v1\PagingType(); $paging->setLimit("1000"); $paging->setOffset("1"); $sorting = new net\authorize\api\contract\v1\CustomerPaymentProfileSortingType(); $sorting->setOrderBy("id"); $sorting->setOrderDescending("false"); $request = new net\authorize\api\contract\v1\GetCustomerPaymentProfileListRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setRefId($refId); $request->setPaging($paging); $request->setSorting($sorting); $request->setSearchType("cardsExpiringInMonth"); $request->setMonth("2020-12"); $controller = new net\authorize\api\controller\GetCustomerPaymentProfileListController($request); $response = $controller->executeWithApiResponse( \net\authorize\api\constants\ANetEnvironment::SANDBOX); $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertEquals($response->getRefId(), $refId); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } public function testDecryptPaymentData() { //$this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO //using sandbox account log in to mint and enable visa checkout //You'll get a VCO api key. //on web page you can create and grab (from the JS console) Visa Checkout Payment Data //http://brianmc.github.io/checkout.html $name = (defined('AUTHORIZENET_API_LOGIN_ID') && ''!=AUTHORIZENET_API_LOGIN_ID) ? AUTHORIZENET_API_LOGIN_ID : getenv("api_login_id"); $transactionKey = (defined('AUTHORIZENET_TRANSACTION_KEY') && ''!=AUTHORIZENET_TRANSACTION_KEY) ? AUTHORIZENET_TRANSACTION_KEY : getenv("transaction_key"); $merchantAuthentication = new net\authorize\api\contract\v1\MerchantAuthenticationType(); $merchantAuthentication->setName($name); $merchantAuthentication->setTransactionKey($transactionKey); $refId = 'ref' . time(); $callId = "8880580142324354001"; $opaqueData = new net\authorize\api\contract\v1\OpaqueDataType(); $opaqueData->setDataDescriptor("COMMON.VCO.ONLINE.PAYMENT"); $opaqueData->setDataKey("TD3LP3/b2IGMVDAxcAq8414q6L/6mKZ3RItyemrW4BAEIx3GQYOa52cduN1FIU7PQC/Ie4RHQZyp+amY4BTzPg485tn5lJTib++K1IuWbN+LaSCKQ/37g4b47mw02MFr"); $opaqueData->setDataValue("aRHcm1omUMYnVPE6DMRFbPiJm0u87k6QCFHvndmuIHU0WU4+hzro/WY69rBz6kb257Ns5ekXLkbv2YZ6aNIdYJR0M64XgVXnzgcuXaqePoRVPxjX1ko/Ab/qPSVRiDoBr9eOilxxuY0g3OG2IRVUWulHocSdCDoY0VArYcjme8eOD79d7b67q+bZ6MJPD7OBwaHaiy0JoMYBZc8BrMD2H3rsGb6eFpk8URLiZazZXus1gec00KU75sIDDlIFjSIKmBD3hrolsLIrNwiEdKGVSadAV2FXF2Mohxz9zOt1q2HssoyaK645PFy/Y0l6c3l3CxVYi1qjb9q23XafNUDg0xTEDZMnSTU7CudB0GifKFowokb56UOZ+OwyxWyPHNVhStWRhZbsWsDY1GAoyAr5HkXgS1XReWC8PPLB+ZP/tpOqDyocs6wBW/Ych8ht6IG/xdrzPmWRYvAWG6rK5/Weko4f0XSiX7oGS9jRdOR+6Xkllbm75KTXD+X0nJOvLsb6o5ZTe6wzTwUbckSASFVbFC4ViFSehdoyFI58P9byNMNI7NNN7Drs7vVDeT6l6bC4WumPEg24HqyKelMNuKzfWcG2kbgLuHBLaOoC0g2hMbKVYA0uVHMkf07kWgCpr/38SnAjfsI9Owo+EmBH4OJpXxqvQg5RGtaWSa0fOmckrKyfE90tx/aLAl6+DuWbi2yb4RNB9UWRCpEHcTlnQ89oOIZdxvAYIMZzl1IwkpwmQMul26ztcaKgbZXayRcUHzqSpYRnfibjec3Tdmz90IjyUK54qz87YwoCu4kX2u8pu5NcAMV9bBACsda+1hRG5WERKtNdJLiCoShZhWhypAh/yYU15uOHrCSk0FZRiFi3Ey56yZBNQ5owY7LTYRQbmKgmxcvmbOPf1/1OOFrNx6EljBns76TjePP5165sQOsDYNc0oZugcGpe3R9vMG6uESD9wzCyiJ/+AKqbHO0p5SO0FQexl+pKtMFqaOlynBmgNG1yKLPLHrVjgMiHXaITJ+59FA3YmqTO7k1gzyywMovUFCdCHFskGXeb4YLjA7qxseK+gc8X3eqo+0gujLp9yLwjuKJxQKJVAN2KqzMWJLT1o3C61HzHjxkkd7VnwDJRNc9mTmzF0v/E8pQ1WFl2DNjYAnYgeoP3Xvw0mOjeV4OFccDjfwSd/8pBNmHHLjDkGpNlCI7mPvrKHvIVlZMTOkP6xoiCf/je5BMblZ1GZ2E52Ed872HUnQ2ZNh97YMtaGWr+MzPdZ4ecRKQ+FeJWylbapQURtWgO3hfJi/Cq8luZXBSAwoTt5L31cOSqHyvb/XO2ZitRTUCHuU/+AhCPRWgIZQfqgpFRffrNM2vjHnFRCUIBq75uSI94GDjUHej95Y6LAR6/+9AcZV7fphOwy8q/YomANZ7DXfY68j5YM9CTSb19iSHfyQTd2rJ8Cq+dfpFO7KituAxP1UONiFRTNa9azmkpBgqo9IxRFbqOMkuqgzVjcTQkCCTaGRjow8pOLPmMnFD+qGvub56YTv8YFCHObBYYCKe4b8I7aSxT69/d6R3aNGcHzNwT/OdL02hM3AnDV+2WVGpV24kqXbs69oWEbbFPmOvVQrZJlWnFOg0N85DnZSvz5kc22Llpt2GWzyMw+9hMCDmYNrpxewUIRWym3Q+JV34I+o6b7tQgO5rQYrYSd1ONvhfGztHzP43MMi/5LLx0Hl/CYDeqaduY5hiUZftRJPTgwuDhwZfv0NWEswb8hWkymwYp7Gmxhf+sxi/GyCyUZbpQxRd4d3fX5VYRO1i0k6n1t1vkOgg/oYzTh7oOwyzuEhJqcSk0wdG++qsJw4J04qpoua6gRWs/j7n2732OgzRt1RFd7e5nwJRHGRwBvaqqXWpmqhrtPiaJRNf0vlZtmNvk+eZQpd501C22EjOBFtJg8lewG5CyG6dEX+RhIfqLAT1oobnaxLYoDfw4s5kNgtKj9MRzVGo6tbCfNMELHwC3/GMAStkci7tglkDLFKV/IG7cRtEZ0wEYVVIcX/HzL8M8IoaNQKVkRGb7/cnIiE8zi1uUZjnTXrNIKf0PdIVrr2JHgfw5az2tj921O7v/BwP8vyEl2IoCD5fYZpwBU8JAmGLhtMTFExOBDsQsJWp5w+cdJJ8VJg1w1bXt6NxcZ9U9qfkpf4wJ8TYROF349Zgcl0gjBjCRlTaQnisySXcZBfpweYCVuwKKHXw="); //"partialShippingAddress":{"countryCode":"US","postalCode":"98103"},"callid":"8880580142324354001","vInitRequest":{"apikey":"GY3CQNLRHKE63GWCVLHH13Ff12umyj4ZglGhGdCM6y6Liy0YE","paymentRequest":{"currencyCode":"USD","total":"16.00"},"parentUrl":"http://brianmc.github.io/checkout.html","browserLocale":"en_US","clientId":"848a93dc-8d84-48fe-9d88-e7d1e9e50abb","allowEnrollment":true,"settings":{}}} $request = new net\authorize\api\contract\v1\DecryptPaymentDataRequest(); $request->setRefId( $refId); $request->setMerchantAuthentication($merchantAuthentication); $request->setOpaqueData($opaqueData); $request->setCallId($callId); $controller = new net\authorize\api\controller\DecryptPaymentDataController( $request); $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); // Handle the response. $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); $this->assertEquals("Ok", $response->getMessages()->getResultCode()); //$this->assertEquals($response->getRefId(), $refId); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } } tests/net/authorize/api/controller/CreateTransactionControllerTest.php 0000644 00000030516 15107327207 0022501 0 ustar 00 <?php namespace net\authorize\api\controller\test; use net\authorize\api\contract\v1 AS apiContract; use net\authorize\api\controller AS apiController; require_once __DIR__ . '/ApiCoreTestBase.php'; class CreateTransactionControllerTest extends ApiCoreTestBase { public function testCreateTransactionCreditCard() { $merchantAuthentication = new apiContract\MerchantAuthenticationType(); $merchantAuthentication->setName(self::$LoginName); $merchantAuthentication->setTransactionKey(self::$TransactionKey); //create a transaction $transactionRequestType = new apiContract\TransactionRequestType(); $transactionRequestType->setTransactionType( "authCaptureTransaction"); // TODO Change to Enum $transactionRequestType->setAmount( $this->setValidAmount( $this->counter)); $transactionRequestType->setPayment( $this->paymentOne); $transactionRequestType->setOrder( $this->orderType); $transactionRequestType->setCustomer( $this->customerDataOne); $transactionRequestType->setBillTo( $this->customerAddressOne); $request = new apiContract\CreateTransactionRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setRefId( $this->refId); $request->setTransactionRequest( $transactionRequestType); $controller = new apiController\CreateTransactionController($request); $controller->execute( self::$TestEnvironment); $response = $controller->getApiResponse(); // Handle and validate the response self::displayMessages( $response); $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); $logMessage = sprintf("\n%s: Controller Response ResultCode: '%s'.", \net\authorize\util\Helpers::now(), $response->getMessages()->getResultCode()); if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } else { echo $logMessage; } $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertEquals( $this->refId, $response->getRefId()); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } public function testCreateTransactionPayPal() { $merchantAuthentication = new apiContract\MerchantAuthenticationType(); $merchantAuthentication->setName(self::$LoginName); $merchantAuthentication->setTransactionKey(self::$TransactionKey); $paymentType = new apiContract\PaymentType(); $paymentType->setPayPal($this->payPalOne); //create a transaction $transactionRequestType = new apiContract\TransactionRequestType(); $transactionRequestType->setTransactionType( "authOnlyTransaction"); // TODO Change to Enum $transactionRequestType->setAmount( $this->setValidAmount( $this->counter)); $transactionRequestType->setPayment( $paymentType); $request = new apiContract\CreateTransactionRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setTransactionRequest( $transactionRequestType); $controller = new apiController\CreateTransactionController($request); $response = $controller->executeWithApiResponse( self::$TestEnvironment); // Handle the response. $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); self::displayMessages( $response); if ( "Ok" != $response->getMessages()->getResultCode()) { $this->displayTransactionMessages( $response); //Ignore assertion for now //$this->assertTrue( false, "Should not reach here."); } else { $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } } public function testCreateTransactionApplePay() { $merchantAuthentication = new apiContract\MerchantAuthenticationType(); $merchantAuthentication->setName(self::$LoginName); $merchantAuthentication->setTransactionKey(self::$TransactionKey); $OpaqueData = new apiContract\OpaqueDataType(); $OpaqueData->setDataDescriptor("COMMON.APPLE.INAPP.PAYMENT"); $OpaqueData->setDataValue("eyJkYXRhIjoiQkRQTldTdE1tR2V3UVVXR2c0bzdFXC9qKzFjcTFUNzhxeVU4NGI2N2l0amNZSTh3UFlBT2hzaGpoWlBycWRVcjRYd1BNYmo0emNHTWR5KysxSDJWa1BPWStCT01GMjV1YjE5Y1g0bkN2a1hVVU9UakRsbEIxVGdTcjhKSFp4Z3A5ckNnc1NVZ2JCZ0tmNjBYS3V0WGY2YWpcL284WkliS25yS1E4U2gwb3VMQUtsb1VNbit2UHU0K0E3V0tycXJhdXo5SnZPUXA2dmhJcStIS2pVY1VOQ0lUUHlGaG1PRXRxK0grdzB2UmExQ0U2V2hGQk5uQ0hxenpXS2NrQlwvMG5xTFpSVFliRjBwK3Z5QmlWYVdIZWdoRVJmSHhSdGJ6cGVjelJQUHVGc2ZwSFZzNDhvUExDXC9rXC8xTU5kNDdrelwvcEhEY1JcL0R5NmFVTStsTmZvaWx5XC9RSk4rdFMzbTBIZk90SVNBUHFPbVhlbXZyNnhKQ2pDWmxDdXcwQzltWHpcL29iSHBvZnVJRVM4cjljcUdHc1VBUERwdzdnNjQybTRQendLRitIQnVZVW5lV0RCTlNEMnU2amJBRzMiLCJ2ZXJzaW9uIjoiRUNfdjEiLCJoZWFkZXIiOnsiYXBwbGljYXRpb25EYXRhIjoiOTRlZTA1OTMzNWU1ODdlNTAxY2M0YmY5MDYxM2UwODE0ZjAwYTdiMDhiYzdjNjQ4ZmQ4NjVhMmFmNmEyMmNjMiIsInRyYW5zYWN0aW9uSWQiOiJjMWNhZjVhZTcyZjAwMzlhODJiYWQ5MmI4MjgzNjM3MzRmODViZjJmOWNhZGYxOTNkMWJhZDlkZGNiNjBhNzk1IiwiZXBoZW1lcmFsUHVibGljS2V5IjoiTUlJQlN6Q0NBUU1HQnlxR1NNNDlBZ0V3Z2ZjQ0FRRXdMQVlIS29aSXpqMEJBUUloQVBcL1wvXC9cLzhBQUFBQkFBQUFBQUFBQUFBQUFBQUFcL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL01Gc0VJUFwvXC9cL1wvOEFBQUFCQUFBQUFBQUFBQUFBQUFBQVwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cLzhCQ0JheGpYWXFqcVQ1N1BydlZWMm1JYThaUjBHc014VHNQWTd6ancrSjlKZ1N3TVZBTVNkTmdpRzV3U1RhbVo0NFJPZEpyZUJuMzZRQkVFRWF4ZlI4dUVzUWtmNHZPYmxZNlJBOG5jRGZZRXQ2ek9nOUtFNVJkaVl3cFpQNDBMaVwvaHBcL200N242MHA4RDU0V0s4NHpWMnN4WHM3THRrQm9ONzlSOVFJaEFQXC9cL1wvXC84QUFBQUFcL1wvXC9cL1wvXC9cL1wvXC9cLys4NXZxdHB4ZWVoUE81eXNMOFl5VlJBZ0VCQTBJQUJHbStnc2wwUFpGVFwva0RkVVNreHd5Zm84SnB3VFFRekJtOWxKSm5tVGw0REdVdkFENEdzZUdqXC9wc2hCWjBLM1RldXFEdFwvdERMYkUrOFwvbTB5Q21veHc9IiwicHVibGljS2V5SGFzaCI6IlwvYmI5Q05DMzZ1QmhlSEZQYm1vaEI3T28xT3NYMkora0pxdjQ4ek9WVmlRPSJ9LCJzaWduYXR1cmUiOiJNSUlEUWdZSktvWklodmNOQVFjQ29JSURNekNDQXk4Q0FRRXhDekFKQmdVckRnTUNHZ1VBTUFzR0NTcUdTSWIzRFFFSEFhQ0NBaXN3Z2dJbk1JSUJsS0FEQWdFQ0FoQmNsK1BmMytVNHBrMTNuVkQ5bndRUU1Ba0dCU3NPQXdJZEJRQXdKekVsTUNNR0ExVUVBeDRjQUdNQWFBQnRBR0VBYVFCQUFIWUFhUUJ6QUdFQUxnQmpBRzhBYlRBZUZ3MHhOREF4TURFd05qQXdNREJhRncweU5EQXhNREV3TmpBd01EQmFNQ2N4SlRBakJnTlZCQU1lSEFCakFHZ0FiUUJoQUdrQVFBQjJBR2tBY3dCaEFDNEFZd0J2QUcwd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFOQzgra2d0Z212V0YxT3pqZ0ROcmpURUJSdW9cLzVNS3ZsTTE0NnBBZjdHeDQxYmxFOXc0ZklYSkFEN0ZmTzdRS2pJWFlOdDM5ckx5eTd4RHdiXC81SWtaTTYwVFoyaUkxcGo1NVVjOGZkNGZ6T3BrM2Z0WmFRR1hOTFlwdEcxZDlWN0lTODJPdXA5TU1vMUJQVnJYVFBITmNzTTk5RVBVblBxZGJlR2M4N20wckFnTUJBQUdqWERCYU1GZ0dBMVVkQVFSUk1FK0FFSFpXUHJXdEpkN1laNDMxaENnN1lGU2hLVEFuTVNVd0l3WURWUVFESGh3QVl3Qm9BRzBBWVFCcEFFQUFkZ0JwQUhNQVlRQXVBR01BYndCdGdoQmNsK1BmMytVNHBrMTNuVkQ5bndRUU1Ba0dCU3NPQXdJZEJRQURnWUVBYlVLWUNrdUlLUzlRUTJtRmNNWVJFSW0ybCtYZzhcL0pYditHQlZRSmtPS29zY1k0aU5ERkFcL2JRbG9nZjlMTFU4NFRId05SbnN2VjNQcnY3UlRZODFncTBkdEM4elljQWFBa0NISUkzeXFNbko0QU91NkVPVzlrSmsyMzJnU0U3V2xDdEhiZkxTS2Z1U2dRWDhLWFFZdVpMazJScjYzTjhBcFhzWHdCTDNjSjB4Z2VBd2dkMENBUUV3T3pBbk1TVXdJd1lEVlFRREhod0FZd0JvQUcwQVlRQnBBRUFBZGdCcEFITUFZUUF1QUdNQWJ3QnRBaEJjbCtQZjMrVTRwazEzblZEOW53UVFNQWtHQlNzT0F3SWFCUUF3RFFZSktvWklodmNOQVFFQkJRQUVnWUJhSzNFbE9zdGJIOFdvb3NlREFCZitKZ1wvMTI5SmNJYXdtN2M2VnhuN1phc05iQXEzdEF0OFB0eSt1UUNnc3NYcVprTEE3a3oyR3pNb2xOdHY5d1ltdTlVandhcjFQSFlTK0JcL29Hbm96NTkxd2phZ1hXUnowbk1vNXkzTzFLelgwZDhDUkhBVmE4OFNyVjFhNUpJaVJldjNvU3RJcXd2NXh1WmxkYWc2VHI4dz09In0="); $paymentType = new apiContract\PaymentType(); $paymentType->setOpaqueData( $OpaqueData); //create a transaction $transactionRequestType = new apiContract\TransactionRequestType(); $transactionRequestType->setTransactionType( "authCaptureTransaction"); // TODO Change to Enum $transactionRequestType->setAmount( $this->setValidAmount( $this->counter)); $transactionRequestType->setPayment( $paymentType); $request = new apiContract\CreateTransactionRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setTransactionRequest( $transactionRequestType); $controller = new apiController\CreateTransactionController($request); $response = $controller->executeWithApiResponse( self::$TestEnvironment); // Handle the response. $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); self::displayMessages( $response); if ( "Ok" != $response->getMessages()->getResultCode()) { $this->displayTransactionMessages( $response); //Ignore assertion for now //$this->assertTrue( false, "Should not reach here."); } else { $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } } function displayTransactionMessages( apiContract\CreateTransactionResponse $response) { if ( null != $response) { $logMessage = sprintf("\n%s: Displaying Transaction Response.", \net\authorize\util\Helpers::now()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } if ( null != $response->getTransactionResponse()) { $logMessage = sprintf("\n%s: Transaction Response Code: '%s'.", \net\authorize\util\Helpers::now(), $response->getTransactionResponse()->getResponseCode()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } $allMessages = $response->getTransactionResponse()->getMessages(); $allErrors = $response->getTransactionResponse()->getErrors(); $errorCount = 0; if ( null != $allErrors) { foreach ( $allErrors as $error) { $errorCount++; $logMessage = sprintf("\n%s: %d - Error: Code:'%s', Text:'%s'", \net\authorize\util\Helpers::now(), $errorCount, $error->getErrorCode(), $error->getErrorText()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } } $messageCount = 0; if ( null != $allMessages) { foreach ( $allMessages as $message) { $messageCount++; //$logMessage = sprintf("\n%s: %d - Message: Code:'%s', Description:'%s'", \net\authorize\util\Helpers::now(), $errorCount, $message->getCode(), $message->getDescription()); $logMessage = sprintf("\n%s: %d - Message: ", \net\authorize\util\Helpers::now(), $messageCount); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } } $logMessage = sprintf("\n%s: Transaction Response, Errors: '%d', Messages: '%d'.", \net\authorize\util\Helpers::now(), $errorCount, $messageCount); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } } } } tests/net/authorize/api/controller/LogoutControllerTest.php 0000644 00000002567 15107327210 0020340 0 ustar 00 <?php namespace net\authorize\api\controller\test; use net\authorize\api\contract\v1 AS apiContract; use net\authorize\api\controller AS apiController; require_once __DIR__ . '/ApiCoreTestBase.php'; class LogoutControllerTest extends ApiCoreTestBase { public function testLogout() { $merchantAuthentication = new apiContract\MerchantAuthenticationType(); $merchantAuthentication->setName(self::$LoginName); $merchantAuthentication->setTransactionKey(self::$TransactionKey); $request = new apiContract\LogoutRequest(); $request->setMerchantAuthentication($merchantAuthentication); $request->setRefId( $this->refId); $controller = new apiController\LogoutController($request); $response = $controller->executeWithApiResponse( self::$TestEnvironment); // Handle the response. $this->assertNotNull($response, "null response"); $this->assertNotNull($response->getMessages()); $this->assertEquals("Ok", $response->getMessages()->getResultCode()); $this->assertEquals( $this->refId, $response->getRefId()); $this->assertTrue(0 < count($response->getMessages())); foreach ($response->getMessages() as $message) { $this->assertEquals("I00001", $message->getCode()); $this->assertEquals("Successful.", $response->getText()); } } } tests/net/authorize/api/controller/ApiCoreTestBase.php 0000644 00000017505 15107327211 0017137 0 ustar 00 <?php namespace net\authorize\api\controller\test; use net\authorize\api\contract\v1 AS apiContract; use net\authorize\api\controller AS apiController; require_once __DIR__ . '/../../../../../autoload.php'; //include if tests/bootstrap.php is not loaded automatically //require_once __DIR__ . '/../../../../bootstrap.php'; class ApiCoreTestBase extends \PHPUnit_Framework_TestCase { protected $paymentOne = null; protected $orderType = null; protected $customerDataOne = null; protected $customerAddressOne = null; protected $payPalOne = null; protected $counter = 0; protected $counterStr = "0"; protected $refId = ''; protected static $LoginName = ''; protected static $TransactionKey = ''; protected static $TestEnvironment = \net\authorize\api\constants\ANetEnvironment::SANDBOX; protected static $log_file = false; public static function setUpBeforeClass() { if (!defined('AUTHORIZENET_LOG_FILE')) { define( "AUTHORIZENET_LOG_FILE", __DIR__ . "/../../../../../log/authorize-net.log"); } self::$LoginName = (defined('AUTHORIZENET_API_LOGIN_ID') && ''!=AUTHORIZENET_API_LOGIN_ID) ? AUTHORIZENET_API_LOGIN_ID : getenv("api_login_id"); self::$TransactionKey = (defined('AUTHORIZENET_TRANSACTION_KEY') && ''!=AUTHORIZENET_TRANSACTION_KEY) ? AUTHORIZENET_TRANSACTION_KEY : getenv("transaction_key"); self::$log_file = (defined('AUTHORIZENET_LOG_FILE') ? AUTHORIZENET_LOG_FILE : false); } public static function tearDownAfterClass() { } public function __construct() { } protected function setUp() { $logMessage = sprintf("\n%s: Test '%s' Starting.", \net\authorize\util\Helpers::now(), $this->getName()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } $this->refId = 'ref' . time(); $this->counter = rand(); $this->counterStr = sprintf("%s", $this->counter); $driversLicenseOne = new apiContract\DriversLicenseType(); $driversLicenseOne->setNumber( $this->getRandomString( "DL-" )); $driversLicenseOne->setState( "WA"); $driversLicenseOne->setDateOfBirth( "01/01/1960"); $customerOne = new apiContract\CustomerType(); $customerOne->setType("individual"); //TODO: CHANGE TO ENUM $customerOne->setId( $this->getRandomString( "Id" )); $customerOne->setEmail ( $this->counterStr . ".customerOne@test.anet.net"); $customerOne->setPhoneNumber("1234567890"); $customerOne->setFaxNumber("1234567891"); //$customerOne->setDriversLicense( $driversLicenseOne); $customerOne->setTaxId( "911011011"); $creditCardOne = new apiContract\CreditCardType(); $creditCardOne->setCardNumber( "4111111111111111" ); $creditCardOne->setExpirationDate( "2038-12"); $this->paymentOne = new apiContract\PaymentType(); $this->paymentOne->setCreditCard( $creditCardOne); $this->orderType = new apiContract\OrderType(); $this->orderType->setInvoiceNumber( $this->getRandomString( "Inv:" )); $this->orderType->setDescription( $this->getRandomString( "Description" )); $this->customerDataOne = new apiContract\CustomerDataType(); //$this->customerDataOne->setDriversLicense( $customerOne->getDriversLicense()); $this->customerDataOne->setEmail( $customerOne->getEmail()); $this->customerDataOne->setId( $customerOne->getId()); $this->customerDataOne->setTaxId( $customerOne->getTaxId()); $this->customerDataOne->setType( $customerOne->getType()); $this->customerAddressOne = new apiContract\CustomerAddressType(); $this->customerAddressOne->setFirstName( $this->getRandomString( "FName" )); $this->customerAddressOne->setLastName( $this->getRandomString( "LName" )); $this->customerAddressOne->setCompany( $this->getRandomString( "Company" )); $this->customerAddressOne->setAddress( $this->getRandomString( "StreetAdd" )); $this->customerAddressOne->setCity( "Bellevue"); $this->customerAddressOne->setState( "WA"); $this->customerAddressOne->setZip( "98004"); $this->customerAddressOne->setCountry( "USA"); $this->customerAddressOne->setPhoneNumber( $customerOne->getPhoneNumber()); $this->customerAddressOne->setFaxNumber( $customerOne->getFaxNumber()); $this->payPalOne = new apiContract\PayPalType(); $this->payPalOne->setPaypalLc( "IT" ); $this->payPalOne->setPaypalPayflowcolor( "FFFFF0"); $this->payPalOne->setSuccessUrl( $this->getRandomString( "http://success.anet.net")); $this->payPalOne->setCancelUrl( $this->getRandomString( "http://cancel.anet.net")); //payPalHdrImg = GetRandomString("Hdr"), //payerID = GetRandomString("PayerId"), } protected function tearDown() { $logMessage = sprintf("\n%s: Test '%s' Completed.\n", \net\authorize\util\Helpers::now(), $this->getName()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } protected function getRandomString( $title) { return sprintf( "%s%s", $title, $this->counterStr); } protected function setValidAmount( $number) { $amount = $number; if ( self::MaxTransactionAmount < $amount) { $amount = rand(1, self::MaxTransactionAmount); //generate between 1 and MaxTransactionAmount, inclusive } return $amount; } /** * @param apiContract\ANetApiResponseType $response */ protected static function displayMessages( apiContract\ANetApiResponseType $response) { if ( null != $response) { $logMessage = sprintf("\n%s: Controller Response is not null, iterating messages.", \net\authorize\util\Helpers::now()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } $msgCount = 0; $allMessages = $response->getMessages(); if ( null != $allMessages ) { $logMessage = sprintf("\n%s: Controller ResultCode: '%s'.", \net\authorize\util\Helpers::now(), $allMessages->getResultCode()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } if (null != $allMessages->getMessage()) { foreach ($allMessages->getMessage() as $message) { $msgCount++; $logMessage = sprintf("\n%d - Message, Code: '%s', Text: '%s'", $msgCount, $message->getCode(), $message->getText()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } } } $logMessage = sprintf("\n%s: Controller Response contains '%d' messages.", \net\authorize\util\Helpers::now(), $msgCount); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } else { $logMessage = sprintf("\n%s: Response is null.", \net\authorize\util\Helpers::now()); echo $logMessage; if (self::$log_file) { file_put_contents(self::$log_file, $logMessage, FILE_APPEND); } } } const MaxTransactionAmount = 10000; //214747; } tests/domain.crt 0000644 00000004465 15107327211 0007677 0 ustar 00 CONNECTED(00000003) --- Certificate chain 0 s:/C=US/ST=Utah/L=American Fork/O=Authorize.Net Corp./OU=AUTHORIZE.NET CORP./CN=secure.authorize.net i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA 1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority --- Server certificate -----BEGIN CERTIFICATE----- MIIDSTCCArKgAwIBAgIQfmO9EP9/fYY45sRzhqgfGzANBgkqhkiG9w0BAQUFADBM MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTA0MDkwMDAwMDBaFw0x MTA0MTEyMzU5NTlaMIGPMQswCQYDVQQGEwJVUzENMAsGA1UECBMEVXRhaDEWMBQG A1UEBxMNQW1lcmljYW4gRm9yazEcMBoGA1UEChMTQXV0aG9yaXplLk5ldCBDb3Jw LjEcMBoGA1UECxMTQVVUSE9SSVpFLk5FVCBDT1JQLjEdMBsGA1UEAxMUc2VjdXJl LmF1dGhvcml6ZS5uZXQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN0dh86L 70MHbun7wTNGV0pNXsnebt3z9mCpndLUiBp5J/b57hQO5/HvevkhkDyCrky/Dn7y 4SEJh6RHYuP4ZBk30DS8iH5dWCRHqSQgpMKhUl/+D7KHbVqgPzOpOR44TiSa1P5m Fv0qicvRR3iwSK/6ESywNvEJk1iiYPnpnnlvAgMBAAGjgecwgeQwDAYDVR0TAQH/ BAIwADA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnRoYXd0ZS5jb20vVGhh d3RlU0dDQ0EuY3JsMCgGA1UdJQQhMB8GCCsGAQUFBwMBBggrBgEFBQcDAgYJYIZI AYb4QgQBMHIGCCsGAQUFBwEBBGYwZDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3Au dGhhd3RlLmNvbTA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy50aGF3dGUuY29tL3Jl cG9zaXRvcnkvVGhhd3RlX1NHQ19DQS5jcnQwDQYJKoZIhvcNAQEFBQADgYEARa0l PaGn4TOw3KOMVu8eiSdho4Nmal6u9AWE3rWHDakO2/a1AkZTM2/Wpt6KI3fp6WWK LSsa9wLoVYSJ6pI7bmiJTvyx42yPP0PZXQSz05PHgTEGyW2jAn4N1hFvbTj28mZT jv2jd12xgrmX34nulLdydNaM8J7CauhMvqwwvZ0= -----END CERTIFICATE----- subject=/C=US/ST=Utah/L=American Fork/O=Authorize.Net Corp./OU=AUTHORIZE.NET CORP./CN=secure.authorize.net issuer=/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA --- No client certificate CA names sent --- SSL handshake has read 1791 bytes and written 306 bytes --- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : RC4-MD5 Session-ID: 03130000B43AEDC6A4B731EB5FA519E70B6CAC52856869A8593521601F677C28 Session-ID-ctx: Master-Key: C92AA33E812EFC279AAFF16922CFB3519F94FDA820ED3158A72BD97D3BB2D0EC938E7E71817958DB545EA2E147CCC84A Key-Arg : None Start Time: 1297707939 Timeout : 300 (sec) Verify return code: 20 (unable to get local issuer certificate) --- tests/report.html 0000644 00000004503 15107327211 0010110 0 ustar 00 <html><body><h2 id="AuthorizeNet_SOAP_Test">AuthorizeNet_SOAP_</h2><ul><li>Save soap doc</li><li>Get customer ids</li></ul><h2 id="AuthorizeNetAIM_Sandbox_Test">AuthorizeNetAIM_Sandbox_</h2><ul><li>Auth capture</li><li>Auth capture alternate</li><li>Auth capture short</li><li>Auth capture partial</li><li>Auth capture short no verify</li><li>Aim response fields</li><li>Void</li><li>Void short</li><li>Auth capture e check sandbox</li><li>Amex</li><li>Discover</li><li>Visa</li><li>Auth only</li><li>Auth capture void</li><li>Advanced a i m</li><li>Auth capture custom fields</li><li>Encap character</li><li>Auth capture set multiple custom fields</li><li>Invalid merchant credentials</li><li>Invalid credit card</li><li>Error</li><li>Multiple line items</li><li>All fields long method</li><li>Response methods</li><li>Set bad field</li></ul><h2 id="AuthorizeNetAIM_Live_Test">AuthorizeNetAIM_Live_</h2><ul><li>Auth capture set e check method</li><li>Auth capture e check</li><li>Auth capture live server test request</li><li>Auth capture live server</li><li>Invalid credentials</li></ul><h2 id="AuthorizeNetARB_Test">AuthorizeNetARB_</h2><ul><li><strike>All methods</strike></li><li>Create subscription long</li><li>Create subscription e check</li></ul><h2 id="AuthorizeNetCIM_Test">AuthorizeNetCIM_</h2><ul><li>Delete all customer profiles</li><li>X path</li><li>Create customer profile</li><li>Get customer profile</li><li>Create customer profile with validation mode</li><li>Update split tender group</li><li>All</li><li>Get customer profile ids</li></ul><h2 id="AuthorizeNetCP_Test">AuthorizeNetCP_</h2><ul><li>Auth capture</li><li>Auth capture track 1</li><li>Auth capture track</li><li>Auth capture track 2 error</li><li>Response fields</li><li>Xml response</li><li>Xml response failure</li></ul><h2 id="AuthorizeNetDPM_Test">AuthorizeNetDPM_</h2><ul><li>Generate fingerprint</li><li>Get credit card form</li><li>Relay response url</li></ul><h2 id="AuthorizeNetSIM_Test">AuthorizeNetSIM_</h2><ul><li>Generate hash</li><li>Amount</li><li>Is auth net</li><li>Is error</li></ul><h2 id="AuthorizeNetTD_Test">AuthorizeNetTD_</h2><ul><li>Get settled batch list</li><li>Get settled batch list include statistics</li><li>Get settled batch list for month</li><li>Get transactions for day</li><li>Get transaction list</li><li>Get transaction details</li></ul></body></html>