Chase Paymentech

Authentication

In order to connect your chase payment account with Leapfin, you need to request Chase Paymentech to enable SFTP on your production account.

Leapfin needs following information regarding the SFTP account. Please contact Chase Paymentech support for the information.

required fields:

  • Server host name
  • User name
  • Password or Private key (either one of them will be sufficient)

optional fields:

  • Private key password (required only if SFTP private key is password protected)
  • Outbox or folder name (required only if the files are not placed in the root directory)
  • Host key or Host key fingerprint (required only if you need enhanced security. Providing one of them will be sufficient)
  • File decryption private key (required only if the files on SFTP server are encrypted)
  • File decryption private key password (required only if the files on SFTP server are encrypted using a password protected key)

Data Sources

Once authenticated, Leapfin fetches information related to submissions, fees, deposits, chargebacks and foreign exchange rate from Chase Paymentech via SFTP.

DELIMITED FILE REPORTS

Chase Paymentech sends Delimited File Reports (DFR) via sftp. DFR are downloaded daily.

The DFR contains various types of records. For the schema of the DFR, look here

For each file from DFR with header record (Record Type = "HPDE0017"), each detail record (Record Type = "RPDE0017D") is imported as chase-paymentech-chargeback-detail into Leapfin.

Sample Data

{
    "category": "RECD",
    "companyId": "XXXxX",
    "feeAmount": "",
    "usageCode": "9",
    "entityType": "TD",
    "reasonCode": "11.3",
    "recordType": "RPDE0017D",
    "statusFlag": "",
    "activityDate": "08/23/2020",
    "entityNumber": "18142",
    "reportDateTo": "08/23/2020",
    "ticketNumber": "",
    "accountNumber": "XXXXXXXXXXXXXX33",
    "reportDateFrom": "08/23/2020",
    "sequenceNumber": "XXXxX",
    "tokenIndicator": "0",
    "methodOfPayment": "VI",
    "transactionDate": "06/29/2020",
    "authorizationDate": "06/29/2020",
    "chargebackDueDate": "09/10/2020",
    "settlementCurrency": "USD",
    "merchantOrderNumber": "XXXxX",
    "presentmentCurrency": "USD",
    "reportGenerationDate": "08/23/2020",
    "reportGenerationTime": "20:18:28",
    "chargebackInitiatedDate": "08/23/2020",
    "potentialBundledChargebacks": "",
    "previousPartialRepresentment": "N",
    "currentActionSettlementCurrencyAmount": "599.00",
    "issuerChargebackSettlementCurrencyAmount": "599.00",
    "issuerChargebackPresentmentCurrencyAmount": "599.00",
    "currentActionPresentmentCurrencyChargebackAmount": "599.00"
}

For each file from DFR with header record (Record Type = "HFIN0010"), each detail record (Record Type = "RFIN0010") is imported as chase-paymentech-deposit-summary into Leapfin.

Sample Data

{
    "count": "1",
    "amount": "9.00",
    "category": "SALE",
    "companyId": "XXXXX",
    "entityType": "TD",
    "recordType": "RFIN0010",
    "entityNumber": "XXXXX",
    "reportDateTo": "03/22/2020",
    "reportDateFrom": "03/22/2020",
    "methodOfPayment": "JC",
    "settledOrConveyed": "S",
    "settlementCurrency": "USD",
    "foreignExchangeRate": "1",
    "presentmentCurrency": "USD",
    "reportGenerationDate": "03/23/2020",
    "reportGenerationTime": "04:13:44",
    "secureBankAccountNumber": "XXXXX",
    "fundsTransferInstructionNumber": "XXXXX"
}

For each file from DFR with header record (Record Type = "HACT0010"), each detail record (Record Type = "RACT0010") is imported as chase-paymentech-deposit-detail into Leapfin.

