Helpers for cnpAPI batch file processing.
cnpAPI batch files are submitted via SFTP and contain XML transaction records. Results are returned as completion files (~5 business days for Account Updater; same-day for Dynamic Payout).
File types
- Transaction batch — auth, sale, credit, void, etc. in bulk
- Account Updater completion file — results of card update requests
- Dynamic Payout funding report — sub-merchant disbursement results
Usage
# Build a batch session file
session_xml = Worldpay.Reporting.CNPBatch.build_session([
Worldpay.CNP.Builder.sale(id: "txn-001", order_id: "order-001", amount: 1999, card: card),
Worldpay.CNP.Builder.sale(id: "txn-002", order_id: "order-002", amount: 2999, card: card)
],
merchant_id: "MERCH-001",
user: "user",
password: "pass",
batch_id: "batch-001",
num_batch_requests: 2
)
# Write to SFTP for transmission to Worldpay
File.write!("/path/to/batch_2026-07-09.xml", session_xml)
Summary
Functions
Generate a SFTP-ready filename for a cnpAPI batch file.
Build a complete cnpAPI session file from a list of transaction XML elements.
Parse a cnpAPI Account Updater completion file.
Parse a Dynamic Payout funding report.
Functions
Generate a SFTP-ready filename for a cnpAPI batch file.
Build a complete cnpAPI session file from a list of transaction XML elements.
Limits
- Max 20,000 changes per batch
- Max 9,999 batches per session file
- Max 1,000,000 changes per session file
Options
:merchant_id— merchant ID (required):user— cnpAPI username (required):password— cnpAPI password (required):batch_id— unique batch identifier (required):report_group— report group name:num_batch_requests— number of transactions in this batch
Parse a cnpAPI Account Updater completion file.
Returns a list of update result maps, each with:
order_id— original order IDcnp_txn_id— transaction IDresponse— response code ("000" = success)updated_card/updated_token— new card/token details (if updated)reason_code— network reason code
Parse a Dynamic Payout funding report.
Returns a list of funding result maps, each with:
sub_merchant_id— sub-merchant identifierfunding_amount— amount disbursedstatus— "approved" | "declined" | "pending"routing_number— bank routing numberaccount_number— (masked) bank account numberfunding_transaction_type— "credit" | "debit"estimated_settlement_date— ISO 8601 date string