Digital Wallet Payments

Secure, convenient payments anywhere

 


Digital wallets are gaining popularity and growing share in the payments landscape, fueled by increased acceptance, mobile shopping, and the reshaping of the digitalization customers’ buying habits, accelerated by the Covid Pandemic. Experts expect digital wallets transactions to account for a third of the ecommerce sales in North America by 2025.

Considering this preference of customers and the business need of our merchants, CSG Forte supports digital wallet payments to give customers a secure, simple, and convenient way to pay using mobile wallets. For customers, this means no more entering payment details for each purchase as digital wallets can safely store card information, making payments much simpler, faster, and minimizing typing errors.

Using digital wallets provides:

  • Better authentication
    By the use of username and password, a PIN, fingerprint, or facial recognition for security.

  • Better data security
    Data exposure is kept to an absolute minimum.

Forte supports the following Digital Wallet Payments:

  • Apple Pay

  • Google Pay

  • PayPal

This page is specific to the prerequisites and conditions for digital wallet transactions for Forte Checkout and Custom integrations powered by Forte Rest API.

Compatible devices:

  • Apple Pay
    • Apple Pay will be available on devices running iOS and Mac OS. A list of Apple Pay compatible devices is available Apple Pay-compatible device
    • Supported browser: Safari
  • Google Pay
    • Google PayTM will be available on devices running Android OS and IOS. A list of Google Pay compatible devices is available at Google Pay-compatible device
    • Supported browsers: Google Chrome, Apple Safari, Microsoft Edge.
  • Paypal
    • Paypal will work on mobile and desktop devices. (Note: Pop-up blockers may affect the payment experience. Please ensure to allow pop-up blocker, if needed.)
    • You can check the recommended browsers list here. For browsers not listed, the payment buttons could continue to work, but compatibility is not guaranteed.

Prerequisites to process Apple Pay

1. You must process credit cards through Fiserv.
NOTE: Split charge model with convenience fee is not supported.

2. You must adhere to Apple’s “Acceptable Use Guidelines” listed here.

3. Accepting Donations? If you’re a non-profit organization and are accepting donations, you must follow the process specified by Apple before you begin implementing Apple Pay on your website. Please refer to the process from Apple here.

4. To enable Apple Pay for a Merchant Location create a support ticket.

Prerequisites to process Google Pay

  1. You must process credit cards through Fiserv. NOTE: Convenience fee split charge model and debit cards fee different from credit card fees are not supported.

  2. You must adhere to Google Pay API Terms of Service and Acceptable Use Policy.

  3. Are you accepting Donations? If you’re a non-profit organization accepting donations, you must provide valid 501(c)3 status proof from the IRS to qualify to implement Google pay.

  4. You must register a support ticket to enable Google Pay at the Merchant ID (Location) level.

Prerequisites to process PayPal

1. You may connect your existing PayPal business accounts to accept payments from PayPal wallets.

2. If you do not have a PayPal account, you may create new business accounts and tie it to CSG Forte, to start accepting payments from PayPal.

3. You must have a merchant account with CSG Forte to connect your PayPal account to for PayPal payments processing. NOTE: convenience fee is not supported.

4. PayPal is available for merchants operating in the US and Canada. Some of its payment methods will only be available at select regions. See information about PayPal credit here and PayPal Pay later here.

5. You must register a support ticket to request PayPal at the Merchant ID (Location) level and/or if you are connected through a Partner they can request the enablement for you.

6. After the rate plans are created a PayPal onboarding link will be created and displayed in DEX on the tab: Merchant location details -> Product and services. Please follow the process displayed on screen including creating a new PayPal Login or entering the credentials to existing PayPal account, reading and accepting terms and conditions.


Apple Pay Integration with Forte Checkout

Refer to the Pre-requisites to process Apple Pay section before integrating with Forte Checkout

Apple Pay provides a secure payment method that can simplify your customer's checkout experience. Apple Pay stores payment information on a user's device and authenticates a user via Face ID or Touch ID, eliminating the need for them to manually type in their card, billing and shipping details manually.

