All card-not-present transactions must include cardholder’s street address, ZIP code, and CVV to pass certification. These values assist our Disputes Team in case of a chargeback and help protect against fraud.
Existing customers: Get your sandbox and production credentials for Heartland/Portico integration.
Install the SDK in your IDE and set up your authentication.
The code samples below reference objects available during tokenization. Card details are consumed on the front-end and checked when the single-use token is generated.
This step shows you how to access the last four digits, expiration date, and card brand.
The JSFiddle below demonstrates how to set up access to these properties. You can find additional information in our public repository.
Our SDKs support using tokens instead of card data. You can also pass raw card data to us if tokens aren’t an option.
The credit sale transaction authorizes a sale with a credit card and adds it to the current open batch.
The batch should auto-close on e-commerce transactions. If no batch is open, the transaction automatically creates one.
A credit account verify transaction checks whether the cardholder account is in good standing with the issuer.
This is a zero-dollar transaction with no authorization. VISA and other issuers have started assessing penalties for one-dollar authorizations when verifying credit cards. This offers a way for merchants to verify cards without those penalties.
A credit authorization transaction reserves funds on a card but doesn’t place the transaction in a batch. You can use the capture method to move it into a batch.
Our Online Payment Surcharge Program helps businesses offset online credit card processing costs and stay compliant with state, federal and card brand guidelines.
Charging customers a percentage fee for processing credit card purchases online helps businesses keep their prices and payment options competitive — and offers the payment flexibility for customers want.
As of this writing, surcharging is legal in all but four states: Connecticut (CT), Massachusetts (MA), Maine (ME), and California (CA), allowing businesses to recoup their processing costs (typically around 3% of the amount of the surcharge).
Please be aware that this documentation isn’t legal advice. Several states limit surcharging options. Always verify that surcharging is legal in the state(s) you expect to do business in and any limitations that may apply.
Our surcharging program is a turnkey solution that helps businesses cover processing costs and meet all requirements.
You can set up your online payments integrations to determine surcharge eligibility by including a bank identification number (BIN) check during single-use tokenization.
You can read more about using a BIN check in the Global Payments GitHub.
The response includes the boolean value on the single-use tokenization response (result.details.canSurcharge) that will alert your integration if the current card can be surcharged.
<?php
$amount = 10;
$surcharge = $amount * .035;
$response = $card->authorize($amount + $surcharge)
->withCurrency("USD")
->withAddress($address)
->withSurchargeAmount($surcharge)
->execute();Multi-use tokenization offers a secure, PCI-compliant way to store credit card data in your system.
You can generate a multi-use token in any of our initial gateway calls: charge, verify, or authorize.
Multi-use tokens aren’t enabled by default. Contact your Heartland Representative to add this functionality to your account.
A capture transaction adds a previous authorization transaction to the current open batch. If no batch is open, this transaction creates one.
A credit return transaction refunds the cardholder’s account. This is often used to counter a credit card transaction that can’t be reversed because the batch containing the original transaction has already been closed.
The credit return transaction is placed in the current open batch. If a batch is not open, this transaction will create an open batch.
A reverse transaction cancels a pending charge or authorization from the current open batch or list of active authorizations.
A credit void transaction is used to inactivate a transaction. It can be used to cancel an authorization or an active charge. The transaction must be either an authorized transaction, an additional charge or a return.
Authorized transactions can be voided whether they’re in a batch or not. Other transactions, such as returns or additional charges, can be voided instead of keeping them as active charges, as long as the associated batch isn’t closed yet.
If the batch containing the original transaction has been closed, you can use a return transaction to credit the cardholder.
Return transactions cannot be voided.
Use an edit transaction to update details on an approved charge or authorization.
Note: The payment gateway doesn’t update the issuer when you edit the settlement amount.
The POS is responsible for sending a reversal or additional authorization based on your edits. For example:
These additional operations are the responsibility of the POS.
We support all major payment processing industries. The following sections show how to use the different services specific to the lodging industry.
Date of check-in/check-out. The duration of the stay can be specified with values ranging from 1-99 using StayDuration.
using GlobalPayments.Api.Entities;
var lodgingData = new LodgingData { StayDuration = 1 };The code below shows how to build in the ability to accept advance deposits with the AdvanceDepositType.
using GlobalPayments.Api.Entities;
var lodgingData = new LodgingData {
StayDuration = 1,
AdvancedDepositType = AdvancedDepositType.CARD_DEPOSIT
};
Transaction response = card.Charge(41m)
.WithLodgingData(lodgingData)
.Execute();Use the NoShow property to indicate that a charge is due to a no-showon a reservation.
using GlobalPayments.Api.Entities;
var lodgingData = new LodgingData {
StayDuration = 1,
NoShow = true
};
Transaction response = card.Charge(42m)
.WithLodgingData(lodgingData)
.Execute();Merchants participating in Visa’s Prestigious Properties Program.
using GlobalPayments.Api.Entities;
var lodgingData = new LodgingData {
StayDuration = 1,
PrestigiousPropertyLimit = PrestigiousPropertyLimit.LIMIT_500
};
Transaction response = track.Charge(44m)
.WithLodgingData(lodgingData)
.Execute();For Mastercard, merchants can use the PreferredCustomer property to find out if the cardholder has a preferred status.
using GlobalPayments.Api.Entities;
var lodgingData = new LodgingData {
StayDuration = 1,
PreferredCustomer = true
};
Transaction response = track.Charge(47m)
.WithLodgingData(lodgingData)
.Execute();You can use the .AddExtraCharge property to specify a variety of extra charges that might be included in the total transaction amount.
using GlobalPayments.Api.Entities;
var lodgingData = new LodgingData()
.AddExtraCharge(ExtraChargeType.GiftShop)
.AddExtraCharge(ExtraChargeType.MiniBar)
.AddExtraCharge(ExtraChargeType.Telephone);
Transaction response = track.Charge(50m)
.WithLodgingData(lodgingData)
.Execute();Get documentation and code examples for building other popular features into your application
Explore the other languages you can build with using our SDKs
Learn how our SDKs handle common errors
We’re here to help. Contact us if you have any questions or need assistance