Peso Net Web Service API V2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

PESO Net

Web Service API V2

API Specifications
Rev 4.1 (November 19, 2018)
PESO Net Web Service API
Page 2 of 24
API Specifications

Table of Contents

Authorization Mechanism 3
Heartbeat Endpoint 5
Index Endpoint 6
Outward Message Endpoint 7
Inward Batch Endpoint 12
Inward Batch Status Update Endpoint 15
Outward Batch Status Update Endpoint 18
Outward Message Search Endpoint 23
Bank List Endpoint 24
PESO Net Web Service API
Page 3 of 24
API Specifications

Authorization Mechanism and HTTP Header Information

All requests made via the PESO Net Web Service API follow a standard authentication
mechanism. Each request is authorized via an API Key and a Request Signature that is
calculated during each request.

Additionally, all requests must specify the Content Type of the request. Acceptable
requests follow the JSON Content Type.

Both the authorization parameters and the content type are to be included as part of the
HTTP headers of each request made to the PESO Net Web Service API.

Following are the minimum required headers for each PESO Net Web Service API
request:

Header Name Description


api_key API Key assigned to your bank
signature Calculated signature for the request (see below)
Content-Type application/json to denote that the request is in the JSON
format.

Signature Calculation

For all inquiry-oriented requests (i.e. all Endpoints except for the Outward Message and
Inward Batch Status Update Endpoint), the signature is calculated by getting the SHA 256
of both the API Key and API Secret.

For example, assuming the following API Key and Secret:

API Key 7559ba0a72414e49511851b24dfba79d


Secret 3ee0d693b921aa418138e309b957c223

The signature will be calculated by concatenating getting the SHA256 value of the
concatenated API Key and Secret, for example:

Concatenated API Key and Secret

7559ba0a72414e49511851b24dfba79d3ee0d693b921aa418138e309b957c223

Calculated SHA256

776530a6f1c010d2c4ae9c1883bf69ceb92de5e6c5bf2f29f43e4a30ef0b70e5

PESO Net Web Service API
Page 4 of 24
API Specifications

For all transactional requests, (i.e. Outward Message and Inward Batch Status Update
Endpoint), the signature is calculated by getting the SHA 256 of the following values
associated with the request:

• API Key
• Secret
• Transaction Amount (as stated in the Group Header)

For example, assuming the following values:

API Key 7559ba0a72414e49511851b24dfba79d


Secret 3ee0d693b921aa418138e309b957c223
Transaction 1000.00
Amount (as
specified in group Important Note: The value must be exactly as specified in the
header) group header. For example, if the amount specified is 1000.0,
then 1000.0 should be concatenated during signature
calculation.

On the other hand, if the amount specified is 1000, then it is 1000


that should be concated during signature calculation.

The signature will be calculated by concatenating getting the SHA256 value of the
concatenated API Key, Secret and Transaction Amount, for example:

Concatenated API Key, Secret and Transaction Amount

7559ba0a72414e49511851b24dfba79d3ee0d693b921aa418138e309b957c2231000.00

Calculated SHA256

627367cf737643b9eae0e466ff7ee4b538a08a19e6031ffa56db01fddc3f8cdc

PESO Net Web Service API
Page 5 of 24
API Specifications

Important Notices and Guidance Notes

Usage of Constants and Unused Values

Throughout this document, there are certain fields that are considered constants or are
otherwise unset, PCHC recommends that the values be set as specified in the document.

PESONet’s validation validates the correctness of the following constants as these are
material in the description of EFT transactions:

• Currency (must be PHP)


• Settlement Method (must be CLRG)

For all other constants, the values are not currently finalized and do not materially alter
the content of the instructions, and thus the defaults are used for all transactions. Setting
the said values differently from the constants defined in this document will have no effect.

This means that the validation process will not block the transactions, and the values for
these fields as received will revert to the constant values set by PCHC for these fields.

Passing Additional Keys

Due to the properties of JSON, there is no official schema validation being performed.
Therefore, providing additional keys in addition to those described in this document will
have no effect, and the keys and values will be ignored.

However, when the addition of the key changes the data type (e.g. from a String to a
JSON object) of an expected key, a validation issue may occur, and an error will be raised
as Invalid Message Structure.

Data Length

All data provided, when it exceeds the length for the specific field will be truncated.
Banks are responsible for ensuring that the data provided fall within the field limitations.

