SCMP API Client Developer Guide - CyberSource

Transcription

Title PageCyberSource SCMP API ClientDeveloper GuideSeptember 2019CyberSource Corporation HQ P.O. Box 8999 San Francisco, CA 94128-8999 Phone: 800-530-9095

CyberSource Contact InformationFor general information about our company, products, and services, go tohttp://www.cybersource.com.For sales questions about any CyberSource Service, email sales@cybersource.com orcall 650-432-7350 or 888-330-2300 (toll free in the United States).For support information about any CyberSource Service, visit the Support Center athttp://www.cybersource.com/support.Copyright 2015 CyberSource Corporation. All rights reserved. CyberSource Corporation ("CyberSource") furnishes thisdocument and the software described in this document under the applicable agreement between the reader ofthis document ("You") and CyberSource ("Agreement"). You may use this document and/or software only inaccordance with the terms of the Agreement. Except as expressly set forth in the Agreement, the informationcontained in this document is subject to change without notice and therefore should not be interpreted in any wayas a guarantee or warranty by CyberSource. CyberSource assumes no responsibility or liability for any errorsthat may appear in this document. The copyrighted software that accompanies this document is licensed to Youfor use only in strict accordance with the Agreement. You should read the Agreement carefully before using thesoftware. Except as permitted by the Agreement, You may not reproduce any part of this document, store thisdocument in a retrieval system, or transmit this document, in any form or by any means, electronic, mechanical,recording, or otherwise, without the prior written consent of CyberSource.Restricted Rights LegendsFor Government or defense agencies. Use, duplication, or disclosure by the Government or defense agenciesis subject to restrictions as set forth the Rights in Technical Data and Computer Software clause at DFARS252.227-7013 and in similar clauses in the FAR and NASA FAR Supplement.For civilian agencies. Use, reproduction, or disclosure is subject to restrictions set forth in subparagraphs (a)through (d) of the Commercial Computer Software Restricted Rights clause at 52.227-19 and the limitations setforth in CyberSource Corporation's standard commercial agreement for this software. Unpublished rightsreserved under the copyright laws of the United States.TrademarksAuthorize.Net, eCheck.Net, and The Power of Payment are registered trademarks of CyberSource Corporation.CyberSource, CyberSource Payment Manager, CyberSource Risk Manager, CyberSource Decision Manager,and CyberSource Connect are trademarks and/or service marks of CyberSource Corporation.All other brands and product names are trademarks or registered trademarks of their respective owners.2

CONTENTSContentsRecent Revisions to This DocumentAbout This GuideAudiencePurposeScope89999Conventions 10Note and Important Statements 10Text and Command Conventions 10Related Documents 10Client Package Documentation 10CyberSource Services DocumentationCustomer Support1111Chapter 1Introduction12Chapter 2C/C Client13Basic C Program Example13Installing and Configuring the SDK 15Minimum System Requirements 15Downloading the SDK 16Installing the SDK for the First Time 16Linux and Solaris 16Windows 17Indicating the Path to Your Security KeysUpgrading the SDK 17Parts of the SDK 18Creating the Configuration File 19Testing the SDK Installation 19Using the mt test Program 20Going Live 20SCMP API Client Developer Guide September 2019173

ContentsUsing the SDK 21Requesting CyberSource Services 21Constructing and Sending Requests 22Handling the Reply Flags and Error MessagesRequesting Multiple Services 26Timeouts and Automatic Retries 27How a Transaction without Retry Works 27How a Transaction with Retry Works 28Evaluating the Retry Reply Fields 28Setting Retry and Timeout Parameters 29System Errors and Retries 3023C Functions 31ics destroy() Function 31ics fadd() Function 31ics fcount() Function 32ics fget() Function 32ics fgetbyname() Function 33ics fname() Function 33ics fremove() Function 34ics init() Function 35ics send() Function 36ics set config file() Function 36ics msg Data Type 38Chapter 3Java Client39Basic Java Program Example39Installing and Configuring the SDK 41Minimum System Requirements 41Upgrading the SDK 41Downloading the SDK File 42Setting the Classpath 43Unix csh Environment 43Unix sh Environment 43Windows 43Indicating the Path to Your Security Keys 43Setting Properties in ICSClient.props 44Testing the SDK Installation 47Failure Due to Missing Field 48Failure Due to Invalid Data 48Going Live 49SCMP API Client Developer Guide September 20194