When the Forte Checkout modal is opened, our system does various checks to detect if the processor, merchant and customer meets Apple Pay enablement requirements. If it does, then the customer will be presented with an Apple Pay button and will be able to speed up the checkout process using information securely stored on the device.

Customers will be eligible to add their credit and/or debit cards as Apple Pay works with many of the major credit and debit cards from the top banks. See more information about supported cards here.

Supported Transactions

FCO supports Apple Pay when:

  • The amount is preset (fixed):
    • Only Single Amount is supported.
    • The "total amount" parameter should be greater than zero for a sale transaction.
    • The “total_amount_attr” parameter should not be editable.
  • Performing Manual Entry (keyed) transactions.
    • The swipe parameter value is set to “false” or is set to "auto”, but no reader is detected and is switched to “Manual Entry” .
  • The transaction method is Sale
  • Apple payment method tokens can be used to authorize Merchant Initiated Transaction (MIT) for recurring Card on File (COF) payments.

  • The "allowed_methods" is null or contains at least one card brand (Visa, Mastercard, Discover, or American Express) and Apple Pay will not be supported if only “eCheck” is passed in the “allowed_methods".

    Note: For convenience fee merchants, only split funding is supported. Split charge is not currently supported for Apple Pay.

Process to enable Apple Pay on your Merchant ID (Location):

Refer to the Pre-requisites to process Apple Pay section before integrating with Forte Checkout.

NOTE: Before proceeding with sandbox testing for apple pay. ensure to complete below steps

Please follow the steps below to enable Apple Pay for your Location(s) (merchant ID(s)):

  1. To identify your web page(s) as one of the merchants processing payments with CSG Forte, you will need to:

    a. Download our “Domain Association file” from here.

    b. Upload the file with the name “apple-developer-merchantid-domain-association” in the following path:

    /.well-known/apple-developer-merchantid-domain-association

    • NOTE: If you receive payments in more than one domain, you need to ensure these steps are followed for each domain.

  2. Once the file is uploaded, create a support ticket to enable Apple Pay at the Merchant ID (Location) level.

    a. Provide the following details in the ticket:

    • Domain(s) that will be registered.

    • Product on which Apple Pay should be enabled.

Google PayTM Integration with Forte Checkout

Google PayTM is a digital wallet platform that empowers customers to make online purchases securely without the need to enter their card details for each payment.

Consumers can save payment methods, like a debit or credit card and additional information, such as shipping details, to their Google Account or store it in the Google Pay app. When the cardholder pays using Google Pay on the web, Google Pay displays a payment sheet where cardholders can select which card to use and confirm the purchase.

When the Forte Checkout modal is opened, our system does various checks to detect if the processor, merchant, and customer meet the requirements for Google Pay enablement. If they do, then the customer will be presented with an Google Pay button and will be able to speed up the checkout process using information securely stored on the device.

We offer the following card networks to be used with Google Pay: Visa, Mastercard, American Express and Discover.

Supported Transactions

FCO supports Google Pay when:

  • The amount is preset (fixed):

    • Only Single Amount is supported.

    • The "total amount" parameter should be greater than zero for a sale transaction.

    • The “total_amount_attr” parameter should not be editable.

  • For Manual Entry transactions, the swipe parameter value is “false” or "auto”, but no reader is detected and is switched to “Manual Entry”.

  • The supported transaction methods are

    • sale
    • auth
    • token
  • Google payment method tokens can be used to authorize Merchant Initiated Transaction (MIT) for recurring Card On File (COF) payments.

  • If "allowed_methods" is passed, it must contain at least one card brand (Visa, Mastercard, Discover, or American Express). Google Pay will not be supported if only “eCheck” is passed in the “allowed_methods”

NOTE: For convenience fee merchants, only split funding is supported. Split charge is not currently supported for Google Pay and Google Pay will not be displayed if Debit Card Fee and Credit Card fee have different values.

Process to enable Google Pay on your Merchant ID (Location)

Refer to the Pre-requisites to process Google Pay section before integrating with Forte Checkout.

1. Create a ticket requesting Google Pay to be enabled at your location level. If your organization has several locations, please list each merchant location applicable.


