14. Payments

10.1 Overview

CPX then processes the payments using the preferred payment type i.e Card, ACH, CHECK as configured for the supplier.
A buyer can upload a single PIF (Payment instruction file) which can be a CSV, Fixed width or Tab separate file. The fields in the file can be customized per buyer. The file contains all payments that have to be made. It also contains invoicing information. The buyers can request to group payments in the file and collect funds for it from the buyer in a batch. Buyer can also setup payments using the portal or our APIs.
The supplier enablement team runs campaigns for each method with the first campaign for the virtual card. Here, they call the supplier and explain to them about the program and the benefit of moving to a Card payment. In case Card campaign is not successful, they may run a campaign for ACH and so on. For successfully executed campaigns, the information is shared with CPX Operations, who then update the payment type for the supplier to be the same as the successfully executed campaign and update all other necessary information. Currently, the supplier enablement team works on Salesforce. The supplier information is fed into the CPX system operationally. Here, the key requirement is to build a two-way communication between CPX and Salesforce for supplier information through API integration. For each supplier, the default payment type can be configured. The suppliers can be uploaded in Bulk as well.
In CPX ​​We use different vendors to generate virtual cards for each supplier and process payments to the supplier. The vendor generates a virtual card & shares details like card token, expiry date etc. Each vendor has different integration that has to be mapped to our standard implementation.

A. Our current vendors for card processing are:

  • a. Galileo - This is presented as Falcon in the system.
  • b. DXC - This is presented as Braves in the system. Currently, Falcon is used for the majority of buyers but the new narrative is to gradually switch all buyers to Braves, as DXC offers better terms of use and rates for CPX.

B. Card Options offered by CPX:

  • a.Standard Single Use - Can be used once and billed by the exact amount on card
  • b. Standard Multi Use - Can be billed many times with different amounts, within the balance limit. Can’t be topped up
  • c. Lodge Cards - Can be billed many times with different amounts, within the balance limit. Can be topped up.

Payment Instruction File

    1. There is a standard PIF File that is only used by one institution i.e. Mineral Tree. For the rest of the institutions, we have a customized mapping available. 2. There are also other buyer-specific file types - ( SUNGART, LINCOLN, HARRIS_HLG, etc.)

10.2 Attributes

FieldSub FieldTypeDescription
nidstringunique id between a respected network and an institution
fidstringunique id between a institution and a respective buyer.
buyerIdstringinternal id of the buyer
supplierIdstringunique id of the supplier
supplierNamestringname of the supplier
amountIntegeramount of the payment
transactionIdstringtransaction id of the payment
accountTypestringpayment method
fileDateStringfile date of the payment getting created [YYYY-MM-DD]
checkInsertObjectAttachment to be sent as PDF Insert along with check payment
attachmentIdstringAttachment Id for insert
base64ContentstringContent of insert in base64 format
fileNamestringName of insert file
printTypestring(Enum)Type of printing to be used for insert
  • blackandwhite
  • blackandwhiteduplex
  • color
  • colorduplex
deliveryModeenumMode of delivery to be used for check payment STANDARD/OVERNIGHT/TWODAY
reference1stringReference 1 details
reference2stringReference 2 details
reference3stringReference 3 details
reference4stringReference 4 details
reference5stringReference 5 details
emailNotesstringEmail notes to be passed along with payment
scheduleDatestringDate in future to schedule the payment(upto 90 days in future)
bankRoutingNumberStringRouting number of supplier’s bank account.
bankAccountNumberStringAccount number of the supplier’s receiving account.
partialPaymentIndicatorstring
paymentExpirationDateStringExpiry Date of the payment getting created [YYYY-MM-DD]
checkRemittanceTemplateIdstringId of custom check remittance to be used
checkNumberintegernumber for the check to be issued.
templateIdStringCard specific template ID Galileo - 4 digit product Id DXC - 16 digit template If
accountIdstringId of account to be used ACH/Check/VCN - Id of bank account to be used Lodge - Id of Lodge card to be used. Plastiq – Token of External Card to be used.
supplierAddressLine1stringaddress of supplier
supplierAddressLine2stringaddress of supplier
supplierCitystringcity of supplier
supplierStatestringstate of supplier
supplierZipstringpostal code of supplier
supplierEmailstringemail address of supplier
invoiceNumbersarray of stringsInvoice number associated to the payment
invoiceDatesarray of stringsDate associated to invoice
invoiceAmountsarray of floatAmount associated to invoice
invoiceOpenAmountsarray of floatOpen Amount of the invoice
invoiceTotalDuesarray of floatTotal due of invoice
invoiceDescriptionsarray of stringDescription of invoice
invoiceCreditAmountsarray of floatCredit amount of invoice
invoiceCreditNumbersarray of stringCredit Number of Invoice
invoiceCreditMemoNotesarray of stringCredit Memo note of Invoice
invoiceDiscountAmountsarray of floatDiscount amount of invoice
invoiceLocationsarray of stringLocation of Invoice
invoiceAttachmentsarray of stringInvoice attachment ID to upload invoice as PDF
poNumbersarray of stringPO number of invoice
poDatesarray of stringPO Date of invoice
udf1-50array of stringIndividual UDF values for each invoice can be passed if UDFs are set in custom PIF associated to buyer
virtualCardNumberStringCard Number of Virtual card
securityCodeStringSecurity code/CVV of the card
vcnStatusStringStatus of VCN
expirationDateStringExpiration date of VCN
expirationStringStringExpiration string of VCN
nameOnCardStringName on the card
payloadObjectPayment payload
id
_scroll_idStringThe id for the search context
aggregationsObjectTotal Aggregate amount of the records fetched
totalAmount
  • value
