Skip to content
Last updated

If you have an existing API integration using our legacy HTTP or TCP interfaces, you can utilize the tables below for mapping field names and FRCs from the legacy interfaces to the equivalent field names and endpoints in the REST API.

Field Mapping Table

HTTP/TCPREST
AccessTokencredential.accessToken
header.AccessToken
APIOptionsapiOptions[array]
header.ApiOptions
Clerkclerk.numericId
DatedateTime
TimedateTime
Invoicetransaction.invoice
PrimaryAmountamount.total
SecondaryAmountamount.tip
TaxAmountamount.tax
Vendorheader.VendorName
header.InterfaceName
header.InterfaceVersion
CardPresentcard.present
CardEntryModecard.entryMode
CardTypecard.type
CardLevelResultscard.levelResult
CardNumbercard.number
ExpirationDatecard.expirationDate
Balancecard.balance.amount
CVV2Indicatorcard.securityCode.indicator
CVV2Codecard.securityCode.value
CVV2Resultcard.securityCode.result
CVV2Validcard.securityCode.valid
TrackInformationcard.trackData
TerminalIDdevice.terminalId
UniqueIdcard.token.value
P2PEBlockp2pe.data
P2PEDeviceTypep2pe.format
CustomerReferencetransaction.purchaseCard.customerReference
DestinationZipCodetransaction.purchaseCard.destinationPostalCode
ProductDescriptorstransaction.purchaseCard.ProductDescriptors[0]
CustomerNamecustomer.firstName
customer.lastName
StreetAddresscustomer.addressLine1
ZipCodecustomer.postalCode
HotelEstimatedDaystransaction.hotel.estimatedDays
ArrivalDatetransaction.hotel.arrivalDate
DepartureDatetransaction.hotel.departureDate
HotelAdditionalChargestransaction.hotel.additionalCharges[array]
PrimaryChargeTypetransaction.hotel.primaryChargeType
SpecialCodetransaction.hotel.specialCode
Notestransaction.notes
OverrideBusDatetransaction.businessDate
TokenSerialNumbercard.token.serialNumber
CVV2Promptdevice.prompt.cardSecurityCode
PostalCodePromptdevice.prompt.postalCode
StreetNumberPromptdevice.prompt.streetNumber
PhotoTypesignature.format
PhotoDatasignature.data
IIASAmountamount.iiasAmounts[array].amount
IIASTypeamount.iiasAmounts[array].type
PINBlocktransaction.pin.block
PINPadKeytransaction.pin.ksn
AutoEstimateDaystransaction.auto.estimatedDays
AutoAdditionalChargestransaction.auto.additionalCharges[array]
DriverNametransaction.auto.driver.name
LateAdjustmenttransaction.auto.lateAdjustment
NoShowIndicatortransaction.auto.noShowIndicator
RentalAgreementtransaction.auto.rental.agreement
RentalCitytransaction.auto.rental.city
RentalDatetransaction.auto.rental.dateTime
RentalStatetransaction.auto.rental.State
RentalTimetransaction.auto.rental.dateTime
RentalZipCodetransaction.auto.rental.postalCode
Authorizationtransaction.authorizationCode
ReceiptTextreceipt.[array]{key,printName,printValue}
AuthTokencredential.AuthToken
ClientGuidcredential.ClientGuid
EMVApiDataemv.tlvData
PrimaryErrorCodeerror.primarycode
SecondaryErrorCodeerror.secondarycode
ShortErrorerror.shortText
LongErrorerror.longText
AuthSourcetransaction.authSource
AVSResulttransaction.avs.result
AVSStreetVerifiedtransaction.avs.streetVerified
AVSZipVerifiedtransaction.avs.PostalCodeVerified
ValidAVStransaction.avs.valid
PreauthorizedAmounttransaction.preauthorized.amount
PreauthorizedTolerancetransaction.preauthorized.tolerance
RetrievalReferencetransaction.retrievalReference
IYCAvailableBalancecard.balance.amount
IYCReasonTextcard.deactivationReason
Responsetransaction.responseCode
BusinessDayEndingTimemerchant.dayEndingTime
CardAbbreviationsmerchant.cardTypes[array].type
DBAmerchant.name
DBAAddressLine1merchant.addressline1
DBAAddressLine2merchant.addressline2
DBACitymerchant.city
DBAStatemerchant.region
DBAZipCodemerchant.postalCode
DBAPhonemerchant.phone
MerchantTypemerchant.industry
Revisionmerchant.revision
VoiceMerchantAccountmerchant.cardTypes[array].accountNumber
VoicePhoneNumbermerchant.cardTypes[array].phoneNumber
SpinAbbcard.type
SpinIsDCCcard.dccCapable
SpinIsDebitcard.debitCapable
SpinPrefixcard.bin
SpinResultcard.levelResult
FourWordsfourWords[array]
RoomRatesNtransaction.hotel.roomRates[array]
LineItemsdevice.lineitems[array]