ContentsUsing the SDK 50Requesting CyberSource Services 50Constructing and Sending Requests 50Handling the Reply Flags and Error Messages 52Handling Exceptions 55Requesting Multiple Services 56Specifying the Proxy Settings in the Request 57Timeouts and Automatic Retries 58How a Transaction without Retry Works 58How a Transaction with Retry Works 59Evaluating the Retry Reply Fields 59Setting Retry and Timeout Parameters 60System Errors and Retries 61Enterprise JavaBeans (EJB) 62API for the Java SDK 62ICSClient 62Declaration 62Description 62Constructors 63Method 64ICSClientRequest 65Declaration 65Description 65Constructor 65Methods 66ICSClientOffer 66Declaration 66Description 67Constructor 67Method 67ICSReply 67Declaration 67Description 68Method 68SCMP API Client Developer Guide September 20195

ContentsChapter 4.NET ClientOnline Help6969Basic C# Program Example69Installing and Testing the Client 71Minimum System Requirements 71Installing the Client 72Installing the CyberSource Sample Store 73Customizing Your Visual Studio .NET ToolboxTesting the .NET Client Installation 76Running ICSTest 76Using the Sample Store 77Going Live 79Uninstalling the .NET Client 8074Using the Client 80Using the .NET Client With ASP .NET 80Setting Properties in ICSClient 81Setting Dynamic Properties 83Using the .NET Client with Other .NET Applications 84Requesting CyberSource Services 85Constructing and Sending Requests 85Handling Reply Flags and Error Messages 87Requesting Multiple Services 89Setting the Connection Limit 89Examples 90References 90Timeouts and Automatic Retries 91How a Transaction without Automatic Retry Works 92How a Transaction with Automatic Retry Works 92Evaluating the Retry Reply Fields 93Setting Automatic Retry and Timeout Parameters 93System Errors and Retries 94API for the .NET Client 95ICSClient 95Description 95Constructors 95Properties 96Methods 96ICSOffer 97Description 97Constructors 97Methods 98ICSRequest 98Description 98SCMP API Client Developer Guide September 20196

ContentsConstructors 98Property 99Methods 99ICSReply 100Description 100Methods 100NameValuePair StructureDescription 101Fields 101101Exceptions 102BugException 102ConfigIOException 103CriticalTransactionException 103LogException 104NonCriticalTransactionException 104Index106SCMP API Client Developer Guide September 20197

ReleaseChangesSeptember 2019Deprecated and deleted Perl and ASP sections and removed ASP and Perlsection references from About this Guide and Introduction sections.September 2015Updated the production server URL and the test server URL.January 2015Removed information about the Stored Value service, which is no longersupported.August 2013This revision contains only editorial changes and no technical updates.May 2013 Noted that the SCMP API clients are supported only on 32-bit operatingsystems. Combined all SCMP API client documents into this developer guide,which covers all supported programming languages. Noted a change in transaction security key use requirements for theCyberSource production and test environments. For more information,see the “Transaction Security Keys” section in each programminglanguage chapter: ASP clientJanuary 2013 C/C client Java client .NET client Perl clientREVISIONSRecent Revisions to ThisDocumentRemoved information about how to generate security keys and added itto Creating and Using Security Keys (PDF HTML).SCMP API Client Developer Guide September 20198

ABOUT GUIDEAbout This GuideAudienceThis guide is written for application developers who want to use the CyberSource SCMPAPI client to integrate the following CyberSource services into their order managementsystem: CyberSource Essentials CyberSource AdvancedUsing the SCMP API client SDK requires programming skills in one of the supportedprogramming languages: C, C Java .NETTo use these SDKs, you must write code that uses the API request and reply fields tointegrate CyberSource services into your existing order management system.PurposeThis guide describes tasks you must complete to install, test, and use the CyberSourceSCMP API client software.ScopeThis guide describes how to install, test, and use all available SCMP API clients. It doesnot describe how to implement CyberSource services with the SCMP API. For informationabout how to use the API to implement CyberSource services, see "Related Documents,"page 11.SCMP API Client Developer Guide September 20199