These field limitations are based on a legacy support for the conventional EPCS/PESONet
Inward File format. The maximum length of the fields are specified throughout this
document where applicable.

Acceptable Characters

For all String/Text fields, the following RegExp is used to match the characters:

/([a-zA-Z0-9\/\-\?:\(\)\.,'\+ ]*)/

Characters that do not match the above RegExp will be filtered and truncated.
PESO Net Web Service API
Page 6 of 24
API Specifications

Heartbeat Endpoint

Participating institutions may check the status of the PESO Net Web Service API by
sending a heartbeat request.

By receiving a successful response from the Heartbeat Endpoint, banks will know that the
Web Service API is currently functioning, and the following additional information:

• System Date and Time


• Current Settlement Cycle
o Cycle Date
o Cycle ID
o Cycle Start Time
o Cycle End Time

Endpoint Details

Endpoint GET /api/v2/heartbeat


Signature SHA256 of the concatenated API Key and Secret
HTTP Response HTTP 200
Code
Sample {
"heartbeat": {
Response "system_date": 1521009144000,
"cycle": {
"date": "2018-03-14",
"sequence": 1,
"start_time": 1520928001000,
"end_time": 1521014400000
}
}
}

Response Payload

The response payload will contain information about the current system date and the
ongoing clearing cycle. It is organized into the following JSON elements:

Element Name Description


Heartbeat Root Element
System Date Current System Date and Time
Cycle Cycle Information Root Element
Date Current business date
Sequence Current Cycle Sequence Number
Start Time Current Cycle Start Time
End Time Current Cycle End Time
PESO Net Web Service API
Page 7 of 24
API Specifications

Index Endpoint
Participating institutions may use the Index Endpoint to obtain a list of the following:

• Outward Messages sent during a specific clearing cycle


• Inward Batches received during a specific clearing cycle

Endpoint Details

Endpoint GET /api/v2/index/<year>/<month>/<date>/<cycle>


Signature SHA256 of the concatenated API Key and Secret
HTTP Response HTTP 200
Code
Sample {
"index": {
Response "datetime": 1521039633000,
"settlement_date": "2018-03-02",
"cycle": "1",
"cycle_status": "FINAL",
"outward_messages": [
1193,
1194,
1195
],
"inward_batches": [
26040,
26041,
26042
]
}
}

Response Payload

The response payload will contain the Sequence Numbers of both outward and inward
batches that were sent/received by a bank during the given clearing date and cycle. It is
organized into the following JSON elements:

Element Name Description


Index Root Element
Date/Time Current System Date and Time
Settlement Date Settlement Date of the Index Request
Cycle Cycle of the Index Request
Cycle Status OPEN if the cycle is still open
CLOSED if the cycle has closed
FINAL if the cycle has closed and settlement has been
completed.
Outward Messages Array of Sequence Numbers of Outward Batches sent
during the given cycle
Inward Batches Array of Sequence Numbers of Inward Batches sent
during the given cycle
PESO Net Web Service API
Page 8 of 24
API Specifications

Outward Message Endpoint


Invoking the Outward Message Endpoint allows a bank to send an ISO 20022 pacs.008
message in JSON syntax that contains transactions for processing via PESO Net.

Endpoint POST /api/v2/outward_message/create


Signature SHA256 of a concatenated string containing the following:
• API Key
• Secret
• Amount (taken as indicated in the TtlIntrBkSttlmAmt
element)
HTTP Response HTTP 200
Code
Request An ISO 20022 pacs.008 message in JSON Syntax (see below)
Payload
Up to 200 transactions can be sent per batch
Sample {
"outward_message": {
Response "message_seq": 1301,
"transaction_count": 1,
"currency": "PHP",
"amount": "1000.0",
"received_date": 1521052903000
}
}

Sample ISO 20022 pacs.008 message

Following is an example of an ISO 20022 pacs.008 message in JSON syntax:

{
"FIToFICstmrCdtTrf": {
"GrpHdr": {
"MsgId": null,
"CreDtTm": null,
"NbOfTxs": 1,
"TtlIntrBkSttlmAmt": {
"Ccy": "PHP",
"value": "1000"
},
"IntrBkSttlmDt": null,
"SttlmInf": {
"SttlmMtd": "CLRG"
},
"InstgAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
},
"InstdAgt": {
"FinInstnId": {
"BICFI": "PCHCPHM1XXX"
}
}
},
"CdtTrfTxInf": [
{
PESO Net Web Service API
Page 9 of 24
API Specifications

"PmtId": {
"EndToEndId": 259790,
"TxId": "1519948326"
},
"PmtTpInf": {
"SvcLvl": {
"Prtry": "NURG"
},
"CtgyPurp": {
"Cd": "CASH"
}
},
"IntrBkSttlmAmt": {
"Ccy": "PHP",
"value": "1000"
},
"ChrgBr": "SLEV",
"Dbtr": {
"Nm": "Juan Dela Cruz",
"PstlAdr": ["PH"]
},
"DbtrAcct": {
"Id": {
"Othr": {
"Id": "0061521183200"
}
}
},
"DbtrAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
},
"Cdtr": {
"Nm": "Juana Sanchez",
"PstlAdr": "PH"
},
"CdtrAcct": {
"Id": {
"Othr": {
"Id": "0000012570193"
}
}
},
"CdtrAgt": {
"FinInstnId": {
"BICFI": "SETCPHMMXXX"
}
},
"RmtInf": {
"Ustrd": {
"rfi_reference_number": null,
"ofi_customer_reference_number": null,
"rfi_customer_reference_number": null
}
}
}
]
}
}

