Payment Processors

Peach allows clients to bring their own/partner bank to process ACH payments. If configured, the Peach system will create NACHA files and upload them to the provided destination (SFTP). The Peach system will download NACHA return files from the same destination. Make sure you coordinate this set up with the Peach team.

Create payment processor

Securityoauth2 or bearerAuth or apiKeyHeader
Request
Request Body schema: application/json
paymentTypes
required
Array of strings

The payment types that will be processed by the payment processor. Currently, ach is supported only.

Items Enum: "ach" "debitCard" "creditCard"
processorType
required
string

The type of payment processor.

  • achDirectUS - Peach system will create NACHA files and upload directly to lender’s bank SFTP.
Value: "achDirectUS"
externalId
string or null non-empty

A lender's identifier for an object.

After the object is successfully created, a lender can use id or externalId identifiers to fetch the object.

To fetch the object using externalId you need to add ext- to the URL.

Note: Don't add ext- to the identifier value. For example: if the external identifier is ABCDE, then pass externalId=ACBCE and NOT ext-ABCDE when creating the object.

processorName
required
string

The name of the payment processor. For example: Silicon Valley Bank or Wells Fargo.

status
required
string

The status of the payment processor.

  • draft - the payment processor is in the process of being configured and not ready to be used.
  • active - the payment processor is ready to process payments.
  • deprecated - the payment processor was deprecated and new payments cannot be processed.
Enum: "draft" "active" "deprecated"
isDefault
boolean
Default: true

Mark the payment processor as default for the company. Only one payment processor can be default. If a new payment processor is created with isDefault=true and there is another payment processor with isDefault=true, the system will set isDefault=false for the other/existing processor.

isSettlementRequired
boolean
Default: false

If true, successful payments will be swept from the Peach servicing accounts to the lender's investor(s). true value is only allowed for payment processors that partner with Peach directly. The value will be forced to false.

timezone
required
string

The timezone used by this payment processor. For example: "America/Los_Angeles"

achSameDayCutoff
string <time>

The cutoff time for ACH same day processing, in the payment processor's timezone. For example: "10:00"

achFileHeaderImmediateDestination
string

Data element that is part of the file header record. For example: 121140399.

achFileHeaderImmediateOrigin
string

Data element that is part of the file header record. For example: 1456726789.

achFileHeaderImmediateDestinationName
string

Data element that is part of the file header record. For example: SILICON VALLEY BANK.

achFileHeaderImmediateOriginName
string

Data element that is part of the file header record. For example: PEACH FINANCE INC.

achBatchHeaderCompanyName
string

Data element that is part of the batch header record. For example: PEACH FIN ACH.

achBatchHeaderCompanyId
string

Data element that is part of the batch header record. For example: 2837461011.

achBatchHeaderOriginatingDFIId
string

Data element that is part of the batch header record. For example: 12773923.

If the value is NOT provided (aka null or empty) as part of the configuration, the system will automatically set this value to achFileHeaderImmediateDestination without the last digits. For example: if achFileHeaderImmediateDestination=121140399, the system will set achBatchHeaderOriginatingDFIId=12114039.

achFeeType
string

How the fee is charged by the payment processor. If the full amount is transferred, and fees are charged monthly, use gross. If fees are deducted from the amount transferred, use net.

Enum: "gross" "net"
achFeeAmount
number <float>

The fee charged by the payment processor for regular ACH transactions. For example: 0.05

achSameDayFeeAmount
number <float>

The fee charged by the payment processor for same day ACH transactions. For exmaple: 0.50

sftpHostname
string

The hostname for SFTP. Host name should not contain a scheme, so don't put sftp:// on the front. You may optionally specify a port like so: example.com:222. If no port is supplied a default of 22 will be used.

sftpUsername
string

The username for SFTP.

sftpPassword
string

The password for SFTP.

sftpCdDirOutbox
string

The folder where files (e.g. ACH instructions) will be uploaded. The system will change directory into this folder before performing the upload.

sftpCdDirInbox
string

The folder where files (e.g. ACH returns) will be downloaded from. The system will change directory into this folder before performing the download.

sftpAchConfirmationFileNameRegex
string

The name of the ACH confirmation file. The format is a regular expression. If you are not sure how to set up the regular expression, please contact the Peach team by providing a few example of file names.