PayPal Integration with Forte Checkout

Refer to the Pre-requisites to process PayPal section before integrating with Forte Checkout

PayPal is a streamlined, secure, simple, and convenient payment option that allows end users to select from the available payment methods in their PayPal wallets.

When the Forte Checkout modal is opened, if the merchant has a PayPal account and is onboarded to PayPal via CSG Forte, the customer will be presented with a “PayPal” button and will be able to speed up the checkout process using the payment methods stored on their PayPal wallet.

Supported Transactions

FCO supports PayPal when:

• The amount is preset (fixed):

  • Only Single Amount is supported.
  • The “total amount” parameter should be greater than zero for a sale transaction.
  • The “total_amount_attr” parameter should not be editable.

• For Manual Entry transactions, the swipe parameter value is “false” or “auto”, but no reader is detected and is switched to “Manual Entry”.

• Non convenience fee merchants.

• Several transaction method/types are supported:

o Sale transaction (method=Sale):

  • This is intended to be used in a one time or normal sale transaction.

o Sale and token (method=Sale with token saving) :

  • setting the “save_token” parameter to ‘true’ allows for a sale and token creation at the same time.

o Sale with previously created token (method=Sale using paypal paymethod tokens):

  • Note: All amount settings are supported.
  • The “total_amount_attr” parameter can be set to ‘edit '.

o Token creation (method=token).

  • PayPal method tokens can be used to authorize Merchant Initiated Transaction (MIT) for recurring Card on File (COF) payments.
  • When creating tokens in Forte checkout for paypal transactions, it’s important to note that these tokens are associates with a specific PayPal entity known as the “Billing Agreement ID”. This ID is generated by Paypal upon the approval of the user.
  • Which are returned in webhooks for effective transaction monitoring.



Note:

1. For all PayPal transactions billing address will be automatically obtained from account holder’s PayPal details and will be passed on to the transactions, callback and webhooks.

2. Users also have the option to choose a shipping address or add a new shipping address on the PayPal checkout window. If the collect_shipping_address parameter is passed as true in the button parameter in FCO, the shipping address selected in the PayPal checkout window will be passed on to the transactions, callback and webhooks.

Process to enable PayPal on your Merchant ID (Location):

This list of steps is applicable for direct merchants and merchants that are not part of a partner enrollment process, in which case the partner will process the enrollment or PayPal enablement.

1. Create a ticket requesting PayPal to be enabled at your location level. If your organization has several locations, please list each merchant location applicable.

2. A CSG Forte team member will forward your request to pre-qualify each merchant location requested for enablement.

3. For each merchant that qualifies, a unique PayPal onboarding link will be created to begin their onboarding process.

4. In dex, users with appropriate permissions will navigate to the Location Details screen, Products and Services tab to select the PayPal onboarding link and begin the enablement process. A merchant can sign into an existing PayPal account or create a new account, to integrate with Forte Checkout.

5. Once the PayPal account is successfully created and linked, the PayPal button will be enabled in Forte Checkout.

Sandbox Testing PayPal on Forte Checkout:

PayPal will be displayed as a payment method option on all sandbox Merchant ID’s(Location) for testing purposes .To have PayPal added as a paymethod option on a live Merchant ID(Location ) please refer to the process here(link to Process to enable PayPal on your Merchant ID(Location)):

Forte Checkout Workbench – Sandbox Testing – PayPal will be displayed as a payment method option in Forte Checkout workbench, for testing.

Note: PayPal checkout window will not be displayed when choosing PayPal as the payment method in the workbench. Logging into PayPal, selecting a payment method or confirming the payment method in PayPal checkout window will not be available through the workbench.

• Once PayPal is selected as the payment method option in Forte Checkout-Workbench, user will be navigated to the “Shipping Information” screen (if collect_shipping_address=true) or to the “Amount Summary” screen. The simulated PayPal account holder information will be displayed under the “Payment information” header.

• Once the PayPal transaction is completed, it can be viewed through Dex(Sandbox).

Testing PayPal on Forte Checkout:

The amounts specified below may be passed on Forte Checkout – Workbench (Sandbox) to force the indicated response.