PESO Net Web Service API
Page 10 of 24
API Specifications

Field Guide for ISO 20022 pacs.008 message

An ISO 20022 pacs.008 message is composed of 2 components, the Group Header and
Credit Transfer Transactions.

Up to 200 transactions may be associated with a single ISO 20022 pacs.008 message
sent via the PESO Net Web Service API.

Group Header

The Group Header contains information that is specific to a particular batch. For example,
the total amount of the transactions, as well the number of transactions in a particular
batch is declared and validated against the transactions contained in the batch.

Element Name Description


MsgId Batch ID (should be kept null and will be assigned by
PCHC)
CreDtTm Settlement Date and Time (should be kept null and
will be assigned by PCHC)
NbOfTxs Total Number of Transactions in the Batch
TtlIntrBkSttlmAmt
Ccy Currency (should be PHP)
value Total Amount of the Transactions Contained in the
maximum of 200 transactions Batch
IntrBkSttlmDt Settlement Date (should be kept null and will be
assigned by PCHC)
SttlmInf
SttlmMtd Settlement Method (value is not used should be kept as
CLRG)
InstgAgt
FinInstnId
BICFI BIC of the Sending Bank
InstdAgt
FinInstnId
BICFI BIC of PCHC PCHCPHM1XXX
PmtTpInf
LclInstrm
Prtry Local External Code a code assigned by an OFI as its
maximum of 16
characters
reference for a specific Outward Message to be able to
search for the Outward Message via the Outward
Message Search Endpoint
PESO Net Web Service API
Page 11 of 24
API Specifications

Credit Transfer Transactions

Each ISO 20022 pacs.008 message may contain up to 200 transactions. Each transaction
is marshalled as an element of the CdtTrfTxInf element as an array.

Each element of the array follows the following field list:

Element Name Description


PmtId
EndToEndId Payment ID/Sequence Number
(should be kept null and will be
assigned by PCHC)
TxId OFI Reference Number, a unique
maximum of 16 characters identifier provided by the OFI for its
identification of the transaction.
PmtTpInf Total Number of Transactions in the
Batch
SvcLvl
Prtry Priority Code (value is not used and
should be kept as NURG)
CtgyPurp Total Amount of the Transactions
Contained in the Batch
Cd Category Purpose Code (value is
not used and should be kept as
CASH)
IntrBnkSttlmAmt
Ccy Currency (currency of the
transaction, only PHP is accepted in
PESO Net)
value Amount amount of the transaction
ChrgBr Charge Bearer (value is not used
and should be kept as SLEV)
Dbtr
Nm Debtor/Remitter Name
maximum of 50 characters
PstlAdr Debtor/Remitter Address An array
maximum of 50 characters per line, but the
EPCS/PESONet Inward file will only show the
(maximum of 4 strings) of the
first 50 characters remitter’s address
DbtrAcct
Id
Othr
Id Debtor/Remitter Account Number
maximum of 16 characters
DbtrAgt
FinInstnId
BICFI BIC of Originating Institution
Cdtr
Nm Creditor/Beneficiary Name
PESO Net Web Service API
Page 12 of 24
API Specifications

