{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"5198afcb-4592-40d4-a0ac-413bfc907e16","name":"RBG - Instapay ISO20022 Service Endpoints","description":"RBG's Service Endpoints use to transfer funds to different banks that uses ISO20022 Format, generate QR's, and decode QR Code.\n\n**ENVIRONMENTS**\n\n|  | **API** **URL** |\n| --- | --- |\n| **UAT** | [https://public-uat-partners.rbsoftech.online:7443/api/uat/v1](https://public-uat-partners.rbsoftech.online:7443/api/uat/v1) |\n| **Production** | {{To be sent via email}} |\n\n**OUTWARD TRANSACTION**\n\nTo perform a cash-out transaction, the partner/client can use the Postman collection provided by RBG Bank.\n\nRBG's outward transaction have 2 sequence;  \n**Sequence 1** : A transaction request created by RBG's partner using the available service endpoints below\n\n- P2P\n    \n- QR P2P\n    \n- QR P2M\n    \n\n**Reminder:** In sequence 1 the status of all transaction is labeled as **\"Accepted\"** in RBG meaning that the transaction is approved and accepted by Bancnet but not yet by the receiving bank. This will change once response from receiving bank is received by RBG.\n\n**Sequence 2 :** In this sequence RBG's partner must provide or implement a Callback API URL to notify them about the status of outward transaction, where RBG will send the response of the receiving bank to partner's callback regarding the transaction request of the partner. there will be 2 endpoint that the partner must have\n\n- **Partner Callback GetToken** **(Endpoint: /ips-payments/service-responses/GetToken):** This endpoint will be call first for authentication and partner must response with a token generated using HS256 Algorithm.  \n    **See Partner's Callback Endpoint Folder as your reference.**\n    \n- **Partner Callback Service Response (Endpoint: /ips-payments/service-responses) :** The RBGI request payload will be containing the data and the partner must verify if the instruction Id is valid or not.  \n    **See Partner's Callback Endpoint Folder as your reference.**\n    \n\n**INWARD TRANSACTION**\n\nTo receive funds, partners must implement a receiving API Callback. Similar to service responses there will be a two stage process.\n\n**Note:** To initiate a Cash Out transaction, you will need to use the mobile app or online banking platform of another Instapay participating bank. Alternatively, you can request a simulated transaction from us, and we will coordinate with BancNet or another participating bank on your behalf.\n\n**Sequence 1:** RBG will receive a transaction details request from BancNet, which will include information about a specific transaction. Upon receiving the request, RBG will validate the transaction details by verifying the information provided. Once the validation process is completed, RBG will process the transaction request accordingly.\n\nAfter processing, RBG will send a response back to BancNet indicating whether the transaction request was successful or not. The response will include relevant details, such as confirmation of success, or if unsuccessful.\n\n**Sequence 2:** The RBG request payload will be containing the data of the transaction request of the Sender Bank(OFI) that will pass onto partner's API Callback service request endpoint where they will verify the following transactions details if it is valid or not on their end.\n\n- **Partner Callback GetToken (Endpoint: /ips-payments/service-responses/GetToken) :** This endpoint will be call first for authentication and partner must response with a token generated using HS256 Algorithm.  \n    **See Partner's Callback Endpoint Folder as your reference.**\n    \n\n- **Partner Callback Service Request(Endpoint: /ips-payments/service-requests) :** This endpoint will be called once authentication is success and pass the following transaction details received from the Sender bank.  \n    **See Partner's Callback Endpoint Folder as your reference.**\n    \n\n**TYPES OF TRANSACTION STATUS**\n\n**There are 3 types of transaction status that the partner will encounter**\n\n- **Accepted** : The status of the transaction initiated by the partner is approved and accepted by Bancnet. This status does not guaranteed that the amount was credited by the receiving bank.\n    \n- **ACTC :** The status of the transaction initiated by the partner that has been approved and accepted by Bancnet ensured that the transaction is received, confirmed and accepted by the receiving bank.\n    \n- **RJCT :** The status of the transaction initiated by the partner that has been approved and accepted by Bancnet ensured that the transaction is received, confirmed and rejected by the receiving bank. In this status there will be code description on why the transaction has been rejected see the list of code below;\n    \n\n| **Reason Codes** | **Definition** | **Code usable by** |\n| --- | --- | --- |\n| AB01 | AbortedClearingTimeout  <br>Legacy RFI timeout | IPS |\n| AB05 | TimeoutCreditorAgent  <br>Transaction stopped due to timeout at the Creditor  <br>Agent. | IPS |\n| AB06 | TimeoutInstructedAgent  <br>Transaction stopped due to timeout at the Instructed  <br>Agent | IPS |\n| AB08 | OfflineCreditorAgent  <br>CA/SA is down | RFI |\n| AB09 | ErrorCreditorAgent  <br>No response from CA/SA | RFI |\n| AC01 | IncorrectAccountNumber  <br>No record on file  <br>Used if the account type is valid but the destination  <br>account number does not exist in the RFI’s system  <br>Used by IPS when the format of the sending account  <br>number specified is not correct (due to hybrid  <br>scenario) | IPS AND RFI |\n| AC03 | InvalidCreditorAccountNumber  <br>No activity allowed against the account;  <br>Invalid transaction because the target account does not  <br>allow peso payment or transfer credits, i.e. Destination  <br>account is a time deposit, dollar account, treasury  <br>account, trust fund account, investment account and  <br>the like.  <br>Used by IPS when the format of the receiving account | IPS AND RFI |\n| AC04 | ClosedAccountNumber  <br>Account status is closed  <br>Used when the destination account has a status that  <br>prevents it from accepting credits to the account such  <br>as Post No Credit status. | RFI |\n| AC06 | BlockedAccount | RFI |\n| AC07 | ClosedCreditorAccountNumber | RFI |\n| AC12 | InvalidAccountType  <br>Account type missing or invalid. Generic usage if  <br>cannot specify between group and payment  <br>information levels. | IPS |\n| AC14 | InvalidCreditorAccountType  <br>Creditor account type missing or invalid.  <br>Proxy notify flag for QR transactions | IPS |\n| AG01 | TransactionForbidden  <br>RFI not allowed as recipient for Instapay  <br>RFI is signed off in Instapay | IPS |\n| AG03 | TransactionNotSupported | IPS |\n| AM02 | NotAllowedAmount  <br>Exceeds Instapay amount limit (global for all payment  <br>type) | IPS |\n| AM04 | InsufficientFunds  <br>Insufficient SSA Balance | IPS |\n| AM06 | TooLowAmount | RFI |\n| AM07 | BlockedAmount | RFI |\n| AM09 | WrongAmount. Amount is not the amount agreed or  <br>expected. | IPS AND RFI |\n| AM11 | InvalidTransactionCurrency | RFI |\n| AM12 | InvalidAmount. Amount is invalid or missing. If the  <br>amount in header is different from body. | IPS |\n| AM13 | AmountExceedsClearingSystemLimitExceeds Instapay  <br>amount limit (Per payment type) | IPS |\n| AM14 | AmountExceedsAgreedLimit | RFI |\n| AM21 | LimitExceeded | RFI |\n| BE05 | UnrecognisedInitiatingParty  <br>Invalid Issuer  <br>Sending BIN not yet defined | RFI |\n| BE15 | InvalidIdentificationCode  <br>Invalid Subscriber Account Number. Applicable to P2B  <br>transactions only | RFI |\n| BE16 | InvalidDebtorIdentificationCode. Debtor or Ultimate  <br>Debtor identification code missing or invalid. | IPS |\n| BE17 | InvalidCreditorIdentificationCode  <br>Invalid Biller ID. Creditor or Ultimate Creditor  <br>identification code missing or invalid.  <br>Applicable to P2B transactions only | IPS AND RFI |\n| DS04 | OrderRejected  <br>Order cancelled by RFI due to business decision / rule | RFI |\n| DS0D | SignerCertificateNotValid  <br>The signer certificate is not valid (revoked or not  <br>active). | IPS |\n| DS0H | NotAllowedAccount. Signer is not allowed to sign for  <br>this account. | IPS |\n| DS24 | TimeOut. Cancellation requested because the original  <br>payment order expired due to time-out.  <br>No response from ISO20022 RFI | IPS |\n| DT04 | FutureDateNotSupported | IPS |\n| DT05 | InvalidCutOffDate | RFI |\n| DT06 | ExecutionDateChanged | RFI |\n| DU03 | DuplicateTransaction | RFI |\n| DUPL | DuplicatePayment  <br>Duplicate transaction (same Sender's identification\u0002BIC/Bankcode, transaction date and invoice number) | IPS |\n| FF01 | InvalidFileFormat  <br>Applicable to IST receivers when there's  <br>synchronization error | IPS |\n| FF02 | SyntaxError | RFI |\n| FF05 | InvalidLocalInstrumentCode  <br>Not supported transaction. Used when the recipient  <br>account type and number are valid but are restricted  <br>by the RFI due to product decisions, or is not allowed  <br>to receive credit due to RFI system limitations (no  <br>access to host system, etc.) | RFI |\n| FF10 | BankSystemProcessingError | RFI |\n| NARR | Narrative  <br>Non standard code from Legacy participant | IPS AND RFI |\n| RC01 | BankIdentifierIncorrect.  <br>Bank Identifier code specified in the message has an  <br>incorrect format (formerly  <br>IncorrectFormatForRoutingCode). | IPS |\n| RC02 | InvalidBankIdentifier | IPS |\n| RC03 | InvalidDebtorBankIdentifier.  <br>Debtor bank identifier is invalid or missing. | IPS |\n| RC04 | InvalidCreditorBankIdentifier  <br>Invalid Receiving bank code.  <br>Creditor bank identifier is invalid or missing. | IPS AND RFI |\n| RR09 | InvalidStructuredCreditorReference  <br>Invalid Customer no.  <br>Structured creditor reference invalid or missing. | IPS |\n| TA01 | TransmissonAborted.  <br>Applicable to IST receivers when MAC validation fails  <br>and rejected by IPS | IPS |\n| TD03 | IncorrectFileStructure | IPS |\n| TM01 | CutOffTime. Unable to process due to cutoff processing  <br>of RFI | RFI |\n| 9909 | RTP Switch is down  <br>IPS Switch system malfunction. | IPS |\n| 9910 | RFI/Receiver is signed off from IPS  <br>RFI has signed off from IPS. Sign-off restricts the  <br>participant from sending or receiving messages  <br>through IPS System. | IPS |\n| 9912 | Recipient (RTP) connection is not available | IPS |\n| 9913 | Recipient (IST) connection is not available | IPS |\n| 9934 | OFI/Sender is signed off from IPS  <br>ign-off restrics the participant from sending or  <br>receiving messages through IPS System. | IPS |\n| 9946 | OFI/Sender fully suspended  <br>Suspension restricts the participant from sending or  <br>receiving messages through IPS system. | IPS |\n| 9947 | RFI/Receiver fully suspended. Suspension restricts the  <br>participant from sending or receiving messages  <br>through IPS system. | IPS |\n| 9948 | Instapay IPS Service suspended | IPS |\n| 9955 | OFI/Sender not authorised to send business message | IPS |\n\n**Note:** The following code description above can be use for the response of the partner's API **Partner Callback Service Request** that will indicate the rejection of the partner in the transaction request of the sender bank.\n\n**TRANSACTION REFERENCE**  \nNOTE:As a rule, the OFI generates the InstaPay reference number, and the RFI must display the same  \nreference number. Please refer to the below mapping of the reference number in the message.\n\n| **Ref No.** | **Legacy IST** | **Legacy API** | **ISO20022** |\n| --- | --- | --- | --- |\n| OFI | N/A (All OFIs are either  <br>sending via API or ISO20022) | Invno e.g.  <br>Invno:468919 | Last 6 digits of Instruction ID e.g.  <br>20220612SHPHPHM2XXXB000000195**468919** |\n| RFI | DE43, position 20-25 e.g.  <br>INSTAPAYP2M/7017/468919 | Param 3 after/  <br>e.g.  <br>Param3:/468919 | Last 6 digits of Instruction ID e.g.  <br>20220612SHPHPHM2XXXB000000195**468919** |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"15252653","team":6210280,"collectionId":"5198afcb-4592-40d4-a0ac-413bfc907e16","publishedId":"2sAYBa99dZ","public":true,"publicUrl":"https://documenter-api.postman.tech/view/15252653/2sAYBa99dZ","privateUrl":"https://go.postman.co/documentation/15252653-5198afcb-4592-40d4-a0ac-413bfc907e16","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":"RBG Instapay ISO20022 Documentation"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.0","publishDate":"2024-12-04T01:26:58.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"RBG Instapay ISO20022 Documentation","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/2556a0456e48af5b74292dac19b0f6f10bc22fff9b82f28cdd42ec3a087b5fb7","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sAYBa99dZ"}