Sale Transactions:

Scenario total_amount

pg_response

_code

pg_response_type

pg_response_

description

Approval

Any other amount not otherwise listed: 1983,1984,1985,

1989,19.83,19.84.1985,

1989,1.33,9.98,9.97

A01 A Approved
Decline $1.33 U83 D Declined
Error $9.98 E99 E Internal Error
Decline $1984 or $19.84 U84 D Auth Timeout (FCO: Transaction Timeout)
Decline $1985 or $19.85 U85 D Auth Error
Decline $1989 or $19.89 U89 D Auth Unavail
Pending $9.97 P01 P Pending

 

Sale transactions with save_token=true:

Sale Transactions:

Scenario total_amount

pg_response_

code

pg_response_

type

pg_response_

description

Decline 1984 or $19.84 U84 D Auth Timeout (FCO: Transaction Timeout)
Decline 1985 or $19.85 U85 D Auth Error
Decline 1989 or $19.89 U89 D Auth Unavail
Decline $19.83, $1983, or $1.33 U83 D Declined
Approval

Any other amount not

otherwise listed: 1983,1984,1985,

1989,19.83,

19.84.1985,

1989,1.33,

9.98,9.97

A01 A Approved
Error $9.98 E99 E Internal Error
Pending $9.97 P01 P Pending


Apple Pay Integration with REST API

Refer to the Pre-requisistes to process Apple Pay section before integrating with REST API

Merchants can take advantage of their custom implementation for digital wallets by integrating with CSG Forte’s REST API.

If you need to check the API integration setup, refer here. For Rest API endpoints, refer here. Or visit our documentation on postman here.

Apple Pay Integration process

The steps listed below are included as a guide to simplify the information about the process to integrate Apple Pay with REST API. Refer to the Pre-requisites to process Apple Pay section before proceeding.

NOTE: Some of the links listed in the section below will be available only after you sign into your Apple Developer Account.

  1. Create an Apple Developer Account here

  2. Use your developer account console to register a Merchant Identifier and create Payment Processing Certificate here
    NOTE: To generate the Payment Processing Certificate on your own, ensure you have “openssl” installed and run the following steps:
    openssl ecparam -out private.key -name prime256v1 -genkey
    openssl req -new -sha256 -key private.key -nodes -out request.csr

  3. Once the Payment Processing Certificate is generated, to verify your domain ownership, from the "Apple Pay on the Web" section, under "Merchant Domains" click on "Add Domain" and follow the instructions on the screen.

  4. Whitelist the below IPs from Apple to allow inbound traffic from Apple.
    Please confirm all the current aplicable IPs to whitelist here.
    • 17.32.139.128/27
    • 17.32.139.160/27
    • 17.140.126.0/27
    • 17.140.126.32/27
    • 17.179.144.128/27
    • 17.179.144.160/27
    • 17.179.144.192/27
    • 17.179.144.224/27
    • 17.253.0.0/16

  5. To uniquely identify your business as a merchant you need to set up the Merchant ID and complete the Payment Request in Apple.

    • Navigate to "Apple Pay Merchant Identity" and click on "Create Certificate". To create “Certificate Signing Request” (CSR), run the following command (Note: Ensure you have openssl installed)

    openssl req -sha256 -nodes -newkey rsa:2048 -keyout applepaytls.key -out applepaytls.csr Upload the generated applepaytls.csr file in the Apple Developer portal. Once the file is uploaded, under “Merchant Identity Certificate”, click on “Download” to download merchant_id.cer” file. This will download a cert file from Apple. Use the files “merchant_id.cer” and “applepaytls.key” to complete payment request

  6. Documents for Reference:

    • Apple Pay Offline testing / Sandbox details are here

    • Adhere to Development Guidance design published by Apple here

    • Ensure you are complying with Apple’s server requirements listed here

  7. Testing in CSG Forte’s Sandbox:

    • To enable APPLE Pay for your Merchant sandbox create a ticket for CSG Forte tech support here

    • Refer to Get CSG Forte’s Sandbox Account section to set up a Sandbox account

    • Once you are integrated to Apple Pay button to get DAPN details from Apple, refer to the section Submit a Payment Request to REST API section to submit a payment request

  8. Go Live in Production – CSG Forte

    • Once you've completed your testing in Sandbox and are registered for the wallet you are testing, you're ready to go Live in production. For reference you can find information here.