maximum of 50 characters
PstlAdr Creditor/Beneficiary Address An
maximum of 50 characters per line, but the EPCS/PESONet
Inward file will only show the first 50 characters
array (maximum of 4 strings) of the
beneficiary’s address
CdtrAcct
Id
Othr
Id Creditor/Beneficiary Account
maximum of 16 characters Number
CdtrAgt
FinInstnId
BICFI Creditor/Beneficiary Bank BIC
RmtInf
Ustrd
rfi_reference_number RFI Reference Number
maximum of 16 characters
ofi_customer_reference_number OFI Customer Reference Number
maximum of 16 characters
rfi_customer_reference_number RFI Customer Reference Number
maximum of 16 characters
Instructions Instructions
maximum of 139 characters

Required Fields

All fields are required, with the following exceptions:

Element Name Notes


Cdtr/PstlAdr The creditor’s postal address is not a
required field, however, the value
of this element should be an empty
array
RmtInf/Ustrd/rfi_reference_number Should be set to null if intended to
be empty
RmtInf/Ustrd/ofi_customer_reference_number Should be set to null if intended to
be empty
RmtInf/Ustrd/rfi_customer_reference_number Should be set to null if intended to
be empty

Important Note

The structure of the above message should be observed STRICTLY. Thus, while the JSON
standard allows for the omission of certain elements with null values; the PESO Net Web
Service API will reject messages that do so.

Therefore, the full structure as stipulated above should be observed, with null values
provided to optional elements as appropriate.
PESO Net Web Service API
Page 13 of 24
API Specifications

Inward Batch Endpoint

Invoking the Inward Batch Endpoint allows a bank to retrieve a set of transactions
corresponding to a batch by using the Inward Batch Sequence Number that was retrieved
using the Index Endpoint.

Upon invocation, an ISO 20022 pacs.008 (FIToFICustomerCreditTransfer) message will


be returned in JSON syntax.

Endpoint Details

Endpoint GET /api/v2/inward_batch/<inward_batch_seq>


Signature SHA256 of the concatenated API Key and Secret
HTTP Response HTTP 200
Code
Sample {
"FIToFICstmrCdtTrf": {
Response "GrpHdr": {
"MsgId": 25597,
"CreDtTm": 1516694400000,
"NbOfTxs": 2,
"TtlIntrBkSttlmAmt": {
"Ccy": "PHP",
"value": "710132.11"
},
"IntrBkSttlmDt": "2018-01-23",
"SttlmInf": {
"SttlmMtd": "CLRG"
},
"InstgAgt": {
"FinInstnId": {
"BICFI": "SCBLPHMMXXX"
}
},
"InstdAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
}
},
"CdtTrfTxInf": [
{
"PmtId": {
"EndToEndId": 248008,
"TxId": "IT10001801150358"
},
"PmtTpInf": {
"SvcLvl": {
"Prtry": "NURG"
},
"CtgyPurp": {
"Cd": "CASH"
}
},
"IntrBkSttlmAmt": {
"Ccy": "PHP",
"value": "500.0"
},
"ChrgBr": "SLEV",
"Dbtr": {
"Nm": "/AE200440000010203342201 NICHOLAS III GONZALES BIE",
PESO Net Web Service API
Page 14 of 24
API Specifications

"PstlAdr": [
"PO 15258,TAWAM HOSPITAL,NURSING TAWAM HOSPITAL BLD"
]
},
"DbtrAcct": {
"Id": {
"Othr": {
"Id": "0000000000000001"
}
}
},
"DbtrAgt": {
"FinInstnId": {
"BICFI": "SCBLPHMMXXX"
}
},
"Cdtr": {
"Nm": "NICHOLAS G BIE III PUROK 3 BOLONG",
"PstlAdr": [
"NICHOLAS G BIE III PUROK 3 BOLONG"
]
},
"CdtrAcct": {
"Id": {
"Othr": {
"Id": "0000002111967838"
}
}
},
"CdtrAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
},
"RmtInf": {
"Ustrd": {
"rfi_reference_number": "",
"ofi_customer_reference_number": "IB99991801150087",
"rfi_customer_reference_number": ""
}
}
},
{
"PmtId": {
"EndToEndId": 248023,
"TxId": "DC99991801150220"
},
"PmtTpInf": {
"SvcLvl": {
"Prtry": "NURG"
},
"CtgyPurp": {
"Cd": "CASH"
}
},
"IntrBkSttlmAmt": {
"Ccy": "PHP",
"value": "709632.11"
},
"ChrgBr": "SLEV",
"Dbtr": {
"Nm": "INTERNATIONAL COMMIT",
"PstlAdr": [
"ICRC FAD_REV/MNL 32ND FLOORPETRON MEGA PLAZA 358 S"
]
},
"DbtrAcct": {
"Id": {
"Othr": {
PESO Net Web Service API
Page 15 of 24
API Specifications

"Id": "0000132548370009"
}
}
},
"DbtrAgt": {
"FinInstnId": {
"BICFI": "SCBLPHMMXXX"
}
},
"Cdtr": {
"Nm": "PHILIPPINE RED CROSS",
"PstlAdr": [
"BONIFACIO DRIVE PORT AREA, MANILA /PHILIPPINES"
]
},
"CdtrAcct": {
"Id": {
"Othr": {
"Id": "0000004530005383"
}
}
},
"CdtrAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
},
"RmtInf": {
"Ustrd": {
"rfi_reference_number": "",
"ofi_customer_reference_number": "",
"rfi_customer_reference_number": ""
}
}
}
]
}
}