Object
Integer
Total Amount
Total Amount value
settledCount
  • doc_count
Object
Integer
Count of settled transactions
settledAmount
  • value
Object
Integer
Total Settled Amount
Value of settled amount
totalRecordsIntegerTotal number of records available
totalTypeStringWhether the records returned are an exact or in range
recordCountIntegerNumber of records fetched
recordsArray of objectsDetails of the records fetched
fileDateStringDate and time when the payment file was uploaded
transactionIdStringTransaction ID passed by user
accountTypeString(Enum)Payment method passed for payment
emailNotesStringEmail notes passed with the payment
reference1StringValue of Reference 1
reference2StringValue of Reference 2
reference3StringValue of Reference 3
reference4StringValue of Reference 4
reference5StringValue of Reference 5
aclArrayAccess control list for the payment
buyerIdStringId of buyer to which payment is associated
supplierIdStringId of supplier to which payment is associated
holdAmountFloatSettlement amount for DXC payment
pirReasonStringDXC reconciliation data
holdTransCodeStringCode for transaction
vcnAccountNumberStringLast 4 digits of bank account
vcnReferenceNumberStringReference number of card
postDateStringSettlement date
purchaseDateStringPayment process date
statusDateStringDate and time when the status was updated
paymentStatusStringStatus of payment
pifTransactionIdStringInternal Transaction Id
previousPaymentStatusStringStatus previous to current status of payment
createdStringDate and time when payment was created
creator
  • id
  • username
Object
  • String
  • String
Id of creator of payment
Username of creator of payment
modifiedStringDate and time when payment was last modified
modifier
  • id
  • username
Object
  • String
  • String
Id of modifier of payment
Username of modifier of payment
idStringId of payment
amountStringAmount of payment
paymentMethodStringPayment Method - CARD/ACH/CHECK/WIRE
paymentAuthMessageStringReason of payment status in case of error
achTransactionTypeStringType of ACH transaction - Debit/Credit
transactionDateStringDate of payment transaction
importDateStringDate and time when payment file was imported to CPX
filePathStringFile path for payment file
fileIdStringId of payment file
isProxyPayBooleanIf Proxy Pay is enabled for supplier so that supplier doesnt receive card details
createdFromStringPayment was created via which platform
hasInvoicesBooleanWhether payment has invoice information
invoiceCountStringCount of invoices associated with payment
invoiceUploadCountStringCount of invoices uploaded with payment
pendingStringDate and time when status was changed to pending
sentStringDate and time when status was changed to sent
readyStringDate and time when status was changed to ready
scheduledStringDate and time when status was changed to scheduled
settledStringDate and time when status was changed to settled
authorizedStringDate and time when status was changed to authorized
emailSentStringDate and time when status was changed to email sent
failedStringDate and time when status was changed to failed
cancelledStringDate and time when status was changed to cancelled
expiredStringDate and time when status was changed to expired
vcnEmailSentDateStringDate and time when email was sent for VCN payment
paymentReferenceStringReference details for payments
  • Trace number/ReplayId from MXM/Ach.com for ACH payments
  • Check Payment Id from vendor for Check payments
vcnBalanceStringBalance of card in real time
accountIdStringId of account to be used ACH/Check/VCN - Id of bank account to be used Lodge - Id of Lodge card to be used
walletIdStringID of virtual wallet created for buyer
wireEnabledBooleanIf Wire is enabled and underwriting is approved
wireRequestedBooleanIf wire is enabled but underwriting is requested
wire
  • billing
  • walletId
  • delayDays
  • debitMethod
Object
  • String
  • String
  • String
  • String
Wire billing and underwriting information Billing method set for Wire - Good funds Wallet ID associated to debit delayDays set for wire - no delay Debit Method set for Wire - Debit for each transaction
network
  • id
  • name
Object
  • String
  • String
Network details associated to Fee
  • Id of Network
  • Name of Network
institution
  • id
  • name
Object
  • String
  • String
Institution details associated to Fee
  • Id of Institution
  • Name of Institution
buyer
  • id
  • name
Object
  • String
  • String
Buyer for which fee transaction is created
  • Id of buyer
  • Name of the Buyer
supplier
  • id
  • name
Object
  • String
  • String
Supplier details
  • Id of supplier
  • Name of supplier