Deprecated Fields

  • APIFormat
  • APISignature
  • FuctionRequestCode
  • RequestorReference
  • ReceiptTextColumns
  • SaleFlag (no longer used in the request but is returned as transaction.saleFlag in the GET /transactions/invoice response to indicate the state of the transaction)
  • BalanceReturnIndicator
  • P2PEBlockLength
  • TaxIndicator
  • SignatureBlock
  • SignatureBlockNumber
  • SignatureDeviceType
  • SignatureTotalBlocks
  • PINPadBlockFormat
  • PinPadType
  • ErrorIndicator
  • CustomerReceiptText
  • MerchantReceiptText
  • IYCBalance
  • IYCCardFormatted
  • IYCExpiration
  • TranId

FRC Mapping Table

FRC CodePurposeVerbFull End Point
CEAccess Token ExchangePOSTcredentials/accesstoken
1BOnline AuthPOSTtransactions/authorization
1DCapturePOSTtransactions/capture
1DOnline Straight SalePOSTtransactions/sale
1DOnline RefundPOSTtransactions/refund
07Get Invoice InformaitonGETtransactions/invoice
08Full VoidDELETEtransactions/invoice
05Offline AuthPOSTtransactions/manualauthorization
06Offline SalePOSTtransactions/manualsale
20Signature UploadPOSTtransactions/signature
24Gift Card ActivatePOSTgiftcards/activate
25Gift Card DeactivatePOSTgiftcards/deactivate
25Gift Card CashoutPOSTgiftcards/cashout
26Gift Card ReactivatePOSTgiftcards/reactivate
24Gift Card ReloadPOSTgiftcards/reload
61Gift Card InquiryPOSTgiftcards/balance
2AGift Card CancelPOSTgiftcards/cancel
E0Token Store AddPOSTtokens/add
E2Token Store DuplicatePOSTtokens/duplicate
64Get 4 Words From a TrueTokenPOSTtokens/4words
0BGet DBA InformationGETmerchants/merchant
22Get Voice Center InformationGETmerchants/merchant
2FVerify CardPOSTcards/verify
23Identify Card TypePOSTcards/identify
47Request SignaturePOSTdevices/promptsignature
82Prompt ConfirmationPOSTdevices/promptconfirmation
CFTerms and ConditionsPOSTdevices/termsandconditions
95Display Line ItemsPOSTdevices/lineitems
94Clear Line ItemsDELETEdevices/lineitems
F2Get Device InfoGETdevices/info
96Swipe/Insert AheadPOSTdevices/initializereaders
97PIN Pad ResetPOSTdevices/reset
DAOn-Demand Card ReadPOSTdevices/promptcardread
DBPrompt for InputPOSTdevices/promptinput
86Process FormsPOSTdevices/processform
F1Print ReceiptPOSTdevices/print
5FTotals ReportGETreports/batchtotals

Handling Amounts

With our legacy HTTP and TCP APIs the amount was split into separate PrimaryAmount and SecondaryAmount fields. These two fields were added together on the Shift4 payment platform side to calculate the total amount. For example, a transaction with a total amount of $120 with a $20 tip was sent as PrimaryAmount $100 and SecondaryAmount $20.

With the REST API the entire transaction amount is sent in the 'amount.total' field. In other words, the 'amount.total' field is all inclusive of all the other fields in the amount object. All other fields in the amount object are for informational purposes and must also be included in the total field. For example, a purchase of $100 with a $20 tip and $8 tax would be:

"amount": {
    "tip": 20,
    "tax": 8,
    "total": 120
}