PayGuardian Android SDK
SDK Download:
Introduction
Mobile Point‐of‐Sales (mPOS) systems that process sensitive payment information are required to certify their payment applications to the Payment Application Data Security Standard (PA‐DSS). The addition of EMV certification and continued need for both encryption and tokenization has become a concern for both merchants and integrators.
Adherence to the Payments Card Industry Data Security Standards (PCI DSS) compliance requirements requires significant financial and employee resources. Subsequently, any changes made in the mPOS system may require a partial or full recertification, which increases the cost and time to market. BridgePay has engaged these issues through our product line, the PayGuardian suite, to better serve the needs of our integrators and merchants. PayGuardian Android is a light weight, highly secure Android application that integrates seamlessly into mPOS applications.
PayGuardian Android facilitates the transaction process by handling the collection and transmission of sensitive payment information as an out-of-scope PA-DSS solution, thereby offloading the certification responsibility from merchants and integrators. PayGuardian Android is EMV enabled, handles point to point encryption, and tokenizes all transactions to ensure transaction processing is seamless and secure.
Having previously been paired with a supported Bluetooth Low Energy Card Reader,
The host mPOS application will collect and forward transaction data to the PayGuardian instance using a concrete PaymentRequest.
The PayGuardian instance validates the request, and notifies the card reader that there is a pending transaction.
The card reader notifies the mPos application that it is ready via the ReaderRequestDelegate.
The mPOS application prompts the customer to use their payment card/device
The card reader collects the card data and passes it to the PayGuardian instance.
PayGuardian handles all of the communication with the Payment Gateway, returning a PaymentResponse to the mPOS application
Integration Setup
We have created a demonstration project for integrators that can serve as a base for a payment application. Currently, integration is supported only by referencing the SDK libraries in your application.
We provide wrapped versions of the supported device libraries to shield integrators from handling sensitive payment data directly, thereby simplifying compliance requirements. The wrapper abstracts device-specific details, ensuring that sensitive information is managed securely within the SDK. This allows integrators to focus solely on developing their application without needing to directly interact with or secure sensitive payment data.
Prerequisites
Android device (min API 26, must support Bluetooth, live internet connection)
IDTech VP3300 BT
Project Dependencies
In order to simplify testing and distribution, we have created a Core SDK library (pgmobileandroid-n.n.n.aar) and a device wrapper library for each card reader family we support. This ensures that integrators will have a version of the manufacturer’s device library that is compatible with our software.
The example below contains guidance on specific libraries and their usage in the demonstration project and are current as of December 2024.
Android application permission handling is beyond the scope of this document and is the responsibility of the integrator. We have made every effort to ensure that the core SDK functionality does not trigger unwanted or unexpected permissions requests. Use of the nammu library is taken solely at the risk of the integrator.
build.gradle (app)
// Core SDK and device wrapper
implementation(files("libs/pgmobileandroid-3.0.0.aar"))
implementation(files("libs/pg_idt_wrapper-1.0.0.aar"))
// other necessary libraries
implementation("com.google.code.gson:gson:2.11.0")
implementation("com.google.code.ksoap2-android:ksoap2-android:3.6.2")
// provided, optional.
// This library is unsupported due to age, but is still hosted publicly at https://github.com/tajchert/Nammu
// It is intended for use to smooth out permissions prompts on older, pre Android 12 devices.
// Integrators should evaluate their specific needs regarding permissions handling.
implementation(files("libs/nammu-1.0.0.aar"))
// Repo for simplexml - maven(url = "https://oss.sonatype.org/content/repositories/ksoap2-android-releases/")
implementation("org.simpleframework:simple-xml:2.7.1")
// These libraries provide necessary functionality at the level they are compiled at.
// Do not upgrade past this point at the risk of losing Android compatibility.
implementation("org.simpleframework:simple-xml:2.7.1") {
exclude(module = "xpp3")
}
implementation("org.apache.commons:commons-lang3:3.15.0")
build.gradle.kts (Project)
repositories {
google()
mavenCentral()
maven(url = "https://oss.sonatype.org/content/repositories/ksoap2-android-releases/")
}
PayGuardian initialization
The PayGuardian class is implemented as a singleton and accepts an instance of the PayGuardianDelegate interface to bind events. After instantiation and connection to a CardReader, that delegate is passed into the singleton as well.
public interface PayGuardianDelegate {
void initiateTransaction(PaymentRequest request);
void onTransactionStateChanged(TransactionState transactionState, String message);
void onReaderStateChanged(ReaderState readerState, String message);
void onMessageReceived(String message);
void onResponseReceived(PaymentResponse paymentResponse);
void onError(ArrayList<String> errors);
}
Device Connection
The device wrapper library provides integrators with an implementation of the CardReader interface from the core SDK library. The class name can be expected to be in the format of (device name)Delegate.
While testing with the ID Tech VP3300, we found it helpful to leave it plugged into USB power. The Bluetooth Low Energy scheme will frequently put the reader to sleep. Further, it should not be physically plugged into any computing device as that will supersede a Bluetooth request and return those requests to the wired device regardless of the source.
Transaction Handling
All transaction calls are made through a direct call to PayGuardian.getInstance().processTransaction or through PayGuardianDelegate.initiateTransaction. The transaction handler will only process a single transaction at a time, and there is no queuing of requests for later processing. Including the payment card information on a transaction will bypass a card read.
Input
All fields are assumed to be of type String unless otherwise specified
All amount fields will be processed as implied decimals regardless of the input format
Allowable date formats are “yyyyMMdd” and “MM/dd/yyyy”
Allowable time formats are "HHmmss" and "HHmm"
PaymentRequest
Property | Description | Data Type / Min - Max Values |
---|---|---|
TenderType | Required. Valid values are: | String; |
TransType | Required. Valid values are: | String; |
TransIndustryType | Optional, defaults to RETAIL if not provided
| String; |
Amount | Required. Total transaction amount (includes subtotal, cash back, tax, and tip (Format example: 0000.00) | String; |
Username | Required. Username of the Merchant | String; |
Password | Required. Password of the Merchant. | String; |
Street | Optional. Zip code of billing address. | String; |
OrigRefNum | Original reference number. Used for follow‐on transactions (e.g., Void, Reversal). | String; |
Country | Country of billing address | String; |
Phone | Phone number for the payer | String; |
Email address for the payer | N/A | |
MerchantCode | Required. BridgePay Merchant Code. | String; |
MerchantAccountCode | Required. BridgePay Merchant Account Code. | String; |
InvNum | Required. POS system invoice/tracking number. | String; |
ReferenceID | Optional. Can be populated to echo back a variable in the response message. | String; |
PartialAuthorization | Optional. Sets the partial authorization flag for a transaction. The default setting is ‘false’ (meaning not active). | String; |
HolderType | Optional. Single character, either P (Personal account) or O (Organization account). | String; |
CardholderName | Optional. Name as it appears on the credit card, debit card, or gift card. | String; |
CardNumber | Optional. Account number of a credit card, debit card, or gift card used when collecting card data outside of PayGuardian (not recommended). | String; |
ExpDate | Optional. Expiration date of a credit card, debit card, or gift card (required for Token transactions). | String; |
CvvNumber | Optional. Card verification code of a credit card, debit card, or gift card used when collecting card data outside of PayGuardian (not recommended). | String; |
Memo | Optional. User supplied data. Valid values are: alphanumeric, dashes, spaces, and periods. | String; |
SoftwareVendor | Optional. Name of vendor that developed the software used in transmitting the transaction. | String; |
HostingSoftware | Optional. | String; |
VoiceAuthCode | Optional. Authorization Code for Voice Authorizations only when authorization was achieved outside of the network (by phone or other means). | String; |
TaxRate | Optional. Processed as implied decimal. 5.5% would be represented as 550. Additional Tax Amount. REQUIRED FOR LEVEL II/III | String; |
TaxAmount | Optional. Processed as implied decimal. $1.25 would be represented as 125. REQUIRED FOR LEVEL II. | String; |
TaxIndicator | Optional. Valid values are: P (Provided), N (Not Provided), or E (Exempt). REQUIRED FOR LEVEL II/III. | String; |
ShipToName | Optional. Shipping address name. REQUIRED FOR LEVEL II/III. | String; |
ShipToStreet | Optional. Shipping address street. REQUIRED FOR LEVEL II/III. | String; |
ShipToCity | Optional. Shipping address city. REQUIRED FOR LEVEL II/III. | String; |
ShipToState | Optional. Shipping address state. REQUIRED FOR LEVEL II/III. | String; |
ShipToZip | Optional. Shipping address postal code. Accepted formats are Canadian, UK and US (5 and 9 digit variation) postal codes. REQUIRED FOR LEVEL II/III. | String; |
ShipToCountryCode | Optional. Shipping address country code. REQUIRED FOR LEVEL II/III. ISO 3166-1 alpha-2 codes. | String; |
ShippingOriginZip | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Postal code of the origin of the shipment. Accepted formats are Canadian, UK and US (5 and 9 digit variation) postal codes. Alphanumeric characters ONLY (no hyphens or dashes). Alpha characters must be all upper-case. | String; |
DiscountAmount | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Processed as implied decimal. $1.25 would be represented as 125. Additional discount amount. | Integer |
ShippingAmount | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Processed as implied decimal. $1.25 would be represented as 125. Additional discount amount. | Integer |
DutyAmount | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Processed as implied decimal. $1.25 would be represented as 125. Additional discount amount. | Integer |
TaxInvoiceCode | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Must be at least 1 and up to 15 characters. When separate VAT invoice is produced within the context of the order, unique identifier of this invoice. | String |
LocalTaxAmount | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Processed as implied decimal. $1.25 would be represented as 125. Additional discount amount. | Integer |
LocalTaxIndicator | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** P (Provided), N (Not Provided), or E (Exempt). | String |
NationalTaxAmount | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Processed as implied decimal. $1.25 would be represented as 125. Additional discount amount. | Integer |
NationalTaxIndicator | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** P (Provided), N (Not Provided), or E (Exempt). | String |
OrderCode | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Unique identifier assigned to the order associated with this transaction in submitter's/merchant's front-end/ inventory system. | String |
OrderDate | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Date in format YYYYMMDD. Date when the order associated with the transaction was placed. | String |
CommodityCode | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Acquirer designated standardized code that classifies the group of items associated with this order/transaction. | String |
CustomerAccountTaxID | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** VAT registration number of the customer responsible for this transaction. | String |
ItemCount | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** The number of items included in the “Item” collection. | Int |
Item | Availability pending processor certification. Conditional. *** REQUIRED FOR LEVEL III*** Used to group the line item details as a collection of individual item contents for an item. | Collection<Item> |
CashBackAmount | Optional. Processed as implied decimal. $20.00 would be represented as 2000. Amount of money returned to a payment card holder. Used for Sale with cash back transactions. | String; |
EnableCashBack | Optional. When set to true, prompts for cashback on the device. | Boolean |
TipRecipientCode | Optional. Server ID for the customer. | String; |
ConvenienceFee | Convenience Fee. (Format example: 0000.00) The convenience fee is a line Item reference included in a SALE or SALE_AUTH transaction request in which the customer credit or debit card is charged the total sum in the ‘amount’ field where a transaction request contains both the transaction amount + convenience fee in a single transaction. | String; |
ServiceFee | Optional. Separate fee that processes to a separate merchant account (the username and password are passed in with the request message) with a SALE or SALE_AUTH transaction in which the customer credit or debit card will be charged the transaction amount on the merchant account of record, and a service fee amount on a separate transaction to the merchant account designated in the request. | ServiceFee |
ResellerCode | Reseller ID assigned by the gateway for the Reseller of the Service Fee account. | String; |
MerchantCode | Merchant ID assigned by the gateway for the Merchant of the Service Fee. | String; |
MerchantAccountCode | Merchant Account ID assigned by the gateway for the Merchant Account of the Service Fee. | String; |
CardNotPresent | Optional. When set to ‘TRUE’, the transaction is treated as a Card Not Present transaction. Valid values are: TRUE = Card Not Present | Boolean |
ForceOnDuplicate | Optional. Can force a duplicate transaction to process when set to true. Valid values are: TRUE = Force duplicate transaction to process | Boolean |
WalletPaymentMethodID | Optional. The ID provided by the Wallet API for the payment method. When using this field, no other payment identifiers are necessary (i.e. PaymentAccountNumber, Track, BankAccountNum, etc) | NSString; |
SettlementDelay | Optional. The period for which a Sale-Auth transaction settlement is delayed. | String; |
CustomFields | Optional. The ability to pass custom user defined fields to the gateway via a XML string. | NSString; |
BridgeCommURL | Optional. The BridgeComm URL can be passed with a transaction request which is used to override the mode selected and passed in the request message and/or in the app. Ex: https://www.bridgepaynetsecuretest.com/paymentservice/requesthandler.svc | URL String |
Healthcare
Property | Description | Data Type / Min - Max Values |
---|---|---|
HealthCareAmt | The portion of the Total Amount spent on healthcare related services or products. Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
TransitAmt | The portion of the Total Amount spent on healthcare related transportation. Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
PrescriptionAmt | The portion of the Healthcare Amount spent on prescription drugs or products. Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
VisionAmt | The portion of the Healthcare Amount spent on vision related medical services. Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
DentalAmt | The portion of the Healthcare Amount spent on dental related medical services. Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
ClinicAmt | The portion of the Healthcare Amount spent on hospitalization. Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
Lodging
Property | Description | Data Type / Min - Max Values |
---|---|---|
RoomNumber | Hotel room number | 25 |
FolioNumber | Hotel folio number | 8 |
RoomRateAmount | Daily room rate. Implied decimal. | 4 |
RoomTaxAmount | Tax charged on daily rate. Implied decimal. | 8 |
LodgingChargeType | Required, type of service for which this transaction is processed. | 1 |
CheckInDate | Required when LodgingChargeType = 'H' | 10 |
CheckOutDate | Required when LodgingChargeType = 'H' | 10 |
StayDuration | Indicates the length of anticipated, actual or incremental stay. | 8 |
SpecialProgramType | Required when LodgingChargeType = 'H' Important when the cardholder did not stay at the hotel. | 2 |
DepartureAdjAmount | Additional amount charged after the cardholder left the hotel. Implied decimal. | 8 |
LodgingItemCount | Required if lodging items present in request. | Integer |
LodgingItems | The lodgingItems object. See more detail below. | Collection<LodgingItem> |
Car Rental
Property | Description | Data Type / Min - Max Values |
---|---|---|
RentalAgreementNumber | Car Rental Agreement Number. Required as part of the Rental Key. | 25 |
RentalDuration | Required, Car Rental Period in Days | 4 |
RentalName | Required, Name of the person who rented the car | 20 |
RentalState | State where the car rental starts | 3 |
RentalCity | City where the car rental starts | 25 |
RentalCountryCode | Two-character country code for the country in which the car rental starts | 2 |
RentalDailyRateAmount | Total rent amount per mile as an implied decimal | 8 |
RentalExtraChargesAmount | Total dollar amount of extraChargeItems as an implied decimal | 8 |
RentalInsuranceAmount | Car insurance amount as an implied decimal | 8 |
MaxFreeMiles | Total mileage for rental period | 8 |
MileRateAmount | Total rent amount per mile as an implied decimal | 8 |
TotalMiles | Rented car total mileage (miles on car) | 8 |
RentalDate | Required, Date when the car rental starts. (YYYY-MM-DD format) | 10 |
RentalTime | Car rental start time in 24-hour format. (HHMM format) | 4 |
ReturnCity | City where the car is returned | 25 |
ReturnState | State where the car is returned | 3 |
ReturnLocationCode | Identification code of the place where car was returned | 10 |
ReturnCountryCode | Two-character country code for the country where the car is returned | 3 |
ReturnDate | Required, Date when the car should be returned | 10 |
ReturnTime | Time when the car should be returned in 24hour format. (HHMM format) | 4 |
RentalSpecialProgramType | Required, string based enum representing the special program type for the rental. Accepted values are AD (Advance Deposit), AR (Assured Reservation), | 2 |
RentalExtraChargeItemCount | The number of extra charges in the RentalExtraChargeItem list. | Integer |
RentalExtraChargeItem | List of extra charges (see table below for more information) | Collection<RentalExtraChargeItem> |
Additional Input Classes
Item
Property | Description | Data Type / Min - Max Values |
---|---|---|
ItemCode | Availability pending processor certification. Conditional - Required when included in "Item" collection. Unique identifier assigned to this item in the submitter’s inventory system. | String |
ItemCommodityCode | Availability pending processor certification. Conditional - Required when included in "Item" collection. Acquirer designated standardized code that classifies this item. | String |
ItemDescription | Availability pending processor certification. Conditional - Required when included in "Item" collection. Short description of the item. | String |
ItemQuantity | Availability pending processor certification. Conditional - Required when included in "Item" collection. Quantity of item units purchased as part of this transaction. Up to 4 decimal places. | Decimal |
ItemUnitCostAmt | Availability pending processor certification. Conditional - Required when included in "Item" collection. Processed as implied decimal. $1.25 would be represented as 125. Cost of a single unit of the item. | String |
ItemUnitMeasure | Availability pending processor certification. Conditional - Required when included in "Item" collection. Unit of measure used to quantify the items purchased/refunded (e.g. kg, lb., inch). | String |
ItemTaxRate | Availability pending processor certification. Conditional - Required when included in "Item" collection. Processed as implied decimal. 5.5% would be represented as 550. Rate of the tax (if any) charged on this item. | String |
ItemTaxAmount | Availability pending processor certification. Conditional - Required when included in "Item" collection. Processed as implied decimal. $1.25 would be represented as 125. Amount of tax charged for this item. | Integer |
ItemTaxIndicator | Availability pending processor certification. Conditional - Required when included in "Item" collection. P (Provided), N (Not provided), or E (Exempt). | String |
ItemTaxCode | Availability pending processor certification. Conditional - Required when included in "Item" collection. Acquirer designated value classifying the tax that was charged for this item. | String |
ItemDiscountRate | Availability pending processor certification. Conditional - Required when included in "Item" collection. Processed as implied decimal. 5.5% would be represented as 550. Rate of discount (if any) that was applied to this item. | Integer |
ItemDiscountAmount | Availability pending processor certification. Conditional - Required when included in "Item" collection. Processed as implied decimal. $1.25 would be represented as 125. Amount of tax charged for this item. | Integer |
ItemTotalAmount | Availability pending processor certification. Conditional - Required when included in "Item" collection. Processed as implied decimal. $1.25 would be represented as 125. Amount of tax charged for this item. | Integer |
ItemIsCredit | Availability pending processor certification. Conditional - Required when included in "Item" collection. True = T (Item is being returned), F = False (Default if not passed - Item is being purchased). | String |
ServiceFee
Property | Description | Data Type / Min - Max Values |
---|---|---|
Amount | Processed as implied decimal. $1.25 would be represented as 125. | String; Implied Decimal |
ServiceUser | The username associated with the merchant service fee account. Use if not providing ResellerCode, MerchantCode and MerchantAccountCode. | String; |
ServicePassword | The password associated with the merchant service fee account. Use if not providing ResellerCode, MerchantCode and MerchantAccountCode. | String; |
MerchantCode | The code of the service merchant group. | String; |
MerchantAccountCode | The code of the service merchant account. | String; |
ResellerCode | The code of the reseller that owns the service merchant account. | String; |
LodgingItem
Property | Description | Data Type / Min - Max Values |
---|---|---|
LodgingItemType | Lodging extra charge type : | 1 |
LodgingItemAmount | Amount for lodging extra charge item. Implied decimal. | 8 |
RentalExtraChargeItem
Property | Description | Data Type / Min - Max Values |
---|---|---|
RentalExtraChargeItemType | Car rental extra charge type: | 1 |
RentalExtraChargeTypeAmount | Amount for car rental extra charge item. Implied decimal. | 8 |
Output
The following table contains descriptions for the PaymentResponse output object properties.
Note: You should only look at the results in the PaymentResponse
Property | Description | Data Type / Min - Max Values |
---|---|---|
AuthCode | Transaction authorization code from the payment processor. This value is an approval code for approved transactions or an error code/message for declined transactions. | String; |
ApprovedAmount | The actual amount approved by host. This may differ from the requested amount. | String; |
AvsResponse | AVS response. See AVS Response Codes(3.1.6 Examples) for a list of possible responses. | String; |
BogusAccountNumber | Partially masked card number. The first 6 and last 4 digits of the card number are present with zeros in between. This card number will not pass the mod 10 check. | String; |
CardType | Displays the card type (determined by BIN range). List of items: Visa, Mastercard, Discover, Amex, Diners, JCB, CUP (China Union Pay), Bank, None | String; |
CardModifier | Displays the featured function submitted in addition to the tender type used to process a transaction. List of items: Business, FSA, Commercial, FoodStamp, Check, Savings, Cash, None | String; |
CardClass | Displays the tender type used to process a transaction. List of items: Credit, Debit, Gift, Prepaid, EBT, Fleet, None | String; |
CvResponse | The CV response code. See CV Response Codes on pages 38 for a list of possible responses. | String; |
RefNum | Gateway reference/PnRef number. Used for follow‐on transactions (i.e., Void, Reversal). | String; |
RemainingBalance | Remaining balance on gift or prepaid card. | String; |
RequestedAmount | Original requested amount of the transaction. | String; |
ResultCode | Result code of the transaction. See on page 35 for more information. | String; |
ResultTxt | Details from the processor or payment gateway about the transaction result. | String; |
Timestamp | Time and date of the transaction. | String; |
ExpirationDate | Echo back of the expiration date. | String; |
GatewayMessage | Message from the gateway. | String; |
InternalMessage | Detailed information provided by the gateway / processor regarding results of the transaction request. | String; |
AVSMessage | Unipay AVS Match Result Message. | String; |
CVMessage | Unipay CVV/CVV2 Match Result Message. | String; |
IsoCountryCode | Country code from the gateway. | String; |
IsoRequestDate | Requested date from the gateway. | String; |
NetworkReferenceNumber | Gateway Network reference number. | String; |
MerchantCategoryCode | Merchant Category Code from the gateway. | N/A |
NetworkMerchantId | Merchant id from the gateway. | N/A |
NetworkTerminalId | Network terminal id from the gateway. | N/A |
ResponseTypeDescription |
| N/A |
StreetMatchMessage |
| N/A |
ExtData | Returns extra data for the extended data fields submitted in the processed transaction (multiple field information may be returned in XML format). | N/A |
Token | Represents the tokenized card number received from a token request or authorization. | String; |
Memo | Conditional. Present if user previously supplied data. | String; |
ServiceFeeResult | Returns result for Service Fee transactions. Data may be populated in multiple fields and returned in XML format. | String; XML |
EntryMode | Returns back the card entry method: Swipe, EMV, Tap. | String; |
WalletID | Returns the wallet ID. | String; |
WalletPaymentMethodID | Returns the wallet payment method ID. | String; |
WalletResponseMessage | Returns the wallet response message. | String; |
WalletResponseCode | Returns the wallet response code. | String; |
Table of Contents
- 1 Introduction
- 1.1 Integration Setup
- 1.1.1 Prerequisites
- 1.1.2 Project Dependencies
- 1.1.3 PayGuardian initialization
- 1.1.4 Device Connection
- 1.1.5 Transaction Handling
- 1.2 Input
- 1.2.1 PaymentRequest
- 1.2.1.1 Healthcare
- 1.2.1.2 Lodging
- 1.2.1.3 Car Rental
- 1.2.1 PaymentRequest
- 1.3 Additional Input Classes
- 1.3.1 Item
- 1.3.2 ServiceFee
- 1.3.3 LodgingItem
- 1.3.4 RentalExtraChargeItem
- 1.4 Output
- 1.1 Integration Setup
Property of BridgePay Network Solution ©2024