Response Payload

The response payload will contain an ISO 20022 pacs.008


(FIToFICustomerCreditTransfer) message in JSON syntax that contains the transactions for
the requested batch.
PESO Net Web Service API
Page 16 of 24
API Specifications

Inward Batch Status Update Endpoint


Receving Financial Institutions (RFIs) may update the status of the transactions it has
received by sending an ISO 20022 pacs.002 (PaymentStatusReport) containing the status
of individual transactions it has processed.

The status of an individual transaction may only be updated ONCE. Thus, if an


additional update is made to a transaction, the update will be ignored, and PESO Net will
only update the transactions that do not currently have statuses.

A status update message must contain transactions that belong to a SINGLE batch. This is
requirement is reflected in the Original Group Information and Status element, where the
original Inward Batch ID is defined.

Endpoint POST /api/v2/inward_batch/update


Signature SHA256 of a concatenated string containing the following:
• API Key
• Secret
• Original Message ID (found in the OrgnlMsgId element)
HTTP Response HTTP 200
Code
Sample {
"inward_batch_status_update ": {
Response "message_seq": 3939,
"transaction_count": 1,
"received_date": 1521052903000
}
}

Element Name Description


Inward Batch Status Update Root Element
Message Seq Message Sequence Number (currently System Date and
Time)
Transaction Count Number of Transactions Updated
Received Date Timestamp of the Date/Time that the Status Update was
received

Sample ISO 20022 pacs.002 message

{
"GrpHdr": {
"MsgId": null,
"CreDtTm": 1522676419000,
"InstgAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
},
"InstdAgt": {
"FinInstnId": {
"BICFI": "PCHCPHM1XXX"
}
}
PESO Net Web Service API
Page 17 of 24
API Specifications

},
"OrgnlGrpInfAndSts": {
"OrgnlMsgId": 1121,
"OrgnlMsgNmId": "pacs.008"
},
"TxInfAndSts": [
{
"OrgnlGrpInf": {
"OrgnlMsgId": 1121,
"OrgnlMsgNmId": "pacs.008"
},
"OrgnlEndToEndId": 193929,
"TxSts": "DS07",
"StsRsnInf": {
"AddtlInf": "Successfully Credited to Account"
},
"AccptncDtTm": 1522676419000,
"OrgnlTxRef": {
"Amt": {
"EqvtAmt": {
"Amt": 1000,
"CcyOfTrf": "PHP"
}
},
"Cdtr": {
"Nm": "JUAN DELA CRUZ"
},
"CdtrAcct": {
"Id": {
"Othr": {
"Id": "0000012570193"
}
}
},
"CdtrAgt": {
"FinInstnId": {
"BICFI": "SETCPHMMXXX"
}
}
}
}
]
}

Group Header

The Group Header contains information pertinent to the Inward Batch:

Element Name Description