If the value is not provided, we assume that the processor doesn't support ACH confirmation files and any upload of an ACH file is considered as successful.

sftpAchReturnFileNameRegex
required
string

The name of the ACH return file. The format is a regular expression. If you are not sure how to set up the regular expression, please contact the Peach team by providing a few example of file names.

isFileNameDefaultConvention
boolean
Default: true
  • If true, files (e.g. ACH) will be named based on the ACHP_MMDDYYYYHHMM convention. For example: ACHP_110320211305.
  • If false, files (e.g. ACH) will be named based on a custom implementation. Do not set false unless you’ve coordinated with the Peach team.
Responses
200

Created

post/payment-processors
Request samples
application/json
{
  • "paymentTypes": [
    ],
  • "processorType": "achDirectUS",
  • "externalId": "string",
  • "processorName": "string",
  • "status": "draft",
  • "isDefault": true,
  • "isSettlementRequired": false,
  • "timezone": "string",
  • "achSameDayCutoff": "14:15:22Z",
  • "achFileHeaderImmediateDestination": "string",
  • "achFileHeaderImmediateOrigin": "string",
  • "achFileHeaderImmediateDestinationName": "string",
  • "achFileHeaderImmediateOriginName": "string",
  • "achBatchHeaderCompanyName": "string",
  • "achBatchHeaderCompanyId": "string",
  • "achBatchHeaderOriginatingDFIId": "string",
  • "achFeeType": "gross",
  • "achFeeAmount": 0,
  • "achSameDayFeeAmount": 0,
  • "sftpHostname": "string",
  • "sftpUsername": "string",
  • "sftpPassword": "string",
  • "sftpCdDirOutbox": "string",
  • "sftpCdDirInbox": "string",
  • "sftpAchConfirmationFileNameRegex": "string",
  • "sftpAchReturnFileNameRegex": "string",
  • "isFileNameDefaultConvention": true
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Get payment processors

Securityoauth2 or bearerAuth or apiKeyHeader
Request
query Parameters
limit
integer [ 1 .. 100 ]
Default: 25

The maximum count of results to retrieve.

startingAfter
string

Return results starting after the provided object identifier.

endingBefore
string

Return results ending before the provided object identifier.

sortBy
Array of strings

The data attributes by which to sort the results.

Responses
200

Success

get/payment-processors
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": [
    ]
}

Get payment processor

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
paymentProcessorId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The payment processor ID.

Responses
200

Success

get/payment-processors/{paymentProcessorId}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Update payment processor

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
paymentProcessorId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The payment processor ID.

Request Body schema: application/json
externalId
string or null non-empty

A lender's identifier for an object.

After the object is successfully created, a lender can use id or externalId identifiers to fetch the object.

To fetch the object using externalId you need to add ext- to the URL.

Note: Don't add ext- to the identifier value. For example: if the external identifier is ABCDE, then pass externalId=ACBCE and NOT ext-ABCDE when creating the object.

processorName
string

The name of the payment processor. For example: Silicon Valley Bank or Wells Fargo.

status
string

The status of the payment processor.

  • draft - the payment processor is in the process of being configured and not ready to be used.
  • active - the payment processor is ready to process payments.
  • deprecated - the payment processor was deprecated and new payments cannot be processed.
Enum: "draft" "active" "deprecated"
isDefault
boolean
Default: true

Mark the payment processor as default for the company. Only one payment processor can be default. If a new payment processor is created with isDefault=true and there is another payment processor with isDefault=true, the system will set isDefault=false for the other/existing processor.

isSettlementRequired
boolean
Default: false

If true, successful payments will be swept from the Peach servicing accounts to the lender's investor(s). true value is only allowed for payment processors that partner with Peach directly. The value will be forced to false.

timezone
string

The timezone used by this payment processor. For example: "America/Los_Angeles"

achSameDayCutoff
string <time>

The cutoff time for ACH same day processing, in the payment processor's timezone. For example: "10:00"

achFileHeaderImmediateDestination
string

Data element that is part of the file header record. For example: 121140399.

achFileHeaderImmediateOrigin
string

Data element that is part of the file header record. For example: 1456726789.

achFileHeaderImmediateDestinationName
string