Google Pay integration with REST API

Merchants can take advantage of their custom implementation for digital wallets by integrating with CSG Forte’s REST API.

Refer here for Forte Rest API integration or visit our REST API documentation on postman here.

Google PayTM Integration Process

The steps listed below are included as a guide to simplify the information about the process to integrate Google Pay with REST API. Refer to the “Pre-requisites to process Google Pay” section before proceeding.

1. Before your Google Pay API implementation is production-ready, you must register with Google Pay Business Console, accept Google Terms of Service, and receive a Google merchant ID after your website passes a Google review.

2. Enforce Development Guidance design.

3. When you choose a payment tokenization method, do the following to connect :

NOTE: if you decrypt the payment token in your own systems, your systems are required to be PCI DSS Level 1 compliant to handle sensitive payment data.

  • To enable decryption on your end, set the tokenization Specification type to

    "DIRECT" when creating the Google Pay paymentDataRequest.

  • In this process you will need to provide a public key to Google. Google will utilize this key to encrypt the payment details, which can subsequently be decrypted using the corresponding private key.

  • For guidance on the decryption process, refer to the Payment data cryptography

4. When you define supported payment card networks, do the following:

  • For getAllowedCardNetworks, specify the card types that your merchant account is configured to accept.

  • For getAllowedAuthCardMethods, specify both PAN_ONLY and CRYPTOGRAM_3DS

5. Ensure your integration meets the requirement outlined in the Google Pay Web integration checklist and Google Pay Web Brand Guidelines.

6. Submit your payment integration for Google approval using Google Pay Business Console Link:

a. After you are done integrating the payment method in your process and you have screenshots that portray the flow and the correct handling of transactions that use the payment method you will need to go into the Google Console and report the following information:

  • Website URL (secured)

  • Integration type: Direct

  • Screenshots of the transaction flow

b. After that information is correctly uploaded you will be able to submit your integration for review and after that review you should receive an email notification that will allow you to change your code to the Production environment and commit to go live.

7. Testing in CSG Forte’s Sandbox:

  • To enable Google Pay for your Merchant sandbox account create a ticket for CSG Forte tech support here

  • Refer to the section below section to set up a Sandbox account

  • Once you are integrated to Google Pay button to get card details from Google , refer to the section Submit a Payment Request to REST API section to submit a payment request

8. Go Live in Production – CSG Forte

  • Once you've completed your testing in Sandbox and are registered for the wallet you are testing, you're ready to go Live in production. For reference you can find information here.

NOTE: Google Pay transactions information will behave differently based on the platform or device the end customer uses for the payment process. Android devices making Google Pay payments will produce a transaction where the card number will be replaced by a Device PAN and a Cryptogram will be generated. Transactions made from Browser/Google Chrome in another type of device will pass the Card Number (PAN) and a mark of “PAN Only” transaction. If you are not passing a transaction cryptogram, please do not include in your REST API transaction calls the “Wallet type” field, which will lead to declined transactions.

Submitting Apple / Google Pay Request to Rest API

Below steps provide details to process a Digital Wallet transaction. Refer to the “Pre-requisites to process Apple Pay” or "Pre-requisites to process Google Pay” section, depending on your integration method, before proceeding.

 

Get CSG Forte’s Sandbox Account

If you have not already, ensure you have a Sandbox account in Dex to generate API credentials and that you have your API authentication credentials.

Submit Apple Pay / Google Pay Payment Request to REST API

When sending a REST digital wallet request, merchants need to provide the following additional fields from the wallet's decrypted payload:

Data Field Content Requ Supported values
card.wallet_cryptogram This one-time encrypted string represents the transaction and merchant information R  
DPAN(as card.account_number) This device-specific identifier replaces the card number to securely conduct transactions R  
card.wallet_type This field will indicate the wallet use to obtain the cryptogram R Apple Pay, Google Pay
card.wallet_source This will indicate the platform on which the payment request was received R InApp: integrations capturing payments on Mobile Web: integrations capturing payments on browser
transaction.cof_transaction_type