{
    "amount": "29.50",
    "reserved": "",
    "companyId": "16823",
    "actionCode": "DP",
    "entityType": "TD",
    "rdfiNumber": "",
    "recordType": "RACT0010",
    "presenterId": "xxxxx",
    "traceNumber": "",
    "entityNumber": "xxxxx",
    "recordNumber": "115",
    "reportDateTo": "08/22/2020",
    "accountNumber": "XXXXXXXXXXXX9810",
    "voucherNumber": "",
    "cashbackAmount": "",
    "expirationDate": "01/23",
    "reportDateFrom": "08/22/2020",
    "submissionDate": "08/22/2020",
    "tokenIndicator": "",
    "methodOfPayment": "MC",
    "surchargeAmount": "",
    "submissionNumber": "xxxxx.098Ci",
    "authorizationCode": "xxxxx",
    "authorizationDate": "08/22/2020",
    "settlementCurrency": "USD",
    "consumerCountryCode": "",
    "merchantCountryCode": "5968",
    "merchantOrderNumber": "xxxxx",
    "presentmentCurrency": "TRY",
    "presenterIdShortName": "xxxxx",
    "reportGenerationDate": "08/23/2020",
    "reportGenerationTime": "01:51:47",
    "authorizationResponseCode": "100",
    "electronicsBenefitsTransferAccountType": ""
}

For each file from DFR with header record (Record Type = "HACT0012"), each detail record (Record Type = "RACT0012") is imported as chase-paymentech-submission-listing into Leapfin.

{
    "status": "Accepted",
    "companyId": "XXXXX",
    "entityType": "TD",
    "recordType": "RACT0012",
    "presenterId": "XXXXX",
    "entityNumber": "XXXXX",
    "reportDateTo": "03/22/2020",
    "reportDateFrom": "03/22/2020",
    "submissionDate": "03/21/2020",
    "submissionTime": "22:03:39",
    "submissionNumber": "XXXXX.0009i",
    "transactionCount": "132",
    "authorizationCount": "0",
    "settlementCurrency": "USD",
    "presentmentCurrency": "USD",
    "declinedDepositCount": "0",
    "presenterIdShortName": "vincia",
    "reportGenerationDate": "03/23/2020",
    "reportGenerationTime": "03:35:07",
    "successfullDepositCount": "132",
    "rejectedTransactionCount": "0",
    "successfullNetDepositAmount": "8374.36",
    "nonFinancialTransactionCount": "0",
    "cancelledOrOnholdDepositCount": "0",
    "cancelledOrOnholdNetDepositAmount": "0.00"
}

For each file from DFR with header record (Record Type = "HFIN0011"), each detail record (Record Type = "RFIN0011") is imported as chase-paymentech-servicecharge-detail into Leapfin.

{
    "amount": "",
    "unitFee": "0.0250",
    "category": "IA",
    "companyId": "XXXXX",
    "actionType": "V",
    "entityType": "TD",
    "recordType": "RFIN0011",
    "subCategory": "IC",
    "totalCharge": "-50.08",
    "entityNumber": "18142",
    "reportDateTo": "03/22/2020",
    "unitQuantity": "1759",
    "feeScheduleId": "29225062",
    "percentageRate": "0",
    "reportDateFrom": "03/22/2020",
    "methodOfPayment": "VI",
    "feeTypeDescription": "Verification",
    "settlementCurrency": "USD",
    "presentmentCurrency": "USD",
    "reportGenerationDate": "03/23/2020",
    "reportGenerationTime": "03:34:21",
    "secureBankAccountNumber": "XXXXX",
    "interchangeQualification": "NONE",
    "fundsTransferInstructionNumber": "XXXXX"
}

Mapping Logics

chase-paymentech-deposit-detail

For each file from DFR with header record (Record Type = "HACT0010"), each detail record (Record Type = "RACT0010") is imported as chase-paymentech-deposit-detail into Leapfin.

Create a payment

Leapfin creates a payment object for each record if chase-paymentech-deposit-detail.actionCode is any of the following ["B", "D", "H", "I", "DC", "DO", "DP", "OD", "VD"]

Target: leapfinPayment(schema)Source:
chase-paymentech-deposit-detail(schema) page 33
objectType“payment”
idconcatenate the fields from chase-paymentech-deposit-detail
--
e.g. "08222020-00822.098Ci-115"
amountchase-paymentech-deposit-detail.amount
currencyCodechase-paymentech-deposit-detail.presentmentCurrency
datechase-paymentech-deposit-detail.submissionDate
succeededDatesame as date above
description''
status“succeeded”
exchangeRatewe map in rate from
chase-paymentech-deposit-detail.foreignExchangeRate
and currencyCode from chase-paymentech-deposit-detail.settlementCurrency
customFields The following fields from source record are added:
-- chase-paymentech-deposit-detail.merchantOrderNumber
-- chase-paymentech-deposit-detail.settlementCurrencyCode
linksNone

