Contents
Summary: Bulk MPIR File Payload and Processing Outcome
This document outlines the handling of Bulk Mandate Payment Initiation Requests (Bulk MPIR) submitted via file to ANZ’s Fileactive platform. It provides a detailed structure for creating, submitting, and processing bulk payment initiation requests and explains the status codes used for tracking their progress.
Bulk MPIR Overview
Bulk MPIR allows multiple payment requests to be submitted in a single file. These payments are aggregated and processed together, with details like user ID, payment amounts, and creditor information included in each transaction. The bulk process supports up to 50,000 transactions per file, with each transaction uniquely identified and tracked.
File Structure
The Bulk MPIR File Payload is based on the ISO20022 NPP API Batch Payment Initiation (pain.a46.001.03) format. Key elements include:
request_type
: Defines the type of request (e.g.,BULKMPIR
).creation_date_time
: The timestamp of when the MPIR request is created.mps_user_id
: The unique ID of the user submitting the MPIR.batch_identification
: A unique ID assigned to the entire batch of transactions.instruction_details
: An array of transaction details, includinginstruction_identification
,end_to_end_identification
, andmandate_identification
.
Specification
- JSON schema based on ISO 20022 NPP API Batch Payment Initiation (pain.a46.001.03)
- Payload to be encrypted by customer before sending to ANZ.
Level | Name | Type/Code | Description | Sample Value | M/O/C | Additional Comments |
---|---|---|---|---|---|---|
1.0 | request_type | string(15) | Type of request being submitted via file | BULKMPIR | M | Used only within Fileactive |
2.0 | creation_date_time | string(datetime) | Date and time at which the MPIR request was created. | 2023-09-19T15:01:20.246Z | M | ISODateTime in UTC |
3.0 | requested_execution_date | string(date) | Date on which MPIR should be executed | 2023-09-19 | M | ISO Date |
4.0 | mps_user_id | string(10) | MPS User ID under which the MPIR is submitted. Must match the MPS User ID linked to the Mandate. | 10002005 | M | |
5.0 | priority | string(15) | Indicates whether the Bulk MPIR is attended or unattended | UNATTENDED | M | Only UNATTENDED is supported for Bulk MPIR |
6.0 | batch_identification | string(35) | Unique identification for the payment batch. | 1465ed96b65711edafa10242ac120002 | M | Fileactive will replace this identifier with its own batch identifier. |
7.0 | number_of_transactions | integer(15) | Number of individual transactions contained in the instruction_details group. | 1-50000 | M | No decimal or negative numbers allowed. |
8.0 | instruction_details | array of aggregates | Instruction details specific to MPIR | M | Minimum = 1, Maximum = 50000 | |
9.1 | instruction_identification | string(35) | Unique identification for the instruction. | 1465ed96b65711edafa10242ac120002 | M | If UUID, omit dashes to keep length within 35 characters. |
10.1 | end_to_end_identification | string(35) | Unique identification assigned by the initiating party to identify the transaction. | BILL00237711 | M | Echoed back in MPIR Processing Outcome and BTR/RTN. |
11.1 | uetr | string(36) | Universally unique identifier for an end-to-end payment transaction. | 2f0bfae0-c9a6-4768-8564-5d3d2d73a7e8 | O | Echoed back in MPIR Processing Outcome and BTR/RTN. |
12.1 | mandate_identification | string | Mandate ID as provided by MMS. | 32e21360c36a11eda4d67378abcec396 | M | |
13.1 | instructed_amount | aggregate | Instructed Amount | M | ||
14.2 | currency | string(3) | Currency Code | AUD | M | Only AUD supported |
15.2 | amount | string(19) | Currency Amount | 100.00 | M | |
16.1 | creditor_information | aggregate | Information concerning a creditor party identified in the MPIR. | O | If not provided, will be taken from Mandate by ANZ. | |
17.2 | party_name | string(140) | Name by which the party is known and which is used to identify that party. | Barney Rubble | M | |
18.2 | ultimate_party_name | string(140) | Name by which the ultimate party is known and which is used to identify that party. | Barney Rubble | M | |
19.2 | account_identification_type_code | string(4) | Type of account identification (e.g., BBAN - Basic Bank Account Number). | BBAN | M | Only BBAN allowed |
20.2 | account_identification | string(34) | Unique and unambiguous identification of the account (e.g., Basic Bank Account Number with BSB). | 01312367800234 | M | |
21.1 | remittance_information_unstructured | array of strings(140) | Information to enable matching/reconciliation of an entry. | Lorem ipsum dolor sit amet. | O | Maximum 2 elements |
Sample Payload
{
"request_type": "BULKMPIR",
"creation_date_time": "2023-09-19T15:01:20.246Z",
"requested_execution_date": "2023-09-19",
"mps_user_id": "10002005",
"priority": "UNATTENDED",
"batch_identification": "TC124",
"number_of_transactions": "2",
"instruction_details": [
{
"instruction_identification": "TC124/1471873911",
"end_to_end_identification": "BILL00237711",
"uetr": "2f0bfae0-c9a6-4768-8564-5d3d2d73a7e8",
"mandate_identification": "32e21360c36a11eda4d67378abcec396",
"instructed_amount": {
"currency": "AUD",
"amount": "100.00"
},
"creditor_information": {
"party_name": "Barney Rubble",
"ultimate_party_name": "Barney Rubble",
"account_identification_type_code": "BBAN",
"account_identification": "01312367800234"
},
"remittance_information_unstructured": [
"Lorem ipsum dolor sit amet.",
"In velit turpis, pretium eu diam."
]
},
{
"instruction_identification": "TC124/1581974022",
"end_to_end_identification": "BILL0038712",
"uetr": "bf027a4e-8350-4113-a326-b9b820a99e4e",
"mandate_identification": "d290193889b311eeb9d10242ac120002",
"instructed_amount": {
"currency": "AUD",
"amount": "5100.22"
},
"remittance_information_unstructured": [
"Car loan repayment"
]
}
]
}
Processing Outcome
Note: This table covers the mapping for Bulk MPIR Processing Outcome.
- JSON schema based on ISO 20022 NPP API Batch Payment Status (pain.a47.001.01)
# | Level | Name | Type/Code | Description | Sample Value | M/O/C | Additional Comments |
---|---|---|---|---|---|---|---|
1 | 0 | request_type | string(15) | Type of request being submitted via Fileactive. | BULKMPIRPO | M | |
2 | 0 | message-identification | string(36) | Point to point reference assigned by the instructing party to identify the message. | 3d003c66-2d00-4092-8d8a-e55ba9bf8b2b | M | |
3 | 0 | creation_date_time | string(datetime) | Timestamp when the event is generated (ISO UTC). | 2023-03-16T00:57:02.530Z | M | |
4 | 0 | mps_user_id | string(10) | MPS User ID under which Bulk MPIR was submitted. | 10002005 | O | |
5 | 0 | priority | string | Indicates whether Bulk MPIR is attended or unattended. | UNATTENDED | O | Only UNATTENDED will be supported. |
6 | 0 | batch_identification | string(35) | Unique identification assigned by the instructing party for the payment batch. | 1465ed96b65711edafa10242ac120002 | O | Bulk MPIR |
7 | 0 | original_number_of_transactions | integer(15) | Number of individual transactions in the Bulk MPIR. | 50000 | O | |
8 | 0 | batch_status | string(4) | Batch status: RCVD (received), PDNG (pending), ACTC (accepted), ACSC (settlement complete), RJCT (rejected), PART (partially completed). | ACSC | M | |
9 | 0 | batch_status_reason_code | string(4) | Transaction reason code for RJCT status. | O | Refer to ISO ExternalStatusReason1Code list. | |
10 | 0 | batch_status_additional_information | array of strings(105) | RJCT Reason Description or status for non-RJCT Batch Status. | O | ||
11 | 0 | transaction_status_details | array of aggregates | Details concerning the status of the individual transactions. | O | ||
12 | 1 | transaction_status | string(4) | Transaction Status: ACSC (settlement completed), RJCT (rejected). | ACSC | M | |
13 | 1 | transaction_status_reason_code | string(4) | Transaction reason code for RJCT. | O | ||
14 | 1 | transaction_status_additional_information | array of strings(105) | RJCT Reason Description or status for non-RJCT Transaction Status. | O | ||
15 | 1 | instruction_identification | string(35) | ID assigned by ANZ. | ANZBAU3LXXXI20230621900000000011200 | O | ANZ Processing Outcome |
16 | 1 | uetr | string(UUID) | Universally unique identifier. | a690be37-9caf-44e4-bae1-475b50a8cb18 | O | MPIR |
17 | 1 | account_servicer_reference | string(35) | Unique reference, as assigned by the account servicing institution, to unambiguously identify the instruction. | MPS123456789 | O | ANZ Processing Outcome |
18 | 1 | clearing_system_reference | string(35) | Unique reference, as assigned by a clearing system, to unambiguously identify the instruction. | CUSCAU2SXXXN20230403000139150001900 | O | ANZ Processing Outcome |
19 | 1 | acceptance_date_time | string(datetime) | Point in time when the payment order from the initiating party meets the processing conditions of the account servicing agent. | 2023-06-13T15:01:20.246Z | O | ANZ Processing Outcome |
20 | 1 | original_transaction_reference | aggregate | O | |||
21 | 2 | original_instruction_identification | string(35) | TC121/1471873823 | O | MPIR | |
22 | 2 | instructed_amount | aggregate | O | |||
23 | 3 | currency | string(3) | AUD | M | MPIR | |
24 | 3 | amount | string(19) | 1000.00 | M | MPIR | |
25 | 2 | mandate_identification | string(35) | 247de1c0c3a911edafa10242ac120002 | O | MPIR | |
26 | 2 | creditor_name | string(140) | Barney Rubble | O | ANZ Processing Outcome | |
27 | 2 | creditor_ultimate_name | string(140) | Barney Rubble | O | ANZ Processing Outcome | |
28 | 2 | creditor_account_identification | string(34) | Creditor Account Number, inclusive of BSB. | 01312367800234 | O | ANZ Processing Outcome |
Example Processing Outcome Payload
{
"request_type": "BULKMPIRPO",
"message_identification": "2bdf5f5f-469e-4f93-91fb-d61a934c8d01",
"creation_date_time": "2024-02-27T04:47:32.131Z",
"mps_user_id": "89898989",
"priority": "UNATTENDED",
"batch_identification": "TC124",
"original_number_of_transactions": 2,
"batch_status": "PART",
"transaction_status_details": [
{
"transaction_status": "RJCT",
"transaction_status_reason_code": "FF10",
"transaction_status_additional_information": [
"400: Bad Request"
],
"original_transaction_reference": {
"original_instruction_identification": "TC124/1471873911",
"instructed_amount": {
"currency": "AUD",
"amount": "3.36"
},
"mandate_identification": "32e21360c36a11eda4d67378abcec396"
}
},
{
"transaction_status": "ACSC",
"instruction_identification": "ANZBAU3LXXXI20230621900000000011200",
"account_servicer_reference": "MPS123456789",
"clearing_system_reference": "CUSCAU2SXXXN20230403000139150001900",
"acceptance_date_time": "2023-03-16T00:57:02Z",
"original_transaction_reference": {
"original_instruction_identification": "TC124/1471873912",
"instructed_amount": {
"currency": "AUD",
"amount": "214.00"
},
"mandate_identification": "32e21360c36a11eda4d67378abcec399",
"creditor_name": "Barney Rubble2",
"creditor_ultimate_name": "Barney Rubble 2Party Name",
"creditor_account_identification": "01312367800236"
}
}
]
}
Status Reason Code Mapping
Status | Status Code | Status Description | Reporting Level |
---|---|---|---|
RJCT | TD03 | Incorrect File Structure | Batch |
RJCT | NARR | MPS User ID is Invalid | Batch |
RJCT | DUPL | Duplicate Bulk MPIR file received (File Name: [{filename}]) | Batch |
RJCT | FF10 | Invalid message body | Batch |
RJCT | FF10 | Missing field or incorrect field length | Batch |
RJCT | FF10 | Item count is incorrect and/or Batch ID Mismatch | Batch |
ACTC | Not Mapped | Processing - Released from Warehouse | Batch |
WARE | Not Mapped | Warehoused | Batch |
RJCT | NARR | Division is invalid. Contact the ANZ Customer Service Centre. | Batch |
RJCT | NARR | Product is not entitled. Contact the ANZ Customer Service Centre. | Batch |
RJCT | NARR | MPS User is invalid. Contact the ANZ Customer Service Centre. | Batch |
RJCT | AM21 | Daily MPIR pay-away limit exceeded. Your daily limit is AUD XXX,XXX.XX. Available limit (as at “Time in HH:MM:SS in Melbourne/Sydney Time” on “MPIR Date”): AUD XXX,XXX.XX | Batch |
RJCT | CH04 | Payment date is in the past and invalid. | Batch |
RJCT | CH03 | Payment date is in the future and invalid. | Batch |
PART | (batch) | Partially completed | Batch |
RJCT | (item) | 400: Bad Request | Item |
RJCT | DU05 | 409: Duplicate Instruction ID | Item |
RJCT | AC02 | Invalid Debtor Account | Item |
RJCT | AC03 | Creditor Account number invalid or missing | Item |
RJCT | AC06 | Creditor account blocked | Item |
RJCT | AC07 | Closed Creditor Account number | Item |
RJCT | AM01 | Specified message amount is equal to zero | Item |
RJCT | AM03 | Not Allowed Currency | Item |
RJCT | AM09 | Wrong Amount | Item |
RJCT | AVED | After Validity End Date | Item |
RJCT | BE22 | Creditor name is missing | Item |
RJCT | BVSD | Before Validity Start Date | Item |
RJCT | CH03 | Requested Execution Time is too far in the future | Item |
RJCT | FF10 | Bank System Processing Error | Item |
RJCT | MCGP | MGCR In Grace Period | Item |
RJCT | MD01 | No mandate | Item |
RJCT | NACT | Not Active | Item |
RJCT | NAUT | Unauthorized Mandate | Item |
ACSC | Not Mapped | Accepted Settlement Completed - Debtor Account | Item |
ACSP | Not Mapped | Accepted Settlement In Process | Item |
RJCT | AB01 | Aborted Clearing Timeout | Item |
RJCT | AB02 | Aborted Clearing Fatal Error | Item |
RJCT | AB03 | Aborted Settlement Timeout | Item |
RJCT | AB04 | Aborted Settlement Fatal Error | Item |
RJCT | AB08 | Offline Creditor Agent | Item |
RJCT | AC02 | Invalid Debtor Account Number | Item |
RJCT | AC03 | Invalid Creditor Account Number | Item |
RJCT | AC05 | Closed Debtor Account Number | Item |
RJCT | AC06 | Blocked Account | Item |
RJCT | AC07 | Closed Creditor Account Number | Item |
RJCT | AC13 | Invalid Debtor Account Type | Item |
RJCT | AC14 | Invalid Creditor Account Type | Item |
RJCT | AC15 | Account Details Changed | Item |
RJCT | AG01 | Transaction Forbidden | Item |
RJCT | AG03 | Transaction Not Supported | Item |
RJCT | AG07 | Unsuccessful Direct Debit | Item |
RJCT | AGNT | Incorrect Agent | Item |
RJCT | AM01 | Zero Amount | Item |
RJCT | AM02 | Not Allowed Amount | Item |
RJCT | AM03 | Not Allowed Currency | Item |
RJCT | AM04 | Insufficient Funds | Item |
RJCT | AM06 | Too Low Amount | Item |
RJCT | AM09 | Wrong Amount | Item |
RJCT | AM12 | Invalid Amount | Item |
RJCT | AM19 | Invalid Group Number Of Transactions | Item |
RJCT | AM21 | Limit Exceeded | Item |
RJCT | BE05 | Unrecognized Initiating Party | Item |
RJCT | BE06 | Unknown End Customer | Item |
RJCT | BE08 | Missing Debtor Name | Item |
RJCT | BE22 | Missing Creditor Name | Item |
RJCT | CH20 | Decimal Points Not Compatible With Currency | Item |
RJCT | CH21 | Required Compulsory Element Missing | Item |
RJCT | CURR | Incorrect Currency | Item |
RJCT | CUST | Requested By Customer | Item |
RJCT | DT02 | Invalid Creation Date | Item |
RJCT | DT04 | Future Date Not Supported | Item |
RJCT | ED05 | Settlement Failed | Item |
RJCT | ED06 | Settlement System Not Available | Item |
RJCT | FF04 | Invalid Service Level Code | Item |
RJCT | FF08 | Invalid End-To-End ID | Item |
RJCT | FF10 | Bank System Processing Error | Item |
RJCT | FF11 | Clearing Request Aborted | Item |
RJCT | FRAD | Fraudulent Origin | Item |
RJCT | G005 | Delivered With Service Level | Item |
RJCT | G006 | Delivered Without Service Level | Item |
RJCT | MD01 | No Mandate | Item |
RJCT | MD02 | Missing Mandatory Information In Mandate | Item |
RJCT | MD20 | Mandate Expired | Item |
RJCT | MS02 | Not Specified Reason - Customer Generated | Item |
RJCT | MS03 | Not Specified Reason - Agent Generated | Item |
RJCT | NARR | Narrative | Item |
RJCT | NAUT | Unauthorized Mandate | Item |
RJCT | RC05 | Invalid BIC Identifier | Item |
RJCT | RR02 | Missing Debtor Name Or Address | Item |
RJCT | RR03 | Missing Creditor Name Or Address | Item |
RJCT | RR04 | Regulatory Reason | Item |
RJCT | SL01 | Specific Service Offered By Debtor Agent | Item |
RJCT | SL11 | Creditor Not On Whitelist Of Debtor | Item |
RJCT | SL13 | Maximum Number Of Direct Debit Transactions Exceeded | Item |
RJCT | SL14 | Maximum Direct Debit Transaction Amount Exceeded | Item |
RJCT | TD03 | Incorrect File Structure | Item |
RJCT | TM01 | Invalid Cut-Off Time | Item |
RJCT | NARR | Item |