Use this data field only for credential on file (COF) transactions, to show if it is recurring (0) or customer initiated (1).
NOTE: If you are performing a zero-dollar authorization and only storing the payment method for future use, then the cof_transaction_type should be 1.

O

1: Initial

0: Recurring

NOTE: If you are storing the DPAN for subsequent MIT (Merchant Initiated Transactions) transactions, you must use the Credentials on File (COF) framework.

Refer to the REST API documentation for sample calls on submitting a payment using Digital wallets.

Sample Transaction Requests

The snippets below display samples of the initial and subsequent transactions using DPAN and token.

Initial Transaction with DPAN

Sample POST Request URI:

{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/transactions

Additional parameters to be passed in the request

  • card.account_number = DPAN

  • card.card_type

  • card.expire_year

  • card.expire_month

  • card.wallet_cryptogram

  • card.wallet_type

  • card.wallet_source

  • transaction.cof_transaction_type = 1

Sample POST request:

Copy
{
    "action":"sale",
    "authorization_amount":5.00,
    "service_fee_amount":1.50,
    "billing_address":{
    "first_name":"Test",
    "last_name":"Person"
   },
   "card":{
   "name_on_card": "Test Q Person",
   "account_number": "4111111111111111",
   "card_type": "visa",
   "expire_month": "12",
    "expire_year": "2027",
    "wallet_type":"ApplePay",
    "wallet_source":"Web",
    "wallet_cryptogram":"1K4ortp4uVams7mfCPohYcFP4WMzgnwmiX0JZcCdMWq2FlIsXGEojH6A"
},
   "cof_transaction_type": "1"
}

Sample POST response:

Copy
{     
"transaction_id": "trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7", 
"location_id": "loc_173185",
"action": "sale",
"authorization_amount": 5.00,
"service_fee_amount": 1.50,
   "subtotal_amount": 3.50,
   "authorization_code": "6JS762",
   "entered_by": "f41fe5d1c2bfb458355f5af35a635204", 
"billing_address": { 
        "first_name": "Test", 
        "last_name": "Person"
    }, 
    "card": {
        "name_on_card": "Test Q Person",
        "last_4_account_number": "1111", 
         "masked_account_number": "****1111",
        "expire_month": 12,
        "expire_year": 2027, 
         "card_type": "visa",
         "wallet_type": "ApplePay",
         "wallet_source": "Web"
    },
 "cof_transaction_type": "1",
 "cof_initial_transaction_id": "302228665632567",
    "response": {
        "environment": "sandbox",
        "response_type": "A", 
         "response_code": "A01",
        "response_desc": "TEST APPROVAL", 
        "authorization_code": "6JS762", 
         "avs_result": "Y", 
         "cvv_result": "M" 
    },
  "links": {
        "disputes": "https://sandbox.forte.net/API/v3/transactions/trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7/disputes", 
"settlements": "https://sandbox.forte.net/API/v3/transactions/trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7/settlements", 
"self": "https://sandbox.forte.net/API/v3/transactions/trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7/" 
    }
}

Subsequent Transaction with DPAN (MIT)

Sample POST Request URI:

{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/transactions

Additional parameters to be passed in the request

  • card.account_number = DPAN

  • card.card_type

  • card.expire_year

  • card.expire_month

  • card.wallet_type

  • card.wallet_source

  • transaction.cof_transaction_type = 0 (recurring)

  • transaction.cof_initial_transaction_id

NOTE: To send subsequent sale transactions after an initial transaction was authorized using DPAN you will need to submit transaction.cof_initial_transaction_id as received in the initial transaction response.

Sample POST Request:

Copy
{
    "action":"sale",
    "authorization_amount":5.00,
    "service_fee_amount":1.50,
    "billing_address":{
    "first_name":"Test",
    "last_name":"Person"
   },
   "card":{
   "name_on_card": "Test Q Person",
   "account_number": "4111111111111111",
   "card_type": "visa",
   "expire_month": "12",
    "expire_year": "2027",
    "wallet_type":"ApplePay",
    "wallet_source":"Web"
},
   "cof_transaction_type": "0",
   "cof_initial_transaction_id": "123123123123"
}

Sample POST Response:

Copy
{     
"transaction_id": "trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7", 
"location_id": "loc_173185",
"action": "sale",
"authorization_amount": 5.00,
"service_fee_amount": 1.50,
   "subtotal_amount": 3.50,
   "authorization_code": "6JS762",
   "entered_by": "f41fe5d1c2bfb458355f5af35a635204", 
"billing_address": { 
        "first_name": "Test", 
        "last_name": "Person"
    }, 
    "card": {
        "name_on_card": "Test Q Person",
        "last_4_account_number": "1111", 
         "masked_account_number": "****1111",
        "expire_month": 12,
        "expire_year": 2027, 
         "card_type": "visa",
         "wallet_type": "ApplePay",
         "wallet_source": "Web"
    },
   "cof_transaction_type": "0",
   "cof_initial_transaction_id": "123123123123",
    "response": {
        "environment": "sandbox",
        "response_type": "A", 
         "response_code": "A01",
        "response_desc": "TEST APPROVAL", 
        "authorization_code": "6JS762", 
         "avs_result": "Y", 
         "cvv_result": "M" 
    },
  "links": {
        "disputes": "https://sandbox.forte.net/API/v3/transactions/trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7/disputes",
"settlements": "https://sandbox.forte.net/API/v3/transactions/trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7/settlements",
"self": "https://sandbox.forte.net/API/v3/transactions/trn_d13a8fa4-e1d6-4a08-a798-f7f41bebcaf7/"
    }
}

Subsequent Transaction with Tokens (MIT)

Sample POST Request URI:

{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/paymethods

Additional parameters to be passed in the request

  • transaction.paymethod_token

  • card.wallet_source (optional)

  • transaction.cof_transaction_type = 0

NOTE: To send subsequent sale transactions, after an initial transaction was authorized using payment method tokens you will need to submit transaction.paymethod_token, indicate that this is a subsequent transaction sending transaction.cof_transaction_type:0 and specify card.wallet_source (optional).

Sample POST Request:

Copy
{
    "action":"sale",
    "authorization_amount": 102.45,
    "paymethod_token": "mth_jmBCI5cDV0CuyFb7NWzrAg",
    "card": {
      "wallet_source":"web"
    }
    "billing_address":{
     "first_name": "Jennifer",
     "last_name": "McFly"
     },
   "cof_transaction_type": "0"
}

Sample POST Response:

Copy
{
    "transaction_id": "trn_f95faf3e-299a-4661-ae9f-7b1008977cb5",
    "location_id": "loc_173185",
    "paymethod_token": " mth_jmBCI5cDV0CuyFb7NWzrAg ",
    "action": "sale",
    "authorization_amount": 102.45,
    "authorization_code": "0EF151",
    "entered_by": "3f07c2b577d5f1ca2dfbc456a2f31bd0",
    "billing_address": {
        "first_name": "Jennifer",
        "last_name": "McFly"
    },
"cof_transaction_type": "0",
    "response": {
        "environment": "sandbox",
        "response_type": "A",
        "response_code": "A01",
        "response_desc": "TEST APPROVAL",
        "authorization_code": "0EF151",
        "avs_result": "Y",
        "cvv_result": "M",
        "paymethod_token": " mth_jmBCI5cDV0CuyFb7NWzrAg "
    },
    "links": {
        "disputes": "https://sandbox.forte.net/v3/transactions/trn_f95faf3e-299a-4661-ae9f-7b1008977cb5/disputes",
        "settlements": "https://sandbox.forte.net/v3/transactions/trn_f95faf3e-299a-4661-ae9f-7b1008977cb5/settlements",
        "self": "https://sandbox.forte.net/v3/transactions/trn_f95faf3e-299a-4661-ae9f-7b1008977cb5/"
    }
}

PayPal Integration with Rest API

Refer to the Pre-requisites to process PayPal section before integrating with REST API.

Merchants can take advantage of their custom implementation for digital wallets by integrating with CSG Forte’s REST API. If you need to check the API integration setup, refer here. For Rest API endpoints, refer here. Or visit our documentation on postman here.

PayPal Integration Process

The steps listed below are included as a guide to simplify the information about the process to integrate PayPal with REST API. Refer to the Pre-requisites to process PayPal section before proceeding.

To accept PayPal payment methods, you will need to:

  1. Create a html button with PayPal Icon.
  2. On click PayPal button should call Forte PayPal REST API endpoints.
  3. Testing in CSG Forte’s Sandbox.
  4. Go Live in Production – CSG Forte
    Once you've completed your testing in Sandbox and are registered for the wallet you are testing, you're ready to go Live in production. For reference you can find information here.

Submit a PayPal Payment Request to REST API

Below steps provide details to integrate with CSG Forte’s REST API to process Digital Wallet transaction. Refer to the “Pre-requisites to process PayPal "section, depending on your integration method, before proceeding.

Get CSG Forte’s Sandbox Account

If you have not already, ensure you have a Sandbox account in Dex to generate API credentials and that you have your API authentication credentials.

Follow below steps to create and process PayPal transaction via REST API.

Creating an Order to Process a PayPal Sale Transaction:

Step 1: Create an Order


Merchants need to create an order in PayPal to enable a PayPal Transaction. Use the Create orders POST endpoint to create an order and to obtain an orderID (vendor_order_number) and approval URL (vendor_approval_url) from PayPal’s response.

You will need to use the vendor_approval_url to redirect the user to authorize the payment on PayPal checkout.

Refer to the REST API documentation for sample POST Request and Responses.

Step 2: (Optional) Update PayPal order

Merchants can update shipping_address and/or authorization_amount on a previously created order.

Use the Update a PayPal Order PUT endpoint to update shipping_address and authorization_amount.

Refer to the REST API documentation for sample PUT Request and Response.

Step 3: (Optional) Show Order details

Merchants can retrieve an order using vendor_order_number to know details of a particular order. Use the order ID GET endpoint to obtain the order details.

Refer to the REST API documentation for sample GET Request and Response.

Step 4: Capture the Order

Merchants can capture an order by sending the vendor_order_number in the “vendor” object while creating a sale transaction. Use the transaction(PayPal) POST endpoint to capture the order.

Refer to the REST API documentation for sample POST Request and Response.

 

Creating a PayPal Token to Process a Transaction:

PayPal tokens are called “Billing Agreements” in PayPal systems. To create tokens for PayPal recurring transactions follow the steps below.

Step 1: Create Billing Agreement Token

Merchants need to create a Billing Agreement to be able to generate a PayPal paymethod token. Use the Create Agreement Token POST endpoint to create a billing agreement token and to obtain a agreenement token (vendor_agreement_token) and approval URL (vendor_approval_url) from PayPal’s response.You will need to use the vendor_approval_url to redirect your users to approve the agreement on PayPal checkout.

Refer to the REST API documentation for sample POST Request and Response.

Step 2: Creating a Customer and Paymethod Token

There are several different scenarios for token handling and creation, you can check the list below to find what matches best your process and business needs in terms of information included. Use below endpoints to create a customer and paymethod token by using a vendor_agreement_token:

1. Customer endpoint - POST Customer with PayPal Payment Method

{{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/customers/

2.Customer endpoint - POST Customer with Billing/Shipping Address and PayPal Payment Data
{{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/customers/

3.Paymethods endpoint - POST Customer PayPal Paymethod

{{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/customers/cst_{{customertoken}}/paymethods

4.Paymethods endpoint - POST Clientless PayPal Paymethod
{{baseURI}}/organizations/org_{{organizationID}}/locations/loc_{{locationID}}/paymethods

Refer to the REST API documentation for sample POST Request and Response.

Step 3: Create a Sale Transaction using PayPal Paymethod Token.

Use Transaction with PayPal Token POST endpoint to create sale transaction. Refer to the REST API documentation for sample POST Request and Response.