Create a refund

Leapfin creates a refund object for each record if chase-paymentech-deposit-detail.actionCode is any of the following ["N", "R", "ER", "RD", "RF"]

Target: leapfinRefund(schema)Source:
chase-paymentech-deposit-detail.actionCode (schema) page 33
objectType“refund”
idconcatenate the fields from chase-paymentech-deposit-detail
--
e.g. "08222020-00822.098Ci-115"
amountchase-paymentech-deposit-detail.amount
currencyCodechase-paymentech-deposit-detail.presentmentCurrency
datechase-paymentech-deposit-detail.submissionDate
status“succeeded”
exchangeRatewe map in rate from
chase-paymentech-deposit-detail.foreignExchangeRate
and currencyCode from chase-paymentech-deposit-detail.settlementCurrency
customFieldsThe following fields from source record are added:
-- chase-paymentech-deposit-detail.merchantOrderNumber
-- chase-paymentech-deposit-detail.settlementCurrencyCode
linksNone

chase-paymentech-servicecharge-detail

For each file from DFR with header record (Record Type = "HFIN0011"), each detail record (Record Type = "RFIN0011") is imported as chase-paymentech-servicecharge-detail into Leapfin.

Create a fee

Leapfin creates a fee object for each record in the chase-paymentech-servicecharge-detail

Target: LeapfinFee (schema)Source:
chase-paymentech-servicecharge-detail (schema page 109
objectType"fee"
idconcatenate the fields from chase-paymentech-servicecharge-detail
-
- row-index start from 1
- e.g. "03222020-1343"
amountnegative chase-paymentech-servicecharge-detail.totalCharge
postive amount is a fee, negative amount is reversal of a fee
currencyCodechase-paymentech-servicecharge-detail.settlementCurrency
datechase-paymentech-servicecharge-detail.reportDateFrom
descriptionchase-paymentech-servicecharge-detail.feeTypeDescription
customFieldsThe following fields from source record are added:
-- chase-paymentech-servicecharge-detail.category
-- chase-paymentech-servicecharge-detail.subCategory
-- chase-paymentech-servicecharge-detail.actionType
-- chase-paymentech-servicecharge-detail.presentmentCurrency
linksnone

chase-paymentech-chargeback-detail

For each file from DFR with header record (Record Type = "HPDE0017"), each detail record (Record Type = "RPDE0017D") is imported as chase-paymentech-chargeback-detail into Leapfin.

create a dispute

Leapfin creates a dispute object for each record in the chase-paymentech-chargeback-detail

Target: LeapfinDispute (schema)Source: chase-paymentech-chargeback-detail (schema) page 138
objectType"dispute"
idchase-paymentech-chargeback-detail.sequenceNumber
amountabsolute value of chase-paymentech-chargeback-detail.currentActionPresentmentCurrencyChargebackAmount
currencyCodechase-paymentech-chargeback-detail.presentmentCurrency
datechase-paymentech-chargeback-detail.chargebackInitiatedDate
statusIf chase-paymentech-chargeback-detail.categoryis "OPADENY", then set status as "lost".
else if chase-paymentech-chargeback-detail.categoryis "OPAACCEPT" or "R", set status as "won"
Otherwise, set status as "pending".
initiatedDatechase-paymentech-chargeback-detail.chargebackInitiatedDate
resolvedDateIf chase-paymentech-chargeback-detail.categoryis "OPADENY" or
"OPAACCEPT" or "R", then set resolvedDate as chase-paymentech-chargeback-detail.activityDate.
else do not update or set as Null
descriptionchase-paymentech-chargeback-detail.category
customFieldsThe following fields from source record are added:
-- chase-paymentech-chargeback-detail.merchantOrderNumber
-- chase-paymentech-chargeback-detail.settlementCurrencyCode
-- chase-paymentech-chargeback-detail.currentActionSettlementCurrencyAmount
-- chase-paymentech-chargeback-detail.issuerChargebackPresentmentCurrencyAmount
-- chase-paymentech-chargeback-detail.issuerChargebackSettlementCurrencyAmount
linksNone