About This GuideConventionsNote and Important StatementsA Note contains helpful suggestions or references to material not contained inthis document.NoteAn Important statement contains information essential to successfullycompleting a task or learning a concept.ImportantText and Command ConventionsConventionUsagebold Field and service names; for example:Include the ics applications field. Items that you are instructed to act upon; for example:Click Save.italic Filenames and pathnames. For example:Add the filter definition and mapping to your web.xml file.screen text Placeholder variables for which you supply particular values. XML elements. Code examples and samples. Text that you enter in an API environment; for example:Set the davService run field to true.SCMP API Client Developer Guide September 201910

About This GuideRelated DocumentsClient Package DocumentationThe following documentation is available in the client package download: README file CHANGES file Sample code filesCyberSource Services DocumentationThis guide (SCMP API Client Developer Guide) contains information about how to: Create the request Send the request Receive the replyIn contrast, CyberSource services documentation listed in Table 1 contains informationabout how to: Identify what to put in requests sent to CyberSource. Interpret what is contained in the reply from CyberSource.Each type of CyberSource service has associated documentation:Table 1CyberSource Services DocumentationType of ServiceAvailable DocumentationCyberSource Essentials Credit Card Services User Guide (PDF HTML) Electronic Check Services User Guide (PDF HTML) Credit Card Services Using the SCMP API (PDF HTML) Reporting User Guide (PDF HTML)CyberSource AdvancedIf you use other CyberSource services, the documentation can be found on theCyberSource Essentials or CyberSource Advanced (Global Payment Services) sectionsof the CyberSource web site.Customer SupportFor support information about any CyberSource service, visit the Support Center:http://www.cybersource.com/supportSCMP API Client Developer Guide September 201911

CHAPTERIntroduction1The SCMP API clients are supported on 32-bit operating systems only.ImportantCyberSource SCMP (Simple Commerce Message Protocol) is a legacy name-value pairAPI that is supported for existing implementations. If you are new to CyberSource andwant to connect to CyberSource services by using an API, use the Simple Order API.The SCMP API SDKs provide the client software for the following programminglanguages: C, C .NET 2002, .NET 2003 JavaAs a user of CyberSource services, you can use the Business Center to process yourcustomers’ payments and credits, view details about your orders, and download reports.After you register your merchant ID with CyberSource, you can use the test BusinessCenter. After you go live, you can also use the production Business Center. To log in, youneed the name of your organization or merchant ID, your user name, and your password.These items were established when your company registered the merchant ID withCyberSource.If you need help with the Business Center features, click the Online Help link.SCMP API Client Developer Guide September 201912

CHAPTERC/C Client2The SCMP API clients are supported on 32-bit operating systems only.ImportantBasic C Program ExampleThe following example shows the C code required to send a request for credit cardauthorization and to process the results. See "Using the SDK," page 21 for details onwriting the code.Example 1Example of Credit Card Authorization Request in C#include stdio.h #include stdlib.h #include string.h #include "ics.h"main(){/* Allocate request and result space */ics msg *request;ics msg *result;char *s NULL;int rcode;/* Initialize the request, which holds all the information *//* sent to CyberSource */request ics init(0);if (request NULL) {/* Initialization failed, do something appropriate */}/* Add your company's information to the request */ics fadd(request, "merchant id", "infodev");/* Add the services you want to the request */ics fadd(request, "ics applications", "ics auth");ics fadd(request, "server host", "ics2testa.ic3.com");/* Add the customer information to the request */SCMP API Client Developer Guide September 201913