Data element that is part of the file header record. For example: SILICON VALLEY BANK.

achFileHeaderImmediateOriginName
string

Data element that is part of the file header record. For example: PEACH FINANCE INC.

achBatchHeaderCompanyName
string

Data element that is part of the batch header record. For example: PEACH FIN ACH.

achBatchHeaderCompanyId
string

Data element that is part of the batch header record. For example: 2837461011.

achBatchHeaderOriginatingDFIId
string

Data element that is part of the batch header record. For example: 12773923.

If the value is NOT provided (aka null or empty) as part of the configuration, the system will automatically set this value to achFileHeaderImmediateDestination without the last digits. For example: if achFileHeaderImmediateDestination=121140399, the system will set achBatchHeaderOriginatingDFIId=12114039.

achFeeType
string

How the fee is charged by the payment processor. If the full amount is transferred, and fees are charged monthly, use gross. If fees are deducted from the amount transferred, use net.

Enum: "gross" "net"
achFeeAmount
number <float>

The fee charged by the payment processor for regular ACH transactions. For example: 0.05

achSameDayFeeAmount
number <float>

The fee charged by the payment processor for same day ACH transactions. For exmaple: 0.50

sftpHostname
string

The hostname for SFTP. Host name should not contain a scheme, so don't put sftp:// on the front. You may optionally specify a port like so: example.com:222. If no port is supplied a default of 22 will be used.

sftpUsername
string

The username for SFTP.

sftpPassword
string

The password for SFTP.

sftpCdDirOutbox
string

The folder where files (e.g. ACH instructions) will be uploaded. The system will change directory into this folder before performing the upload.

sftpCdDirInbox
string

The folder where files (e.g. ACH returns) will be downloaded from. The system will change directory into this folder before performing the download.

sftpAchConfirmationFileNameRegex
string

The name of the ACH confirmation file. The format is a regular expression. If you are not sure how to set up the regular expression, please contact the Peach team by providing a few example of file names.

If the value is not provided, we assume that the processor doesn't support ACH confirmation files and any upload of an ACH file is considered as successful.

sftpAchReturnFileNameRegex
string

The name of the ACH return file. The format is a regular expression. If you are not sure how to set up the regular expression, please contact the Peach team by providing a few example of file names.

isFileNameDefaultConvention
boolean
Default: true
  • If true, files (e.g. ACH) will be named based on the ACHP_MMDDYYYYHHMM convention. For example: ACHP_110320211305.
  • If false, files (e.g. ACH) will be named based on a custom implementation. Do not set false unless you’ve coordinated with the Peach team.
Responses
200

Updated

put/payment-processors/{paymentProcessorId}
Request samples
application/json
{
  • "externalId": "string",
  • "processorName": "string",
  • "status": "draft",
  • "isDefault": true,
  • "isSettlementRequired": false,
  • "timezone": "string",
  • "achSameDayCutoff": "14:15:22Z",
  • "achFileHeaderImmediateDestination": "string",
  • "achFileHeaderImmediateOrigin": "string",
  • "achFileHeaderImmediateDestinationName": "string",
  • "achFileHeaderImmediateOriginName": "string",
  • "achBatchHeaderCompanyName": "string",
  • "achBatchHeaderCompanyId": "string",
  • "achBatchHeaderOriginatingDFIId": "string",
  • "achFeeType": "gross",
  • "achFeeAmount": 0,
  • "achSameDayFeeAmount": 0,
  • "sftpHostname": "string",
  • "sftpUsername": "string",
  • "sftpPassword": "string",
  • "sftpCdDirOutbox": "string",
  • "sftpCdDirInbox": "string",
  • "sftpAchConfirmationFileNameRegex": "string",
  • "sftpAchReturnFileNameRegex": "string",
  • "isFileNameDefaultConvention": true
}
Response samples
application/json
{
  • "status": 0,
  • "message": "string",
  • "data": {
    }
}

Delete payment processor

Securityoauth2 or bearerAuth or apiKeyHeader
Request
path Parameters
paymentProcessorId
required
string^ext-|^[A-Z]{2}-[A-Z0-9]+-[A-Z0-9]+|^\d+$

The payment processor ID.

Responses
204

Deleted

delete/payment-processors/{paymentProcessorId}