tagsArrayTags associated to Payment
xmidString
vcnLink
  • hash
  • mask
Object
  • String
  • String
VCN Link for Payment
  • Hash of link
  • Masked value of link
vcnStatusStringStatus of card
achDebitIdStringId of ACH debit created for payment
merchantIdStringUsers Merchant ID on MXM
checkNumberStringCheck number for Check payment
isSingleUseBooleanIf payment is created with single use card
cardEntityIdStringHash Id of Card
scheduleDateStringDate of payment scheduled
securityCode
  • hash
  • mask
Object
  • String
  • String
Security code set for payment
  • Hash of security code
  • Mask of security code
expirationDateStringExpiration date of payment
originalAmountStringTransaction Amount
vcnTokenNumberStringToken Number for VCN payment
hasPendingDebitBooleanIf the payment has a debit pending
paymentAuthCodeStringAuth code on MXM/Ach.com
paymentCardTypeStringCard type of the card account on MXM
expirationStringStringExpiration date and time for payment
totalDebitAmountStringTotal amount debited for the payment
externalAccountIdStringId of external account for payment
virtualCardNumber
  • data
  • hash
  • mask
Object
  • String
  • String
  • String
Card Number generated
  • Card number data
  • Hash of card number
  • Mask of card number
partialPaymentIndicatorStringIf Payment is partial or not
paymentStatusHistoryArrayHistory of payment status
paymentAccountNumberStringLast 4 of the account for Reference
buyerBillingProductStringType of Billing for Buyer Card/Check/ACH
hasFailedOverBooleanIf card has expired and balance payment has to be sent via different method
terminatedAmountFloatLast available balance on card before cancellation or expiry
cardRules
  • id
  • host
  • name
  • type
  • ruleType
  • billLevel
  • isDefault
  • ruleValue
  • isExactAmount
  • expirationDays
Object
  • String
  • String
  • String
  • String
  • String
  • String
  • Boolean
  • String
  • Boolean
  • String
Card Rules associated to payment
  • Id of card rule
  • Host of card rule
  • Name of card rule
  • Type of card rule
  • Rule Type of card rule
  • Bill level of card rule
  • If rule is default card rule
  • Value of card rule
  • If rule is for exact matching of amount
  • Expiration days for product created with respective card rule
authorization
  • amtAvail
  • authAmount
  • authDateTime
Object
  • String
  • String
  • String
Authorization received for the payment
  • Amount available against payment not yet authorized
  • Amount authorized for payment
  • Latest Authorization date and time
authorizations
  • id
  • amount
  • created
  • timeStamp
  • transactionAmount
Array of ObjectsList of authorizations received for payment
  • Id of authorization
  • Amount of authorization
  • Authorization creation date
  • Time stamp for authorization
  • Transaction authorization amount
settlement
  • amount
  • status
  • unsettledAmount
  • settlementAmount
  • settlementDateTime
Object
  • String
  • String
  • String
  • String
  • String
Settlement received for the payment
  • Amount of settlement
  • Status of settlement
  • Amount not yet settled for the payment
  • Amount settled for the payment
  • Date and time of settlement
settlements
  • id
  • created
  • timeStamp
  • transactionAmount
Array of objectsList of settlements received for payment
  • Id of settlement
  • Time and date when settlement was created
  • Timestamp for settlement
  • Transaction settlement amount
vcnReferenceStringPayment Reference Number for galileo, CPX generated reference for DXC cards
paymentProcessDateStringDate on which payment gets processed
vcnLinkAccessedDateStringLast date when VCN link was accessed
vcnAccountExpirationDateStringDate when card expires
vcnEmailReminderSendDateStringDate when the reminder email is to be sent next
vcnEmailReminderLastSentDateStringDate and time when VCN email reminder was last sent
checkProcessorStringProcessor for Check Payment - CHK/MCK/EMCK
isFailOverTransactionBooleanIf transaction is a failover transaction
originalFailOverTransactionIdStringId of transaction for which fail over transaction was created
failedPaymentNotificationSentBooleanIf notification was sent for failed payment
isGoodFundsBuyerReturnBooleanTransaction category for CPX
isNewTransactionBooleanIf Transaction is system generation

10.3 Operations

10.3.1. Create Payments
10.3.2. Cancel Payment
10.3.3. Get list of Payments
10.3.4. Get list of Payments for a Supplier
10.3.5. Get list of Payments for Export
10.3.6. Get list of Payments for a supplier for Export
10.3.7. Decrypt Card Data for Payment
10.3.8. Get VCN Expiration for a Card
10.3.9. Cancel VCN Card
10.3.10. Get Settlement Data for a Payment
10.3.11. Search all payments from a transactionId
10.3.12. Get Payments with Card Token
10.3.13. Get list of Payments for a Buyer for Export
10.3.14. Gets the Payment Status History of a Payment for export
10.3.15. Gets the Payment Status History of a Payment
10.3.16. Get Fail Over Transactions for the given Transaction Id
10.3.17. Get supplier VCN link payment


Priority Technology Holdings Logo