MsgId Message ID – message ID set by PCHC automatically,
should be kept null.
CreDtTm Current Date and Time – refers to the time the message
was created/sent to PCHC
InstgAgt
FinInstnId
BICFI BIC of the bank performing the status update
InstdAgt
FinInstnId
BICFI BIC of PCHC PCHCPHM1XXX
PESO Net Web Service API
Page 18 of 24
API Specifications

Original Group Information and Status

As a single invocation of the Inward Batch Status Update API requires that the transactions
all belong to the same batch, the inward batch ID/sequence number where the
transactions were received need to be indicated as part of the Original Group Information
and Status element.

Element Name Description


OrgnlMsgId Original Message ID – the original inward batch ID of
the transactions being updated
OrgnlMsgNmId Original Message Name (always pacs.008)

Transaction Information and Status

Statuses of individual transactions are placed in an array under the TxInfAndSts


element.

Element Name Description


OrgnlGrpInf
OrgnlMsgId Original Message ID (Batch ID)
OrgnlMsgNmId Original Message Name (always pacs.008)
OrgnlEndToEndId Original ID/Sequence Number for the transaction
TxSts ISO 20022 Status Code of the Transaction’s Status
StsRsnInf
AddtlInf Remarks/Narrative
AccptncDtTm Acceptance Date/Time (time when the transaction
status was updated)
OrgnlTxRef
Amt
EqvtAmt
Amt Credited Amount – amount that was ultimately
credited to the beneficiary
CcyOfTrf Credited Currency – currency that was credited to
the beneficiary
Cdtr
Nm Creditor/Beneficiary Name – name or account title
of the account that was credited
CdtrAcct
Id
Othr
Id Creditor/Beneficiary Account Number – final
account number that was credited
CdtrAgt
FinInstnId
BIC BIC of the Creditor/Beneficiary Bank
PESO Net Web Service API
Page 19 of 24
API Specifications

Outward Message Status Update Endpoint

The Outward Message Status Update Endpoint allows a bank to determine the status of
the transactions that it has sent.

It will return a ISO 20022 pacs.002 (Payment Status Report) message in JSON syntax.

Important Note: The message that will be returned will have some additional fields in
comparison to the input provided to the Inward Batch Status Update Endpoint.

The response is composed of a Group Header, and Transaction Information and Status
for each transaction covered by the Outward Message.

Endpoint GET /api/v2/outward_message/<outward_msg_seq>


Signature SHA256 of the concatenated API Key and Secret
HTTP Response HTTP 200
Code
Sample {
"GrpHdr": {
Response "MsgId": 1121,
"CreDtTm": 1522676419000,
"InstgAgt": {
"FinInstnId": {
"BICFI": "PCHCPHM1XXX"
}
},
"InstdAgt": {
"FinInstnId": {
"BICFI": "BNORPHMMXXX"
}
}
"OrgnlGrpInfAndSts": {
"OrgnlMsgId": "1121",
"OrgnlMsgNmId": ""pacs.008,
"GrpSts": "ACCC"
}
},
"TxInfAndSts": [
{
"OrgnlGrpInf": {
"OrgnlMsgId": 1121,
"OrgnlMsgNmId": "pacs.008"
},
"OrgnlEndToEndId": 193929,
"OrgnlTxId": “EFT10000022”,
"TxSts": "DS07",
"StsRsnInf": {
"AddtlInf": "Successfully Credited to Account"
},
"AccptncDtTm": 1522676419000,
"OrgnlTxRef": {
"Amt": {
"EqvtAmt": {
"Amt": 1000,
"CcyOfTrf": "PHP"
}
},
"Cdtr": {
"Nm": "JUAN DELA CRUZ"
},
"CdtrAcct": {
PESO Net Web Service API
Page 20 of 24
API Specifications

"Id": {
"Othr": {
"Id": "0000012570193"
}
}
},
"CdtrAgt": {
"FinInstnId": {
"BICFI": "SETCPHMMXXX"
}
}
}
}
]
}

Group Header

The Group Header contains information pertinent to the Outward Message:

Element Name Description