Chapter 2C/C Clientics fadd(request, "customer firstname", "John");ics fadd(request, "customer lastname", "Doe");ics fadd(request, "customer email", "nobody@cybersource.com");ics fadd(request, "customer phone", "6509656000");/* set more fields as necessary *//* (not all required fields shown here) *//* Add the offer information to the request */ics fadd(request, "offer0", "amount:10.99 quantity:1");/* send the request to CyberSource server */result ics send(request);/* Handle the reply codes and error messages. */if (result NULL) {printf("ics error: got a NULL reply.\n");}s ics fgetbyname(result, "ics rcode");if (s NULL) {rcode -1;} else {rcode atoi(s);}if (rcode 0) {printf ("ics error: %s\n", ics fgetbyname(result, "ics rmsg"));/* Error occurred *//* Notify customer that error occurred; *//* ask customer to try again. */}else if (rcode 0) {/* Request declined *//* Evaluate rflag for reason why declined */s ics fgetbyname(result, "ics rflag");if (strcmp(s, "DINVALIDDATA") 0) {/* Notify customer that request included invalid data. */}else if (strcmp(s, "DCARDREFUSED") 0) {/* Card declined by the bank; *//* notify customer that unable to process order. */}else {/* Handle remaining possible declined reply flags here. *//* Write error handler to process *//* new reply flags created by CyberSource. */}}else/*/*/*}{Successful transaction; */perform any local processing, and */notify customer of success. */SCMP API Client Developer Guide September 201914

Chapter 2C/C Clientics destroy (request);ics destroy (result);}Installing and Configuring the SDKTo install the SDK, you must first download the SDK file and then run an installationprogram included in the package. The installation procedure varies depending on if youare a new customer or if you are upgrading the SDK from a previous version.Minimum System Requirements One of these operating systems: Linux kernel 2.2, libc 6 with Intel Solaris 2.6 operating system on SPARC Windows NT 4.0 with Intel 20 MB of disk space A utility to uncompress the distribution fileThe SDK supports ISO-8859-1 encoding.Failure to configure your client API host to a unique, public IP address causesinconsistent transaction results.ImportantThe client API request ID algorithm uses a combination of IP address and system time,along with other values. In some architectures this combination might not yield uniqueidentifiers. If it is not possible to configure your machines with unique IP addresses,CyberSource provides a client configuration parameter that you can use to identify yourhost. For the CyberSource SCMP API SDK for C/C , this configuration parameter is theics.host id entry in the configuration file. The value must not be 127.0.0.1, which isthe loopback address of your localhost.SCMP API Client Developer Guide September 201915

Chapter 2C/C ClientDownloading the SDKTo download the SDK:Step 1Create a target directory.Step 2Download the latest SDK package file from the downloads area of the CyberSourceSupport Center.Step 3Unzip/untar the package to your target directory.ImportantUnzipping and untarring the original SDK package installs several directoriesand files in your target directory. The installation program then creates a newdirectory and copies most of the files from your target directory into this newdirectory. However, the following files are not copied and exist only in yourtarget directory: README.txt, CHANGES.txt, and LICENSE.txt. Copy thefiles to the new directory where the SDK is installed so that you can later deleteyour target directory.Installing the SDK for the First TimeIf you are a new customer and do not have a previous version of the C/C SDK installed,simply run the installation program.Linux and SolarisType sh install.shThe default installation path is /opt/CyberSource/SDK.To install the SDK to a different directory, enter the path when prompted during theinstallation.NoteTo install the SDK to an alternate directory, you must set the ICSPATHenvironment variable to indicate the alternate location of the SDK. Forexample, set ICSPATH to /opt/ics.SCMP API Client Developer Guide September 201916

Chapter 2C/C ClientWindowsType this with your CyberSource merchant ID:install.bat myMerchantIDThe default installation path is c:\opt\CyberSource\SDK\.To install the SDK to a different directory, typeinstall.bat myMerchantID pathNoteIf you install the SDK to an alternate directory, you must set the ICSPATHenvironment variable to indicate the alternate location of the SDK. Forexample, set ICSPATH to \opt\ics.Indicating the Path to Your Security KeysImportantYou must generate two transaction security keys—one for the CyberSourceproduction environment and one for the test environment. For informationabout generating and using security keys, see Creating and Using SecurityKeys (PDF HTML).The client looks for the certificate and private key files in/opt/CyberSource/SDK/keys by default. To store your keys in a different directory,set an ICSPATH environment variable. The client automatically adds /keys and looks forthe keys in the ICSPATH/keys location. For example, when you set ICSPATH tomyDirectory, the client looks for the keys in myDirectory/keys folder.Upgrading the SDKTo upgrade an existing SDK installation:Step 1Rename the directory containing your previous SDK installation.For example, rename opt/CyberSource/SDK to opt/CyberSource/oldSDK.Step 2Run the installation program: Linux and Solaris: type sh install.shThe default installation path is /opt/CyberSource/SDK. To install the SDK to adifferent directory, you can enter the path when prompted during the installation.NoteTo install the SDK to an alternate directory, you must set the ICSPATHenvironment variable to indicate the alternate location of the SDK. Forexample, set ICSPATH to /opt/ics.SCMP API Client Developer Guide September 201917

