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

- Login to Client Portal and navigate to Apps
- Click the Manage button to open the Azupay Batch configuration
- Click or switch the Enable Batch to On and fill in the SFTP server details.
- 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
Attribute | Value |
---|---|
Filename - Inbound File | <file-type>-<unique-file-identifier>-request.csv |
Filename - Processed | <file-type>-<unique-file-identifier>-request.processed.csv |
File Encoding | UTF-8 |
New Line Character | UNIX new line (i.e. \n ) |
File Size | Maximum 256 MB |
Field Delimiter | Comma character (i.e. , ) |
Field Value Enclosing Character | Double quote (“) or ASCII decimal 34 |
File Types
We have the following file types
Transaction Type | file-type | suffix | delimiter | sample request file |
---|---|---|---|---|
Payment Request | payment-request | -request.csv | Comma (,) | payment-request-202202120001-request.csv |
Payment Initiation | payment-initiation | -request.csv | Comma (,) | payment-initiation-202202120001-request.csv |
Payment Initiation | payment-initiation | -response.csv | Comma (,) | payment-initiation-202202120001-response.csv |
Payment Initiation Refund | payment-initiation-refund | -request.csv | Comma (,) | payment-initiation-refund-202202120001-request.csv |
Payment Initiation Refund | payment-initiation-refund | -response.csv | Comma (,) | payment-initiation-refund-202202120001-response.csv |
Payment | payment | Carriage-return/line-feed (CRLF) | 202202120001.aba | |
Payment | payment | -response.aba | Carriage-return/line-feed (CRLF) | 202202120001 -response.aba |
archive
subdirectoryFiles 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 / Consideration | Payments via API | Batch SFTP |
---|---|---|
Integration Type | Real-time REST API with optional webhook notifications | File-based integration via SFTP using CSV or ABA files |
Best For | Businesses needing real-time payment processing and dynamic PayID generation | Organisations with existing batch processing systems or those preferring scheduled, bulk operations |
Field Support | Supports 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 Complexity | Higher initial development effort; requires API integration and possibly webhook setup | Lower development effort; leverages existing SFTP infrastructure and file generation tools |
Payment Speed | Instantaneous processing with real-time status updates | Near real-time processing; files are polled every minute, with each file processed sequentially |
Payment Request Types | Supports Dynamic PayID (single-use) and Open Static PayID (multi-use) | Supports both single-use and multi-use PayIDs through file configurations |
Monitoring & Reporting | Real-time monitoring via API responses and webhooks | Monitoring through response files and the Azupay dashboard |
Error Handling | Immediate feedback through API responses and webhooks | Errors reported in response files; may require manual review |
Security | Secure API calls with authentication tokens; supports webhook security | Secure file transfers using SFTP with SSH key authentication |
Scalability | Highly scalable with programmatic control over each transaction | Scalable for bulk transactions; each file can contain multiple payment requests |
Use Case Examples | E-commerce checkouts, mobile apps, real-time invoicing | Payroll processing, bulk invoice payments, scheduled disbursements |
Updated 2 days ago