MsgId Outward Message ID – refers to sequence number of
the original Outward Message
CreDtTm Settlement Date and Time – refers to the cut-off time
for settlement of this message, null if the message has
not yet been processed by PESO Net.
OrgnlGrpInfAndSts
OrgnlMsgId Original Message ID – refers to the sequence number
of the original Outward Message
OrgnlMsgNmId Original Message Name ID – refers to the message
type of the original Outward Message
GrpSts Group Status – Status in Processing the Batch (see
Group Status Codes below)
InstgAgt
FinInstnId
BICFI BIC of PCHC PCHCPHM1XXX
InstdAgt
FinInstnId
BICFI BIC of the bank that sent the original message

Group Status Codes

Group Status Codes refers to the Settlement Status by PESO Net. Thus, an accept status
in the Group Header would mean that the transactions have been processed, settled
and available to the RFI.

However, an accept (ACCC) status does not mean that the funds have been credited to
the beneficiaries, these statuses are reflected in individual transaction statuses.
PESO Net Web Service API
Page 21 of 24
API Specifications

Settlement Status Code Description


ACCC Accepted and Settlement Completed – status if the
transactions have been accepted, with settlement
having been completed on the transactions
PART Partially Accepted – some items in the batch have
been accepted and processed
PNDG Pending – the transactions currently being processed
RCVD Received – the batch has been received, but has not
begun processing
RJCT Reject – all of the transactions in the batch have been
rejected.
PESO Net Web Service API
Page 22 of 24
API Specifications

Transaction Information and Status

Statuses of individual transactions are placed in an array under the TxInfAndSts


element.

Element Name Description


OrgnlGrpInf
OrgnlMsgId Original Message ID (Batch ID)
OrgnlMsgNmId Original Message Name (always pacs.008)
OrgnlEndToEndId Original ID/Sequence Number for the transaction
OrgnlTxId Original OFI Reference Number for the transaction
TxSts ISO 20022 Status Code of the Transaction’s Status
StsRsnInf
AddtlInf Remarks/Narrative
AccptncDtTm Acceptance Date/Time (time when the transaction
status was updated)
OrgnlTxRef
Amt
EqvtAmt
Amt Credited Amount – amount that was ultimately
credited to the beneficiary
CcyOfTrf Credited Currency – currency that was credited to
the beneficiary
Cdtr
Nm Creditor/Beneficiary Name – name or account title
of the account that was credited
CdtrAcct
Id
Othr
Id Creditor/Beneficiary Account Number – final
account number that was credited
CdtrAgt
FinInstnId
BIC BIC of the Creditor/Beneficiary Bank
PESO Net Web Service API
Page 23 of 24
API Specifications

Outward Message Search Endpoint

Originating Financial Institutions that send an optional, Local External Code may also
perform queries to search for a specific Outward Message without the original Outward
Message Sequence Number.

This may be useful when an OFI is for any reason unable to use the original Outward
Message Sequence Number, or for verifying if a failed (or timed out) invocation was
successfully processed or not without having to reconcile and iterate messages through
the Index Endpoint.

Endpoint POST /api/v2/outward_message/search


Signature SHA256 of a concatenated string containing the following:
• API Key
• Secret
HTTP Response HTTP 200
Code
Request See Below
Payload
Sample pacs.002 Message in JSON Format (same as the response of the
Response Outward Message Status Update Endpoint)

Request Payload
{"local_external_code": "TEST"}

Element Name Description


local_external_code Local External Code used in the original Outward
Message request via the Outward Message Endpoint

PESO Net Web Service API
Page 24 of 24
API Specifications

Bank List Endpoint

Banks may obtain a list of member banks at any time by invoking the Bank List endpoint.
This endpoint returns a list of banks currently registered in PESONet, along with other
pertinent information.

In addition, PCHC-specific information is also available for support with legacy


environments (i.e. bank code, Head Office BRSTN).

Endpoint GET /api/v2/banks


Signature SHA256 of a concatenated string containing the following:
• API Key
• Secret
HTTP Response HTTP 200
Code
Sample {
"PESONetMemberBanks": [
Response {
"BICFI": "BOPIPHMMXXX",
"bank_name": "BANK OF THE PHILIPPINE ISLANDS",
"pchc": {
"bank_code": "004",
"head_office_brstn": "010040018"
},
"active": true
}
]
}

Element Name Description


PESONetMemberBanks
BICFI BIC
bank_name Bank Name
pchc
bank_code PCHC Bank Code
head_office_brstn Registered BRSTN of the Bank’s Head Office
active Current Banks’ status (true if active, false if
inactive)

You might also like