Chapter 2 C/C ClientWindows: type (including your merchant ID) install.bat myMerchantIDThe default installation path is c:\opt\CyberSource\SDK\. To install the SDK to adifferent directory, type install.bat myMerchantID path.NoteStep 3To install the SDK to an alternate directory, you must set the ICSPATHenvironment variable to indicate the alternate location of the SDK. Forexample, set ICSPATH to \opt\ics.Copy your original key files from the old keys directory to the new keys directory(overwriting any files in the new keys directory).For example, copy all the files from /CyberSource/oldSDK/keys/ toopt/CyberSource/SDK/keys/.Step 4When you are confident that the new SDK is working, delete the oldSDK directory.Parts of the SDKThe C/C SDK includes the directories and files listed in this table.Directory or fileDescriptionbinContains the ECert program that creates your certificate and private keys.Transaction security keys can also be generated in the Business Center.For more information, see Creating and Using Security Keys (PDF HTML).includeContains the header file ics.h.keysContains your certificate and private keys.libContains the C libraries.sampleContains test programs (in the icstest directory) and sample requests(in the requests directory).icstest: Runs a sample transaction. Use to test the SDK installation.mt test: Reads request data from a text file and sends the request.Troubleshoots problems with sending requests. Use with the samplerequests or your own requests, for example:mt test ./requests/ics auth.txtCHANGES.txtDescribes the changes in this and previous versions of the SDK.LICENSE.txtContains CyberSource software license information.README.txtContains information about SDK installation, shared libraries, C support,supported platforms, and test transactions.install.shSets up the SDK file structure, installs the libraries, and runs the ECertapplication.SCMP API Client Developer Guide September 201918

Chapter 2C/C ClientCreating the Configuration FileYou can create a configuration file that stores fields that you need for every request. Usethe configuration file as an alternative to specifying the values for these fields in therequest.You can give the file any name and store it in any directory. Specify the file name and pathby using the ics set config file() function. The function tells the request to lookfor a configuration file to retrieve these particular field values. See "ics set config file()Function," page 36 for more information.These are the fields that you can include in the configuration file: debug — enables debug output. See "ics init() Function," page 35 for moreinformation about debugging. ics.host id — local IP address to use for generating a request ID ics.http proxy — URL for CyberSource HTTP proxy ics.http proxy password — your password for CyberSource HTTP proxy ics.http proxy username — your username for CyberSource HTTP proxy ics.merchant id — your merchant ID ics.server host — default CyberSource server name ics.server port — default CyberSource server portTo create a configuration file, create a text file that includes the configuration parametersin a name-value pair format, for example:debug 0ics.merchant id MyMerchantIDics.server host ics2a.ic3.comics.server port 80Testing the SDK InstallationTo test the SDK installation:Step 1Open a command prompt.Step 2Go to the sample/icstest directory in the SDK.Step 3Run the test program:For Linux and Solaris, type ./icstest merchant idFor Windows, type icstest merchant idIf you successfully installed and configured the SDK, the following message appears:successful ICS order, rcode 1.SCMP API Client Developer Guide September 201919

Chapter 2C/C ClientIf you do not receive this message, verify that your ICSPATH variable is set correctly, andthat your key files are in the correct location.Using the mt test ProgramYou may also create and send your own requests by using the mt test program. TheSDK contains several sample requests that you can use with the program (see thesample/requests directory).NoteIf you provided a merchant ID when you installed the SDK, the request text fileswere automatically updated with your merchant ID. If you did not provide amerchant ID during installation, edit the line in the ics auth.txt file that setsyour merchant ID.When in test mode, send your requests to the test server ics2test.ic3.com anduse port 80. See the sample requests for examples.To use the mt test program with the ics auth.txt sample request:Step 1Open a command prompt.Step 2In the directory where you installed the SDK, go to the sample/icstest directory.Step 3Type ./mt test .requests/ics auth.txtThe test results appear in the window.Going LiveWhen you complete all of your system testing and are ready to accept real transactionsfrom your customers, your deployment is ready to go live. When your deployment goeslive, you can send transactions to CyberSource’s production server. Provide your bankinginformation to CyberSource so that your processor can deposit funds to your merchantbank account.To send transactions to the CyberSource production server:Step 1Log in to the test Business Center.Step 2In the left navigation panel of the test Business Center, click Support Center.Step 3On the Support Center home page, in the Search Knowledgebase search well, type golive, and then click Search.SCMP API Client Developer Guide September 201920

