ACH Sale via the Payment API

Overview

The Preczn Transaction API enables secure processing of ACH debits (sometimes referred to as eCheck or Bank payments). Much a like a credit card sales transaction, using an bank account as a payment method will debit the customer's bank account in order to transfer funds to your merchants.

Making a Bank Payment

To initiate a bank payment, use the sale transaction type. You must provide the following required fields: first name, last name, amount, bank type, account number, and routing number.

Required Fields

  • firstName: (string)This should be the customer name associated with the bank account
  • lastName: (string) This should be the customer last name associated with the bank account
  • amount: (string) The amount to be transferred.

Under the payment method

  • bankAccount - Denotes the type of payment method
    • type: (enumeration) Specifies the type of bank account (e.g., personalChecking, personalSavings, corporateChecking, corporateSavings).
    • account: (string) The bank account number for the transaction.
    • routing: (string) The routing number of the bank.
    • bankCountry (enumeration) currently we support USA and CAN bank accounts. Please reach out to us if you require support for additional countries.

Endpoint

POST /v1/transactions

Request Body

{
    "merchantId": "{{merchantId}}",
    "type": "sale",
    "firstName": "{{$randomFirstName}}",
    "lastName": "{{$randomLastName}}",
    "payment": {
        "bankAccount": {
            "type": "personalChecking",
            "account": "123456789",
            "routing": "123456789",
            "bankCountry": "USA"
        }
    },
    "amount": 123
}
{
    "merchantId": "{{merchantId}}",
    "type": "sale",
    "firstName": "{{$randomFirstName}}",
    "lastName": "{{$randomLastName}}",
    "payment": {
        "token": "tkn_test_2mzqkp2r0w9mkv6a5wxrqy0kdz"
    },
    "amount": 123
}

Response

{
    "amount": 123,
    "authorization": {
        "approvedAmount": 123,
        "avs": "U",
        "cvv": "U",
        "partial": false,
        "processorCode": "1",
        "processorMessage": "APPROVED",
        "processorTransactionId": "t1_txn_663a4dc5d1f127a7768aa3b",
        "status": "P"
    },
    "createdOn": "2024-05-07T15:50:29Z",
    "currency": "USD",
    "fee": 0,
    "firstName": "CLAUDIE",
    "id": "txn_test_14nmvq95kv8tsszzbgbp60fsd5",
    "lastName": "MITCHELL",
    "merchantId": "mid_test_3qya7fmh819wqrrxg75310990c",
    "payment": {
        "bin": "123456789",
        "last4": "4321",
        "token": "tkn_test_2mzqkp2r0w9mkv6a5wxrqy0kdz",
        "type": "personalChecking"
    },
    "plan": {
        "id": "plan_test_11y7n0vpqw9yabf1jpwh52psth",
        "name": "Default Processor Plan"
    },
    "platformId": "pfm_4s7mr6y0c09qab2y6ceb2fx0nz",
    "processor": {
        "id": "pfmCon_test_5k09ch15fr8nqry9tagt6dahqp",
        "name": "Processor"
    },
    "type": "sale"
}

Status Codes

  • 200 OK: Transaction processed successfully.
  • 400 Bad Request: Invalid parameters in the request.
  • 401 Unauthorized: Authentication failure.
  • 500 Internal Server Error: An unexpected error in the server.