File transfer guide - Batch

What is Batch?

Batch is an app that provides a file based interface to our products. Customers can make a file available to Azupay via their own self-hosted sftp server. A file contains multiple records that will be used to create PaymentRequests, PaymentInitiations or Payments.

Easy to integrate

Leverage your existing sftp infrastructure and file generation applications to integrate with our Batch App.

Secure

Well known, reliable, and secure technology using SFTP (Secure File Transfer Protocol). Using private/public key based authentication, you can be sure that the transfer process is secure.

PayID based payments are inherently secure. Files do not require the inclusion of any customer identification data. No file level or encryption at rest required.

Super fast

We have built a streaming, highly parallelised system for consuming files and invoking the same API’s that we offer you.

Enabling Batch

  1. Login to Client Portal and navigate to Apps
  2. Click the Manage button to open the Azupay Batch configuration
  3. Click or switch the Enable Batch to On and fill in the SFTP server details.
  4. Copy and paste the Public SSH Key to your SFTP server's authorized_keys file.

📘

Batch app polling behaviour

Batch app will poll your sftp server every minute, process a single file and then stop. So, if you place 10 files on your sftp server, it will take at least 10 minutes to process them all.

File Name Specification

Example

  • Example file names:
    • payment-initiation-20211027115901-1-request.csv
    • payment-request-2021102711590100001-request.csv

Specification

AttributeValue
Filename - Inbound File<file-type>-<unique-file-identifier>-request.csv
Filename - Processed<file-type>-<unique-file-identifier>-request.processed.csv
File EncodingUTF-8
New Line CharacterUNIX new line (i.e. \n )
File SizeMaximum 256 MB
Field DelimiterComma character (i.e. , )
Field Value Enclosing CharacterDouble quote (“) or ASCII decimal 34

File Types

We have the following file types

Transaction Typefile-typesuffixdelimitersample request file
Payment Requestpayment-request-request.csvComma (,)payment-request-202202120001-request.csv
Payment Initiationpayment-initiation-request.csvComma (,)payment-initiation-202202120001-request.csv
Payment Initiationpayment-initiation-response.csvComma (,)payment-initiation-202202120001-response.csv
Payment Initiation Refundpayment-initiation-refund-request.csvComma (,)payment-initiation-refund-202202120001-request.csv
Payment Initiation Refundpayment-initiation-refund-response.csvComma (,)payment-initiation-refund-202202120001-response.csv
PaymentpaymentCarriage-return/line-feed (CRLF)202202120001.aba
Paymentpayment-response.abaCarriage-return/line-feed (CRLF)202202120001 -response.aba

📘

archive subdirectory

Files that has been processed (either successful or failed) will be moved to subdirectory archive

When to choose Batch compared to our APIs.

Choose our API if your business requires real-time payment processing, immediate feedback, and dynamic generation of payment requests. This method is ideal for interactive applications like e-commerce platforms or services needing instant payment confirmations, and is our recommended integration method where possible.

Opt for Batch SFTP if your organization already has batch processing systems in place or prefers handling payments in bulk at scheduled intervals. This approach minimises development efforts by utilising existing infrastructure and is suitable for scenarios like payroll or bulk invoice settlements.

Feature / ConsiderationPayments via APIBatch SFTP
Integration TypeReal-time REST API with optional webhook notificationsFile-based integration via SFTP using CSV or ABA files
Best ForBusinesses needing real-time payment processing and dynamic PayID generationOrganisations with existing batch processing systems or those preferring scheduled, bulk operations
Field SupportSupports our full list of API parameters. For example, Payment Requests can have Branch Codes supplied to help categorise transactions.Only supports a subset of transaction fields as documented in the relevant payment batch type.
Setup ComplexityHigher initial development effort; requires API integration and possibly webhook setupLower development effort; leverages existing SFTP infrastructure and file generation tools
Payment SpeedInstantaneous processing with real-time status updatesNear real-time processing; files are polled every minute, with each file processed sequentially
Payment Request TypesSupports Dynamic PayID (single-use) and Open Static PayID (multi-use)Supports both single-use and multi-use PayIDs through file configurations
Monitoring & ReportingReal-time monitoring via API responses and webhooksMonitoring through response files and the Azupay dashboard
Error HandlingImmediate feedback through API responses and webhooksErrors reported in response files; may require manual review
SecuritySecure API calls with authentication tokens; supports webhook securitySecure file transfers using SFTP with SSH key authentication
ScalabilityHighly scalable with programmatic control over each transactionScalable for bulk transactions; each file can contain multiple payment requests
Use Case ExamplesE-commerce checkouts, mobile apps, real-time invoicingPayroll processing, bulk invoice payments, scheduled disbursements