Chapter 2Step 4C/C ClientIn the search results, depending on what version of CyberSource you use, click How do Igo live? (Enterprise) or How do I go live? (Small Business).These knowledgebase articles provide instructions that describe how to activate youraccount to process live transactions.Once CyberSource has confirmed that your deployment is live, make sure to update yoursystem so that you send requests to the production server (ics2a.ic3.com) instead ofthe test server (ics2testa.ic3.com).After your deployment goes live, use real card numbers and other data to test every cardtype, currency, and CyberSource application that your integration supports. Becausethese are real transactions, use small monetary amounts to do the tests. Process anauthorization, capture, and credit for each configuration. Use your bank statements toverify that money is deposited into and withdrawn from your merchant bank account. Ifyou have more than one CyberSource merchant ID, test each one separately.Using the SDKThis section explains how to request CyberSource services using the C/C SDK.Requesting CyberSource ServicesTo request CyberSource services, you must create these items: A system that collects the information required for the CyberSource services C/C programs to assemble the order information into request, send the request tothe CyberSource server, and process the reply informationThe CyberSource services use the SCMP API, which consists of name-value pairs. Thename-value pair API fields you use for credit card orders are described in the Credit CardServices Using the SCMP API (PDF HTML). The instructions in this section show youhow to write C/C programs that correctly use SCMP API name-value pairs.The code in the examples in this section is incomplete. For complete sample programs,see the test programs in the sample/icstest directory of the SDK.SCMP API Client Developer Guide September 201921

Chapter 2C/C ClientConstructing and Sending RequestsTo access any CyberSource services, you must create and send a request that holds therequired information. The example in this section shows basic code for requestingCyberSource services. In this example, John Doe is buying three different items, and youare requesting credit card authorization. For the list and description of all the CyberSourceC functions, see "C Functions," page 31.Adding Header Files and VariablesInclude the header file and declare the request and result variables:#include "ics.h"ics msg *icsorder;ics msg *res;Creating the RequestNext, create a new request:icsorder ics init(0);Adding Services to the RequestNext, add the service that you want using the ics fadd() function:ics fadd(icsorder, "ics applications", "ics auth");You can request multiple services by using commas to separate the service names. Forexample, you can request both credit card authorization and capture together, a sale, byusing the following code:ics fadd(icsorder, "ics applications", "ics auth,ics bill");SCMP API Client Developer Guide September 201922

Chapter 2C/C ClientAdding Request-Level FieldsNext, add request-level fields using the ics fadd() function. The fields include basicinformation about the customer and your company. You can include embedded spaces inthe values, but if you include multiple consecutive spaces, only one of the spaces isretained when the request is processed.ics fadd(icsorder,ics fadd(icsorder,ics fadd(icsorder,ics fadd(icsorder,"merchant id", merchant id);"customer firstname", "John");"customer lastname", "Doe");"customer cc number", "4111111111111111");The example above shows only a partial list of the fields required for the request.Adding Offer-Level FieldsAfter specifying request information, add information about the individual items beingpurchased with the offer-level fields. The offer information is contained in a single field thatcontains pairs of field names and values. Name-value pairs are separated by carets ( ),and names and values are separated by colons (:). Therefore, the values cannot containcarets and colons. You can include embedded spaces in the values, but if you includemultiple consecutive spaces, only one of the spaces is retained when the request isprocessed.You can include multiple offers in one request.ics fadd(icsorder, "offer0", "quantity:1 amount:45.95");ics fadd(icsorder, "offer1", "quantity:3 amount:14.99");ics fadd(icsorder, "offer2", "quantity:1 amount:25.95");For a full list of the offer fields for the CyberSource credit card services, see Credit CardServices Using the SCMP API (PDF HTML).Sending the RequestYou next send the request to CyberSource:res ics send(icsorder);Handling the Reply Flags and Error MessagesAfter the CyberSource server processes your request, the server returns a replyconsisting of name-value pairs. The fields vary, depending on which services yourequested and the results of the request.SCMP API Client Developer Guide September 201923

Chapter 2C/C ClientTo use the reply information, you must integrate it into your system and any other systemthat uses that data. This includes storing the data and passing it to any other services thatneed the information.You must write an error h

Each type of CyberSource service has associated documentation: If you use other CyberSource services, the documentation can be found on the CyberSource Essentials or CyberSource Advanced (Global Payment Services) sections of the CyberSource web site. Customer Support For support information about any CyberSource service, visit the Support .