Welcome to the Netbank Virtual API Technical Documentation.
This documentation/reference includes all the details regarding the API endpoints and webhooks that will allow you to integrate Netbank’s financial services into your own applications, systems, and platforms.
We strongly suggest that you read through the General Guidelines section to familiarize yourself with the overall structure and behavior of the Netbank Virtual APIs.
The API endpoints are grouped according to the product and are ordered based on the usual call sequence for easier reference. Each product, endpoint, and parameter will have a description to define the purpose of each element.
Disclaimer: We will continually update and enhance this page and its contents whenever necessary.
To know more about how to get started and the end-to-end onboarding process, you may refer to https://virtual.netbank.ph/get-started
For any questions/inquiries, you may refer to our FAQs (https://virtual.netbank.ph/faq) or reach out to the Netbank Virtual Team via the Contact Us Form found in various pages of https://virtual.netbank.ph/ and select “Request for integration support for Sandbox and UAT development” in the the “How can we help you?” dropdown.
There are 3 environments where you could use our APIs for specific purposes.
SANDBOX (https://api-sandbox.netbank.ph)
Description: This environment is where you can “try” or test the request and response of our APIs to have an idea on the format and behaviour that your system needs to integrate with.
Purpose of Use: To simulate and test the request and response payload of the APIs so you could finalize how your system interacts with our APIs.
Connection to our Core: These APIs are connected to a limited are of our Core Banking System but it mimics how our APIs would accept requests and return a response.
Access Credentials: You can quickly and simply generate Sandbox Credentials using the Credentials Management section of your Partner Dashboard.
Sign-In and access the Netbank Virtual Partner Dashboard
Navigate to the Credentials Management section
Click “Generate Client ID & Secret”
Select “Sandbox Environment”
Take note of your Client ID and Client Secret
Requirements to get access:
Netbank Virtual Account (Sign Up to Netbank Virtual)
Sandbox Access Credentials, (Generated via the Credentials Management section of the Partner Dashboard)
UAT (https://api-uat.netbank.ph)
Description: This environment is where you can perform a deeper level of testing and review to ensure that your integration with us is ready for Production-use.
Purpose of Use: To perform various quality assurance testing (e.g. unit, stress, performance, acceptance testing) to ensure that the integration can handle all types of Production-use scenarios.
Connection to our Core: These APIs are connected to the test environment of our Core Banking System that reflects the same level of capacity and behaviour as the Production environment.
Access Credentials: You can simply generate UAT Credentials using the Credentials Management section of your Partner Dashboard but we suggest using this environment solely for quality assurance testing-- which is done after you’ve finalized the integration setup to our APIs.
Sign-In and access the Netbank Virtual Partner Dashboard
Navigate to the Credentials Management section
Click “Generate Client ID & Secret”
Select “UAT Environment”
Fill out the Request for UAT Credentials form
Take note of your Client ID and Client Secret
Requirements to get access:
Netbank Virtual Account (Sign Up to Netbank Virtual)
UAT Access Credentials (Generated via the Credentials Management section of the Partner Dashboard)
Information on the product/service that you are building
PROD (https://api.netbank.ph)
Description: This environment is where you can create live accounts and initiate live transactions.
Purpose of Use: To use the Netbank products and services in actual business transactions and use cases.
Connection to our Core: These APIs are connected to the production environment of our Core Banking System.
Access Credentials: You can request for Production Credentials using the Credentials Management section of your Partner Dashboard along with the Pre-Production requirements.
Sign-In and access the Netbank Virtual Partner Dashboard
Navigate to the Credentials Management section
Click “Generate Client ID & Secret”
Select “PROD Environment”
Fill out the Request for PROD Credentials form
Wait for Netbank to Approve your Prod Credentials Request
Take note of your Client ID and Client Secret
Requirements to get access:
Netbank Virtual Account (Sign Up to Netbank Virtual)
Prod Access Credentials (Generated via the Credentials Management section of the Partner Dashboard)
Information on the product/service that you are building
Banking-As-A-Service License Agreement (Signed)
Any other relevant agreements (Signed)
UAT Sign-Off (to indicate that you’ve fully tested the integration in all possible scenarios and that it’s ready for Production-Use)
The Netbank Virtual APIs utilizes OAuth 2.0–a popular and widely used protocol–to authenticate the API requests. Please use this documentation as guide on how to implement the authentication flow: https://oauth.net/2/
Access Token
the Netbank APIs require an Access Token to process any type of API request (GET, POST, PUT).
An Access Token can be generated after successfully requesting for authorization and getting an Authorization Grant.
The Netbank Virtual Access Token has a default validity of 30 Days. (Netbank can grant long-lived tokens depending on the risk assessment during onboarding)
Authorization Grant
Netbank Virtual supports 2 ways (or “Grant Types”) to get an Authorization Grant depending on the transaction scenario and the type of authorization needed
If the API User is trying to access/use a Netbank Bank Account that he/she owns,
the API User needs to request for authorization directly from Netbank’s Authorization Server
the type of Authorization Grant to be used would be the “Client Credentials” (Client ID and Client Secret). Please use this documentation as guide on how to implement the authentication flow: https://oauth.net/2/
The Client ID and Secret for this type of Authorization Grant can be generated by accessing the Partner Dashboard and navigating to the “Credentials Management” > “Environment Access Credentials” > “Generate Client ID & Secret”
If the API User is trying to access/use a Netbank Bank Account of another entity/individual,
the API User needs to gather consent and request authorization directly from the Netbank account holder by directing the account holder to Netbank’s Authorization Server
the type of Authorization Grant to be used would be the “Authorization Code” (Client ID and Client Secret). Please use this documentation as guide on how to implement the authentication flow: https://oauth.net/2/
The Client ID and Secret for this type of Authorization Grant can be generated by accessing the Partner Dashboard and navigating to the “Credentials Management” > “Authentication Code” > “Generate Client ID & Secret”. The form needs to be filled out:
Name: Name/Label for your credentials
Environment: The development environment that you would use these credentials for. (“Sandbox”, “UAT”, “PROD”)
CORS URL: Describe which URL are permitted to read authorization information from a web browser
Redirect URL: The url where the user will be redirected after a successful authorization and where the Access Token will be posted
An end user's first-time multi-factor authentication (MFA) flow will consist of a three-step Security question, One Time Password (OTP) through SMS and Consent confirmation. A session cookie will stored in the user’s browser and will be valid for 365 days.
When users have to do re-authentication they will directly go to the OTP page if the session cookie is still valid. If no cookie is present we default to first-time MFA flow.
Authorization URLs
Auth Base URL: https://auth.netbank.ph
Authorization URL: https://auth.netbank.ph/oauth2/auth?userid={{customer_id of the account holder}}
Token URL: https://auth.netbank.ph/oauth2/token
Scopes
Execute a Transaction: https://auth.netbank.bnk.to/transaction.write
Offline Access: offline_access
OpenID Connect: openid
During negative scenarios, our APIs would provide 3 identifiers to indicate what the issue is. We suggest to pattern your error handling based on these levels of reference:
HTTP Response Status Code: This indicates the standard response of an HTTP request.
Error Code: these are the well defined status codes that gRPC uses.
Error Message: this will indicate the error description coming from our core system.
ISO 20022 is a global standard for exchanging electronic messages between financial institutions. There are a lot of different messaging formats in the financial section so it is essential to make use of a common standard to get everyone on the same page.
CODE | LABEL | DEFINITION |
---|---|---|
AC01 | IncorrectAccountNumber | Format of the account number specified is not correct |
AC02 | InvalidDebtorAccountNumber | Debtor account number invalid or missing |
AC03 | InvalidCreditorAccountNumber | Wrong IBAN in SCT |
AC04 | ClosedAccountNumber | Account number specified has been closed on the bank of account's books |
AC05 | ClosedDebtorAccountNumber | Debtor account number closed |
AC06 | BlockedAccount | Account specified is blocked, prohibiting posting of transactions against it. |
AC07 | ClosedCreditorAccountNumber | Creditor account number closed |
AC08 | InvalidBranchCode | Branch code is invalid or missing |
AC09 | InvalidAccountCurrency | Account currency is invalid or missing |
AC10 | InvalidDebtorAccountCurrency | Debtor account currency is invalid or missing |
AC11 | InvalidCreditorAccountCurrency | Creditor account currency is invalid or missing |
AC12 | InvalidAccountType | Account type missing or invalid Generic usage if cannot specify between group and payment information levels |
AC13 | InvalidDebtorAccountType | Debtor account type is missing or invalid |
AC14 | InvalidAgent | An agent in the payment chain is invalid. |
AG01 | TransactionForbidden | Transaction forbidden on this type of account (formerly NoAgreement) |
AG02 | InvalidBankOperationCode | Bank Operation code specified in the message is not valid for receiver |
AG03 | TransactionNotSupported | Transaction type not supported/authorized on this account |
AG04 | InvalidAgentCountry | Agent country code is missing or invalid Generic usage if cannot specify between group and payment information levels |
AG05 | InvalidDebtorAgentCountry | Debtor agent country code is missing or invalid |
AG06 | InvalidCreditorAgentCountry | Creditor agent country code is missing or invalid |
AG07 | UnsuccesfulDirectDebit | Debtor accounts cannot be debited for a generic reason. Code value may be used in general purposes and as a replacement for AM04 if debtor bank does not reveal its customer's insufficient funds for privacy reasons |
AG08 | InvalidAccessRights | Transaction failed due to invalid or missing user or access right |
AGNT | IncorrectAgent | Agent in the payment workflow is incorrect |
AM01 | ZeroAmount | Specified message amount is equal to zero |
AM02 | NotAllowedAmount | Specific transaction/message amount is greater than allowed maximum |
AM03 | NotAllowedCurrency | Specified message amount is a non processable currency outside of existing agreement |
AM04 | InsufficientFunds | Amount of funds available to cover the specified message amount is insufficient. |
AM05 | Duplication | Duplication |
AM06 | TooLowAmount | Specified transaction amount is less than agreed minimum |
AM07 | BlockedAmount | Amount of funds available to cover the specified message amount is insufficient. |
AM09 | WrongAmount | Amount received is not the amount agreed or expected |
AM10 | InvalidControlSum | Sum of instructed amounts does not equal the control sum. |
AM11 | InvalidTransactionCurrency | Transaction currency is invalid or missing |
AM12 | InvalidAmount | Amount is invalid or missing |
AM13 | AmountExceedsClearingSystemLimit | Transaction amount exceeds limits set by clearing system |
AM14 | AmountExceedsAgreedLimit | Transaction amount exceeds limits agreed between bank and client |
AM15 | AmountBelowClearingSystemMinimum | Transaction amount below minimum set by clearing system |
AM16 | InvalidGroupControlSum | Control Sum at the Group level is invalid |
AM17 | InvalidPaymentInfoControlSum | Control Sum at the Payment Information level is invalid |
AM18 | InvalidNumberOfTransactions | Number of transactions is invalid or missing Generic usage if cannot specify between group and payment information levels |
AM19 | InvalidGroupNumberOfTransactions | Number of transactions at the Group level is invalid or missing |
AM20 | InvalidPaymentInfoNumberOfTransactions | Number of transactions at the Payment Information level is invalid |
AM21 | LimitExceeded | Transaction amount exceeds limits agreed between bank and client. |
ARDT | AlreadyReturnedTransaction | Already returned original SCT |
ARPL | AwaitingReply | Reported when the cancellation request cannot be processed because no reply has been received yet from the receiver of the request message. |
BE01 | InconsistenWithEndCustomer | Identification of the end customer is not consistent with associated account number (formerly CreditorConsistency). |
BE04 | MissingCreditorAddress | Specification of creditor's address, which is required for payment, is missing/not correct (formerly IncorrectCreditorAddress). |
BE05 | UnrecognisedInitiatingParty | Party who initiated the message is not recognised bythe end customer |
BE06 | UnknownEndCustomer | End customer specified is not known at associated Sort/National Bank Code or does no longer exist in the books |
BE07 | MissingDebtorAddress | Specification of debtor's address, which is required for payment, is missing/not correct. |
BE08 | BankError | Party who initiated the message is not recognised by the end customer Returned as a result of a bank error. |
BE09 | InvalidCountry | Country code is missing or Invalid Generic usage if cannot specifically identify debtor or creditor |
BE10 | InvalidDebtorCountry | Debtor country code is missing or Invalid |
BE11 | InvalidCreditorCountry | Creditor country code is missing or Invalid |
BE12 | InvalidCountryOfResidence | Country code of residence is missing or Invalid Generic usage if cannot specifically identify debtor or creditor |
BE13 | InvalidDebtorCountryOfResidence | Country code of debtor's residence is missing or Invalid |
BE14 | InvalidCreditorCountryOfResidence | Country code of creditor's residence is missing or Invalid |
BE15 | InvalidIdentificationCode | Identification code missing or invalid Generic usage if cannot specifically identify debtor or creditor |
BE16 | InvalidDebtorIdentificationCode | Debtor or Ultimate Debtor identification code missing or invalid |
BE17 | InvalidCreditorIdentificationCode | Creditor or Ultimate Creditor identification code missing or invalid |
BE18 | InvalidContactDetails | Contact details missing or invalid |
BE19 | InvalidChargeBearerCode | Charge bearer code for transaction type is invalid |
BE20 | InvalidNameLength | Name length exceeds local rules for payment type. |
BE21 | MissingName | Name missing or invalid Generic usage if cannot specifically identify debtor or creditor |
BE22 | MissingCreditorName | Creditor name is missing |
CH03 | RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture | Value in Requested Execution Date or Requested Collection Date is too far in the future |
CH04 | RequestedExecutionDateOrRequestedCollectionDateTooFarInPast | Value in Requested Execution Date or Requested Collection Date is too far in the past |
CH07 | ElementIsNotToBeUsedAtB-andC-Level | Element is not to be used at B- and C-Level |
CH09 | MandateChangesNotAllowed | Mandate changes are not allowed |
CH10 | InformationOnMandateChangesMissing | Information on mandate changes are missing |
CH11 | CreditorIdentifierIncorrect | Value in Creditor Identifier is incorrect |
CH12 | CreditorIdentifierNotUnambiguouslyAtTransaction-Level | Creditor Identifier is ambiguous at Transaction Level |
CH13 | OriginalDebtorAccountIsNotToBeUsed | Original Debtor Account is not to be used |
CH14 | OriginalDebtorAgentIsOnlyToBeUsedWithSequenceTypeFRST | Original Debtor Agent is only to be used with SequenceType=FRST |
CH15 | ElementContentIncludesMoreThan140Characters | Content Remittance Information/Structured includes more than 140 characters |
CH16 | ElementContentFormallyIncorrect | Content is incorrect |
CH17 | ElementNotAdmitted | Element is not allowed |
CH19 | ValuesWillBeSetToNextTARGETday | Values in Interbank Settlement Date or Requested Collection Date will be set to the next TARGET day |
CH20 | DecimalPointsNotCompatibleWithCurrency | Number of decimal points not compatible with the currency |
CH21 | RequiredCompulsoryElementMissing | Mandatory element is missing |
CH22 | COREandB2BwithinOnemessage | SDD CORE and B2B not permitted within one message |
CN01 | AuthorisationCancelled | Authorisation is canceled. |
CNOR | Creditor bank is not registered | Creditor bank is not registered under this BIC in the CSM |
CURR | IncorrectCurrency | Currency of the payment is incorrect |
CUST | RequestedByCustomer | Cancellation requested by the Debtor |
DNOR | Debtor bank is not registered | Debtor bank is not registered under this BIC in the CSM |
DS01 | ElectronicSignaturesCorrect | The electronic signature(s) is/are correct |
DS02 | OrderCancelled | An authorized user has canceled the order |
DS03 | OrderNotCancelled | The user’s attempt to cancel the order was not successful |
DS04 | OrderRejected | The order was rejected by the bank side (for reasons concerning content) |
DS05 | OrderForwardedForPostprocessing | The order was correct and could be forwarded for post processing |
DS06 | TransferOrder | The order was transferred to VEU |
DS07 | ProcessingOK | All actions concerning the order could be done by the EBICS bank server |
DS08 | DecompressionError | The decompression of the file was not successful |
DS09 | DecryptionError | The decryption of the file was not successful |
DS0A | DataSignRequested | Data signature is required. |
DS0B | UnknownDataSignFormat | Data signature for the format is not available or invalid. |
DS0C | SignerCertificateRevoked | The signer certificate is revoked. |
DS0D | SignerCertificateNotValid | The signer certificate is not valid (revoked or not active). |
DS0E | IncorrectSignerCertificate | The signer certificate is not present. |
DS0F | SignerCertificationAuthoritySignerNotValid | The authority of the signer certification sending the certificate is unknown. |
DS0G | NotAllowedPayment | Signers are not allowed to sign this operation type. |
DS0H | NotAllowedAccount | Signers are not allowed to sign for this account. |
DS0K | NotAllowedNumberOfTransaction | The number of transactions is over the number allowed for this signer. |
DS10 | Signer1CertificateRevoked | The certificate is revoked for the first signer. |
DS11 | Signer1CertificateNotValid | The certificate is not valid (revoked or not active) for the first signer. |
DS12 | IncorrectSigner1Certificate | The certificate is not present for the first signer. |
DS13 | SignerCertificationAuthoritySigner1NotValid | The authority of signer certification sending the certificate is unknown for the first signer. |
DS14 | UserDoesNotExist | The user is unknown on the server |
DS15 | IdenticalSignatureFound | The same signature has already been sent to the bank |
DS16 | PublicKeyVersionIncorrect | The public key version is not correct. This code is returned when a customer sends signature files to the financial institution after conversion from an older program version (old ES format) to a new program version (new ES format) without having carried out re-initialisation with regard to a public key change. |
DS17 | DifferentOrderDataInSignatures | Order data and signatures don’t match |
DS18 | RepeatOrder | File cannot be tested, the complete order has to be repeated. This code is returned in the event of a malfunction during the signature check, e.g. not enough storage space. |
DS20 | Signer2CertificateRevoked | The certificate is revoked for the second signer. |
DS21 | Signer2CertificateNotValid | The certificate is not valid (revoked or not active) for the second signer. |
DS22 | IncorrectSigner2Certificate | The certificate is not present for the second signer. |
DS23 | SignerCertificationAuthoritySigner2NotValid | The authority of signer certification sending the certificate is unknown for the second signer. |
DS24 | WaitingTimeExpired | Waiting time expired due to incomplete order |
DS25 | OrderFileDeleted | The order file was deleted by the bank server(for multiple reasons) |
DS26 | UserSignedMultipleTimes | The same user has signed multiple times |
DS27 | UserNotYetActivated | The user is not yet activated (technically) |
DS28 | ReturnForTechnicalReason | Return following technical problems resulting in erroneous transactions. |
DT01 | InvalidDate | Invalid date (eg, wrong or missing settlement date) |
DT02 | InvalidCreationDate | Invalid creation date and time in Group Header (eg, historic date) |
DT03 | InvalidNonProcessingDate | Invalid non bank processing date (eg, weekend or local public holiday) |
DT04 | FutureDateNotSupported | Future date not supported |
DT05 | InvalidCutOffDate | Associated message, payment information block or transaction was received after an agreed processing cut-off date, i.e., date in the past. |
DT06 | ExecutionDateChanged | Execution Date has been modified in order for transaction to be processed |
DU01 | DuplicateMessageID | Message Identification is not unique. |
DU02 | DuplicatePaymentInformationID | The Payment Information Block is not unique. |
DU03 | DuplicateTransaction | Transactions are not unique. |
DU04 | DuplicateEndToEndID | End To End ID is not unique. |
DU05 | DuplicateInstructionID | Instruction ID is not unique. |
DUPL | DuplicatePayment | Payment is a duplicate of another payment |
ED01 | CorrespondentBankNotPossible | Corresponding bank is not not possible. |
ED03 | BalanceInfoRequest | Balance of payments complementary info is requested |
ED05 | SettlementFailed | Settlement of the transaction has failed. |
EMVL | EMV Liability Shift | The card payment is fraudulent and was not processed with EMV technology for an EMV card. |
ERIN | ERIOptionNotSupported | The Extended Remittance Information (ERI) option is not supported. |
FF01 | Invalid | File Format File Format incomplete or invalid |
FF02 | SyntaxError | Syntax error reason is provided as narrative information in the additional reason information. |
FF03 | InvalidPaymentTypeInformation | Payment Type Information is missing or invalid Generica usage if cannot specify Service Level or Local Instrument code |
FF04 | InvalidServiceLevelCode | Service Level code is missing or invalid |
FF05 | InvalidLocalInstrumentCode | Local Instrument code is missing or invalid |
FF06 | InvalidCategoryPurposeCode | Category Purpose code is missing or invalid |
FF07 | InvalidPurpose | Purpose is missing or invalid |
FF08 | InvalidEndToEndId | End to End Id missing or invalid |
FF09 | InvalidChequeNumber | Cheque number missing or invalid |
FF10 | BankSystemProcessingError | File or transaction cannot be processed due to technical issues at the bank side |
FOCR | FollowingCancellationRequest | Return following a cancellation request |
FR01 | Fraud | Returned as a result of fraud. |
FRTRF | FinalResponseMandate | Canceled Final response/tracking is recalled as the mandate is canceled. |
ID01 | CorrespondingOriginalFileStillNotSent | Signature file was sent to the bank but the corresponding original file has not been sent yet. |
LEGL | LegalDecision | Reported when the cancellation cannot be accepted because of regulatory rules. |
MD01 | NoMandate | No Mandate |
MD02 | MissingMandatoryInformationIn | Mandate Mandate related information data required by the scheme is missing. |
MD05 | CollectionNotDue | Creditor or creditor's agent should not have collected the direct debit |
MD06 | RefundRequestByEndCustomer | Return of funds requested by end customer |
MD07 | EndCustomerDeceased | End customer is deceased. |
MS02 | NotSpecifiedReasonCustomerGenerated | Reason has not been specified by end customer |
MS03 | NotSpecifiedReasonAgentGenerated | Reason has not been specified by agent. |
NARR | Narrative | Reason is provided as narrative information in the additional reason information. |
NOAS | NoAnswerFromCustomer | No response from Beneficiary |
NOCM | NotCompliant | Customer accounts are not compliant with regulatory requirements, for example FICA (in South Africa) or any other regulatory requirements which render an account inactive for certain processing. |
NOOR | NoOriginalTransactionReceived | Original SCT never received |
PINL | PIN Liability Shift | The card payment is fraudulent (lost and stolen fraud) and was processed as an EMV transaction without PIN verification. |
PTNA | PassedtoTheNextAgent | Reported when the cancellation request cannot be accepted because the payment instruction has been passed to the next agent. |
RC01 | BankIdentifierIncorrect | The Bank Identifier code specified in the message has an incorrect format (formerly IncorrectFormatForRoutingCode). |
RC02 | InvalidBankIdentifier | Bank identifier is invalid or missing Generic usage if cannot specify between debit or credit account |
RC03 | InvalidDebtorBankIdentifier | Debtor bank identifier is invalid or missing |
RC04 | InvalidCreditorBankIdentifier | Creditor bank identifier is invalid or missing |
RC05 | InvalidBICIdentifier | BIC identifier is invalid or missing Generic usage if cannot specify between debit or credit account |
RC06 | InvalidDebtorBICIdentifier | Debtor BIC identifier is invalid or missing |
RC07 | InvalidCreditorBICIdentifier | Creditor BIC identifier is invalid or missing |
RC08 | InvalidClearingSystemMemberIdentifier | ClearingSystemMemberidentifier is invalid or missing Generic usage if cannot specify between debit or credit account |
RC09 | InvalidDebtorClearingSystemMemberIdentifier | Debtor ClearingSystemMember identifier is invalid or missing |
RC10 | InvalidCreditorClearingSystemMemberIdentifier | Creditor ClearingSystemMember identifier is invalid or missing |
RC11 | InvalidIntermediaryAgent | Intermediary Agent is invalid or missing |
RC12 | MissingCreditorSchemeId | Creditor Scheme Id is invalid or missing |
RF01 | NotUniqueTransactionReference | Transaction reference is not unique within the message. |
RR01 | Missing Debtor Account or Identification | Specification of the debtor’s account or unique identification needed for reasons of regulatory requirements is insufficient or missing |
RR02 | Missing Debtor Name or Address | Specification of the debtor’s name and/or address needed for regulatory requirements is insufficient or missing. |
RR03 | Missing Creditor Name or Address | Specification of the creditor’s name and/or address needed for regulatory requirements is insufficient or missing. |
RR04 | Regulatory Reason | Regulatory Reason |
RR05 | RegulatoryInformationInvalid | Regulatory or Central Bank Reporting information missing, incomplete or invalid. |
RR06 | TaxInformationInvalid | Tax information missing, incomplete or invalid. |
RR07 | RemittanceInformationInvalid | Remittance information structure does not comply with rules for payment type. |
RR08 | RemittanceInformationTruncated | Remittance information truncated to comply with rules for payment type. |
RR09 | InvalidStructuredCreditorReference | Structured creditor reference invalid or missing. |
RR10 | InvalidCharacterSet | Character set supplied not valid for the country and payment type. |
RR11 | InvalidDebtorAgentServiceID | Invalid or missing identification of a bank proprietary service. |
RR12 | InvalidPartyID | Invalid or missing identification required within a particular country or payment type. |
RUTA | ReturnUponUnableToApply | Return following investigation request and no remediation possible. |
SL01 | Specific Service offered by Debtor Agent | Due to specific service offered by the Debtor Agent |
SL02 | Specific Service offered by Creditor Agent | Due to specific service offered by the Creditor Agent |
SL11 | Creditor not on Whitelist of Debtor | Whitelisting service offered by the Debtor Agent; Debtor has not included the Creditor on its “Whitelist” (yet). In the Whitelist the Debtor may list all allowed Creditors to debit Debtor bank accounts. |
SL12 | Creditor on Blacklist of Debtor | Blacklisting service offered by the Debtor Agent; Debtor included the Creditor on his “Blacklist”. In the Blacklist the Debtor may list all Creditors not allowed to debit Debtor bank accounts. |
SL13 | Maximum number of Direct Debit Transactions exceeded | Due to Maximum allowed Direct Debit Transactions per period service offered by the Debtor Agent. |
SL14 | Maximum Direct Debit Transaction Amount exceeded | Due to Maximum allowed Direct Debit Transaction amount service offered by the Debtor Agent. |
SP01 | PaymentStopped | Payment is stopped by the account holder. |
SP02 | PreviouslyStopped | Previously stopped by means of a stop payment advice. |
SVNR | ServiceNotRendered | The card payment is returned since a cash amount rendered was not correct or goods or a service was not rendered to the customer, e.g. in an ecommerce situation. |
SYAD | RequestToSettlementSystemAdministrator | Cancellation requested by System Member to Settlement System Administrator to indicate that the cancellation request must not be forwarded further in the chain. |
TA01 | TransmissonAborted | The transmission of the file was not successful – it had to be aborted (for technical reasons) |
TD01 | NoDataAvailable | There is no data available (for download) |
TD02 | FileNonReadable | The file cannot be read (e.g. unknown format) |
TD03 | IncorrectFileStructure | The file format is incomplete or invalid |
TECH | TechnicalProblem | Cancellation requested following technical problems resulting in an erroneous transaction. |
TM01 | InvalidCutOffTime Formerly: CutOffTime | Associated message, payment information block or transaction was received after agreed processing cut-off time. |
TRAC | RemovedFromTracking | Return following direct debit being removed from tracking process. |
TS01 | TransmissionSuccessful | The (technical) transmission of the file was successful. |
TS04 | TransferToSignByHand | The order was transferred to pass by accompanying note signed by hand |
UPAY | UnduePayment | Payment is not justified. |
9910 | Receiving Bank- Logged Off | Receiver signed-off |
9912 | Receiving Participant not available | Sending Participant sends a message where the recipient cannot be connected, receives a rejection |
Code | Label | Description |
---|---|---|
200 | OK | Processing is successful |
400 | BAD REQUEST | The request payload has a missing parameter and/or invalid format |
403 | FORBIDDEN | The call does not have the proper authentication |
404 | NOT FOUND | The resource that is being retrieved is not existing |
500 | INTERNAL SERVER ERROR | There is an issue in processing the request |
Netbank Virtual APIs use the gRPC status codes to further classify the success or failure of an API request. **Those highlighted in blue are the codes that are mostly used by our APIs.
Code | Label | Description |
---|---|---|
0 | OK | Not an error; returned on success. |
1 | CANCELLED | The operation was cancelled, typically by the caller. |
2 | UNKNOWN | Unknown error. For example, this error may be returned when a Status value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. |
3 | INVALID_ARGUMENT | The client specified an invalid argument. Note that this differs from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name) |
4 | DEADLINE_EXCEEDED | The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long |
5 | NOT_FOUND | Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, NOT_FOUND may be used. If a request is denied for some users within a class of users, such as user-based access control, PERMISSION_DENIED must be used. |
6 | ALREADY_EXISTS | The entity that a client attempted to create (e.g., file or directory) already exists. |
7 | PERMISSION_DENIED | The caller does not have permission to execute the specified operation. PERMISSION_DENIED must not be used for rejections caused by exhausting some resource (use RESOURCE_EXHAUSTED instead for those errors). PERMISSION_DENIED must not be used if the caller can not be identified (use UNAUTHENTICATED instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. |
8 | RESOURCE_EXHAUSTED | Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. |
9 | FAILED_PRECONDITION | The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE: (a) Use UNAVAILABLE if the client can retry just the failing call. (b) Use ABORTED if the client should retry at a higher level (e.g., when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence). (c) Use FAILED_PRECONDITION if the client should not retry until the system state has been explicitly fixed. E.g., if an "rmdir" fails because the directory is non-empty, FAILED_PRECONDITION should be returned since the client should not retry unless the files are deleted from the directory. |
10 | ABORTED | The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE. |
11 | OUT_OF_RANGE | The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate INVALID_ARGUMENT if asked to read at an offset that is not in the range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from an offset past the current file size. There is a fair bit of overlap between FAILED_PRECONDITION and OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error) when it applies so that callers who are iterating through a space can easily look for an OUT_OF_RANGE error to detect when they are done. |
12 | UNIMPLEMENTED | The operation is not implemented or is not supported/enabled in this service. |
13 | INTERNAL | Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. |
14 | UNAVAILABLE | The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. |
15 | DATA_LOSS | Unrecoverable data loss or corruption. |
16 | UNAUTHENTICATED | The request does not have valid authentication credentials for the operation. |
Idempotency simply refers to the API design principle that ensures that multiple identical API requests should return the same and original response of the initial request instead of reprocessing the operation. The Netbank Virtual APIs are designed to be idempotent in order to:
Avoid unintentional duplicate API requests
This protects our API users from the risk of unintentional reprocessing of transactions due to the mistake of re-sending the same API request twice or more.
Retrieve the API Response in the event of an API Request Timeout
This also serves as a mechanism to retrieve the original response of a request in the event that the API call has timed out due to network interruptions or other causes.
How does it work:
Our GET APIs are idempotent by nature given that these APIs retrieve information or data from our database. As such, sending multiple identical requests will return the same response.
Our POST and PUT APIs can be made idempotent by passing a unique id in the idempotency-key header parameter as part of the API request. Sending a request payload and a idempotency-key that is identical to a previous request and key would simply return the response of the original request without processing the second identical request.
In case of an API request timeout, simply resend the same request with the same idempotency-key.
If the original request successfully pushed through and was processed in our system, the API would simply return the response of the original request.
If the original request did not reach our system, we would process the second request and return a response just like a regular API call.
Virtual Collection Accounts (VCA) is one of Netbank’s Banking-as-a-Service solutions that enables you, our Partners, to accept fully- traceable bank transfer payments from clients.
Through this solution, you are able to freely generate and assign reference numbers that act as virtual accounts that you can provide to your payors. These virtual accounts act as beneficiary account numbers for payors to transfer funds to.
The funds credited to virtual accounts are settled in your Netbank Corporate Account, enabling easier reconciliation.
To illustrate, let’s suppose you have a Netbank Corporate Bank Account Number which is 123-111-99999-1.
Instead of providing that account number to your payors, you can assign a Virtual Collection Account to a payor as a destination account when they make payments via fund transfer. For the purposes of this illustration, let’s say that the VCA assigned to customer A is “999971234567”.
When the payment to VCA “999971234567” is made, funds are credited to your Netbank Corporate Bank Account Number 123-111- 99999-1. Since both the assignment and generation of the VCA was done on your end, you should now be able to reconcile what the payment is for or who the payment was from.
There are generally no (or very minimal) APIs needed to integrate VCAs, making it a very flexible plug-and-play solution for Partners looking to implement a collection solution.
You also can receive notifications directly from our system to yours via webhooks as soon as we receive the inbound transaction.
Generating Virtual Collection Accounts do not require any API integration. Instead, it is a standard format of generating the accounts that simply need to be followed. VCA numbers are generally 12-digit numbers that are comprised of:
5-digit Partner Alias + 7-digit Reference Number
Netbank will assign the 5-digit Partner Alias while the rest of the VCA number can freely be assigned by you or your system.
To enable Netbank to assign your Partner Alias, you will need to provide Netbank your nominated Netbank Corporate Account that will receive the payments credited to VCAs.
Virtual Collection Accounts are highly-flexible.
You can use VCAs by assigning them on a per-invoice basis where your payors will remit to different VCAs per transaction.
On the flipside, you can use VCAs by assigning them similar to a dedicated bank account where your users will remit to the same VCA for all of their transactions.
However you decide, Netbank does not need to be notified on your preferred use-case.
The VCA being a collection solution, allows for easier payment reconciliation. As you have visibility of the VCA that your payors are crediting, once funds are received, tagging payables as paid is much easier. This also eliminates the extra step for payors to send a proof of payment.
For fintechs and businesses looking to roll out a collection solution that is readily available to as many payors as possible, VCAs are recognized by the rails of Instapay and Pesonet. This means that payors, using their own banking or e-wallet apps, can immediately transfer funds to VCAs. There is no need to integrate separately with popular platforms like GCash, Maya, Unionbank or BPI which can be tedious, costly and time-consuming.
As VCAs are essentially a masking of your Netbank Corporate account, whenever a fund transfer occurs, they are settled directly with Netbank. The settlement schedule follows solely that of Instapay and Pesonet, eliminating clearing delays that are commonly experienced with other payment aggregators where there is normally further batching and crediting.
The user journey of paying a VCA is simple and straightforward: users log on to their favorite banking or e-wallet apps (GCash, Maya, Unionbank, BDO, BPI, etc)
Select the option where can perform a fund transfer (normally labelled “Transfer” or “Send Money to Other Banks”),
Look for “Netbank” in the list of banks,
Enter the amount, the account name of your Netbank Corporate Account and the VCA as the destination account number.
There are several ways to confirm if a payment into a VCA has been received, allowing for great flexibility for system and operational integration for your apps/platforms or workflow.
Via the Channel Transactions page of the Netbank Virtual Partner Dashboard, you can view funds you have received in the UAT and PRODUCTION environment under the Collect Tab. Transaction details are displayed in an easy-to-understand and straightforward tabular format that includes the destination VCA that the funds were paid to.
We can register an endpoint that you will expose in order to receive credit notification webhooks. You may refer to the documentation on webhooks here for further information.
Via our Retrieve Bank Account Transaction History API endpoint, you can use a VCA number in the path parameter to obtain a list of transactions. Kindly refer to our API documentation for further details.
Generating QRPH images for Virtual Collection Accounts is also possible. Kindly refer to our API documentation here.
You can use a specific Virtual Collection Account as the “destination_account” in the Generate QRPH Image endpoint. This way, payors would not have to manually type in their target VCA when performing a fund transfer but instead, upload or scan a QR image. This minimizes or even eliminates the possibility of payors transferring to erroneous account details.
There is little to no API integration that would need to be done to implement Virtual Collection Accounts to your system.
In order to commence testing, you may contact your Client Success Manager via support@netbank.ph or an alternative communication point that they have established for you to receive assistance during integration. Your client Success Managers would ask you for
The UAT bank account account (that you have opened via the Netbank Virtual Partner Dashboard) where your assigned 5-digit Partner Alias would be associated and
A URL endpoint that you have exposed where we can push credit notification webhooks.
To simulate incoming transfers in the UAT environment, kindly utilize Netbank’s Process Account-To-Account Fund Transfer API. You can open and nominate another UAT bank account and designate it as your source account.
Feel free to reach out to your Client Success Managers for assistance on testing and other questions.
PRODUCT OVERVIEW
Product Name | Account-As-A-Service |
Product Description | A service that will allow you to open white-labeled bank accounts under the name of your Company or of your end-users via APIs, via the File Upload Platform, or via a White-Labeled App. |
Use Case | To be able to open digital and white-labeled savings and/or loan accounts for each of your end-users OR open bank accounts under your name for cash management processes or as a receiving account to collect specific payments from your end-users and/or your merchants. |
Sandbox Base URL | http://api-sandbox.netbank.ph |
UAT Base URL | http://api-uat.netbank.ph/ |
PROD Base URL | - |
Allows you to retrieve the interest details of a specific bank account that you’ve created.
account_number required | string The actual account number of the bank account created for the individual or business/company customer record with dash (e.g. 005-0010-00032-2). |
date_from required | string This is the starting point of the date range which allows you to retrieve the interest details on a custom timeframe (YYYY-MM-DD). |
date_to required | string This is the ending point of the date range which allows you to retrieve the interest details on a custom timeframe (YYYY-MM-DD). |
{- "account_name": "string",
- "adb": "string",
- "branch": "string",
- "effective_name": "string",
- "gross_interest": "string",
- "net_interest": "string",
- "pdic_type": "string",
- "product_name": "string",
- "product_number": "string",
- "product_status": "string",
- "wtax": "string"
}
Allows you to retrieve the full list of all bank accounts that you’ve created and associated with an Individual/ Corporate customer profile (CIF).
customer_id required | string The id that is associated by our core banking platform to the individual or corporate/ business customer record. |
{- "result": [
- {
- "account_number": "005-0010-00032-2",
- "account_type": {
- "id": "8",
- "name": "UAT Test Corporate Account"
}, - "accrued_interest": {
- "cur": "PHP",
- "num": "0"
}, - "available_balance": {
- "cur": "PHP",
- "num": "0"
}, - "balance": {
- "cur": "PHP",
- "num": "0"
}, - "branch": "6",
- "customer_id": "1566",
- "customer_name": "Juan Dela Cruz",
- "status": "ACTIVE"
}
]
}
Allows you to create a bank account for an Individual/Corporate customer profile (CIF)
customer_id required | string The id that is associated by our core banking platform to the individual or corporate/ business customer record. |
account_type_id required | string The id that refers to the type of bank account to be opened (e.g. Regular Savings Account, Limited Account, Loan Account, etc.). |
description required | string Descriptive information regarding the account. |
{- "customer_id": "1480",
- "account_type_id": "8",
- "description": "Corporate Savings Account"
}
{- "account_number": "005-0010-00032-2"
}
Allows you to update details of a bank account.
bank_account_number required | string Netbank Bank Account Number |
account_type_id | string The id that refers to the type of bank account (e.g. Regular Savings Account, Limited Account, Loan Account, etc.). |
extra_number | string Reference Number of the bank account. |
interest_rate | string The interest that will be applied to the bank account |
{- "bank_account_number": "string",
- "account_type_id": "string",
- "extra_number": "string",
- "interest_rate": "string"
}
{- "processed": "2022-02-02T02:10:52.880Z"
}
Allows you to retrieve the details of a specific bank account that you’ve created.
account_number required | string The actual account number of the bank account created for the individual or business/company customer record. |
{- "account_number": "005-0010-00032-2",
- "account_type": {
- "id": "8",
- "name": "UAT Test Corporate Account"
}, - "accrued_interest": {
- "cur": "PHP",
- "num": "0"
}, - "available_balance": {
- "cur": "PHP",
- "num": "0"
}, - "balance": {
- "cur": "PHP",
- "num": "0"
}, - "branch": "6",
- "customer_id": "1566",
- "customer_name": "Juan Dela Cruz",
- "status": "ACTIVE"
}
Allows you to quickly verify the existence of a bank account.
account_number required | string The actual account number of the bank account created for the individual or business/company customer record with dash (e.g. 005-0010-00032-2). |
{- "account_number": "string",
- "active": true,
- "exists": true
}
Allows you to retrieve the list of transactions of a bank account that you’ve created.
account_number required | string The actual account number of the bank account created for the individual or business/company customer record. |
start_date | string Return transactions on or after this date (YYYY-MM-DD). |
end_date | string Return transactions before this date (YYYY-MM-DD). |
limit | integer <int32> Maximum number of transactions to return (up to 100). |
offset | integer <int32> Offset for the start of the returned transaction list. |
reference_id | string Filter By Reference ID. |
{- "last_running_balance": {
- "cur": "string",
- "num": "string"
}, - "result": [
- {
- "amount": {
- "cur": "string",
- "num": "string"
}, - "customer_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "description": "string",
- "destination_account": {
- "account_alias": "string",
- "account_number": "string",
- "bank_code": "string",
- "branch": "string"
}, - "destination_offline_user": {
- "address": {
- "address1": "string",
- "address2": "string",
- "city": "string",
- "country": "string",
- "postal_code": "string",
- "province": "string",
- "state": "string"
}, - "customer_id": "string",
- "mobile_no": "string",
- "name": "string"
}, - "fees": [
- {
- "amount": {
- "cur": "string",
- "num": "string"
}, - "class": "string",
- "description": "string"
}
], - "operation_id": "string",
- "reference_id": "string",
- "remarks": "string",
- "sender_name": "string",
- "settlement_rail": "string",
- "source_account": {
- "account_alias": "string",
- "account_number": "string",
- "bank_code": "string",
- "branch": "string"
}, - "source_offline_user": {
- "address": {
- "address1": "string",
- "address2": "string",
- "city": "string",
- "country": "string",
- "postal_code": "string",
- "province": "string",
- "state": "string"
}, - "customer_id": "string",
- "mobile_no": "string",
- "name": "string"
}, - "status": "UnknownStatus",
- "status_details": [
- {
- "message": "string",
- "status": "UnknownStatus",
- "updated": "2019-08-24T14:15:22Z"
}
], - "transaction_id": "string",
- "type": "UnknownType",
- "updated": "2019-08-24T14:15:22Z"
}
]
}
Allows you to pass the KYC information to create the INDIVIDUAL customer profile (CIF) from which the bank account will be associated.
first_name required | string FirstName is the first name name of customer |
middle_name | string MiddleName is the middle name of customer |
last_name required | string LastName is the last name of customer |
title | string Title of the customer |
gender required | string Gender of the customer |
civil_status | string Civil status of the customer |
string Email address of the customer. | |
required | object Complete address of the customer |
required | object Contact number of the customer |
required | object Date of birth of the customer |
birth_place required | string BirthPlace of the customer used as a security question on the consent flow |
birth_place_country required | string Country of Birth of the customer. |
allow_credit_line | boolean Determines if customer is allowed to open credit line. |
object (Estimated income of the customer) Amount defines a transaction amount. | |
income_type | string Type of the customer’s income. |
work_description | string Nature of work/business of the customer |
tin | string Tax Identification Number of the customer |
sss | string Social Security Number of the customer |
customer_risk_level | string Risk level of the customer according to the KYC |
phone_numbers | array List of additional phone of customer |
{- "first_name": "Netbank",
- "middle_name": "Test",
- "last_name": "AccountD",
- "title": "MR",
- "gender": "Male",
- "civil_status": "Single",
- "email": "test@netbank.ph",
- "address": {
- "address1": "QC",
- "address2": "Metro Manila",
- "city": "Quezon City",
- "country": "PH",
- "postal_code": "1112",
- "province": "NCR",
- "state": "Luzon"
}, - "primary_phone": {
- "country_code": "63",
- "number": "9171234567",
- "type": "MOBILE"
}, - "birthdate": {
- "day": "05",
- "month": "01",
- "year": "1991"
}, - "birth_place": "Manila",
- "birth_place_country": "PH",
- "allow_credit_line": true,
- "income": {
- "cur": "PHP",
- "num": "50000000000"
}, - "income_type": "SALARY",
- "work_description": "work desc",
- "tin": "317001098",
- "sss": "34-1234567-1",
- "customer_risk_level": "Normal",
- "phone_numbers": [ ]
}
{- "cif_number": "12847",
- "customer_id": "1234"
}
Allows you to retrieve the details of an Individual/Corporate customer profile (CIF) that you’ve created.
customer_id required | string The id that is associated by our core banking platform to the individual or corporate/ business customer record. |
{- "additional_addresses": {
- "address1": "address 1",
- "address2": "address 2",
- "city": "city",
- "country": "PH",
- "ownership": "ownership",
- "postal_code": "postal code",
- "province": "province",
- "state": "state"
}, - "address": {
- "address1": "address 1",
- "city": "city",
- "country": "PH",
- "postal_code": "postal code",
- "province": "province",
- "state": "state"
}, - "birthdate": {
- "day": "5",
- "month": "1",
- "year": "1991"
}, - "birthplace": "birth place",
- "branch_id": "1",
- "channel": "string",
- "channel_id": "string",
- "cif_number": "string",
- "civil_status": "string",
- "corporate_info": {
- "address": {
- "address1": "address 1",
- "address2": "address 2",
- "city": "city",
- "country": "country",
- "ownership": "ownership",
- "postal_code": "postal code",
- "province": "province",
- "state": "state"
}, - "authorized_signatory": [
- {
- "customer_id": "customer id"
}
], - "business_name": "business name",
- "business_phone": {
- "country_code": "63",
- "number": "9171234567",
- "type": "MOBILE"
}, - "business_type": "business type",
- "contact": {
- "email": "email",
- "first_name": "first name",
- "last_name": "last name",
- "phone": {
- "country_code": "63",
- "number": "9171234567",
- "type": "MOBILE"
}
}, - "founded_date": {
- "day": "63",
- "month": "9171234567",
- "year": "MOBILE"
}, - "fund_source": "fund_source",
- "income": {
- "cur": "PHP",
- "num": "1000"
}, - "incorporation_country": "incorporation country",
- "total_assets": {
- "cur": "PHP",
- "num": "10000"
}, - "trade_name": "trade name"
}, - "created_date": "2023-11-22T10:48:08.161Z",
- "customer_id": "1",
- "customer_risk_level": "customer risk level",
- "customer_type": "INDIVIDUAL",
- "email": "test@netbank.ph",
- "first_name": "first name",
- "gender": "MALE",
- "last_name": "Last name",
- "middle_name": "middle name",
- "phone_numbers": {
- "country_code": "63",
- "number": "9171234567",
- "type": "MOBILE"
}, - "primary_phone": {
- "country_code": "63",
- "number": "9171234567",
- "type": "MOBILE"
}, - "title": "title",
- "updated_date": "2023-11-22T10:48:08.161Z"
}
Allows you to upload the necessary KYC Documentation for a specific Individual or Corporate Customer.
customer_id required | string The id that is associated by our core banking platform to the individual or corporate/ business customer record. |
document_name required | string Name of the id/document being uploaded |
document_type required | string The code of the ”document_type” from the Retrieve KYC Document Types API that matches the type of the id/document being uploaded. |
id_type | string Only required if "document_type" = "legal_id" |
id_number | string Only required if "document_type" = "legal_id" |
id_status | string Only required if "document_type" = "legal_id" |
issuer required | string The issuing authority of the id/document being uploaded |
country required | string The issuing country of the id/document being uploaded. |
primary_id required | boolean Identifies if the id/document being uploaded is a primary id or not |
file required | string The Base64 encoded value of the id/document being uploaded |
object Expiration date of the id/document being uploaded | |
required | object The date when id/document being uploaded was received |
comments required | string Additional comments or remarks regarding the id/document being uploaded |
{- "document_name": "JuanDelaCruz_Philhealth_Card",
- "document_type": "legal_id",
- "id_type": "ID26",
- "id_number": "12345678",
- "id_status": "VALID",
- "issuer": "PhilHealth NCR",
- "country": "PH",
- "primary_id": true,
- "file": "iVBORw0KGgoAAAANSUhEUgAABAAAAAKfCAMAAADHI0odAAAC91BMVEUAAAFhmQlFgQpHggpSkQpfoAtrsAu8vLy8vLq8vLy8vLyjt3mn0AiszBKh5AuM2Q2CzQx3vwy84AfQ4QRrrwttsgxwtgxzuQx1vAx3vwx6wgx8xQx+yAyBzAyEzwyH0wyK1g2N2g2Q3g2T4Q2W5A2Y5A2a5Ayd5Ayg5Auj5Aqm5Aup5Aqs5Aqt5Aqv5Aqx5Amz5Am15Am35Ai65Ai85Ai/5AfD5AfG5AbK5AbO5AXR5AXU5QXX4gXY5ATV3wTS3ATP2QTN1wPL1API0gPGzwPDzAPByQO+xgO7wwO4wAO1vQOyugKxuAKvtQKttAKrsgKpsAKnrQKlqwKjqQKiqAKgpgKfpAKcoQKZngGXnAGVmgGTmAGSlgGRlQGPkgGMkAGJjQGGiQGDhgGBgwB",
- "expiration": {
- "day": "29",
- "month": "12",
- "year": "2022"
}, - "received": {
- "day": "01",
- "month": "02",
- "year": "2022"
}, - "comments": "Philhealth Card"
}
{- "processed": "2022-02-02T02:10:52.880Z"
}
Allows you to pass the KYC information to create the CORPORATE customer profile (CIF) from which the bank account will be associated.
business_name required | string Name of the business/company |
trade_name required | string Trade name of the business/company |
required | object Complete address of the business/company |
business_type | string Type of the business/company. |
required | object (Estimated size of the business/company) Amount defines a transaction amount. |
required | object (Estimated income of the business/company) Amount defines a transaction amount. |
fund_source required | string Source of funding of the business/company |
required | object Primary contact within the business/company |
required | object Contact number of the business/company |
required | object Date that the business/company was founded |
incorporation_country required | string Place of incorporation of the business/company |
authorized_signatory | array The list of customer_id/s of the business/company’s authorized signatories |
related_document | array Related Document |
allow_credit_line | boolean Determines if customer is allowed to open credit line. |
{- "business_name": "Netbank Corp SandboxDev2",
- "trade_name": "NetbankSandboxDev1",
- "address": {
- "address1": "VN",
- "address2": "Nova",
- "city": "QC",
- "country": "PH",
- "ownership": "OWNED",
- "postal_code": "1123",
- "province": "NCR",
- "state": "LUZON"
}, - "business_type": "ASSOCIATION",
- "total_assets": {
- "cur": "PHP",
- "num": "50000000"
}, - "income": {
- "cur": "PHP",
- "num": "50000000"
}, - "fund_source": "IPO",
- "contact": {
- "email": "email@test.com",
- "first_name": "Juan",
- "last_name": "Dela Cruz",
- "phone": {
- "country_code": "63",
- "number": "9327076778",
- "type": "HOME"
}
}, - "business_phone": {
- "country_code": "63",
- "number": "9327076777",
- "type": "HOME"
}, - "founded_date": {
- "day": "01",
- "month": "01",
- "year": "2011"
}, - "incorporation_country": "PH",
- "authorized_signatory": [
- {
- "customer_id": "1990"
}
], - "related_document": [ ],
- "allow_credit_line": true
}
{- "cif_number": "12847",
- "customer_id": "1234"
}
Allows you to update details of a Corporate Customer.
customer_id required | string The id that is associated by our core banking platform to the corporate business customer record. |
customer_id required | string The id that is associated by our core banking platform to the corporate business customer record. |
trade_name | string Trade name of the business/company |
object Complete address of the business/company | |
object (Estimated size of the business/company) Amount defines a transaction amount. | |
object (Estimated income of the business/company) Amount defines a transaction amount. | |
object Primary contact within the business/company | |
object Contact number of the business/company | |
fund_source | string Source of funding of the business/company |
authorized_signatory | array The list of customer_id/s of the business/company’s authorized signatories |
{- "customer_id": "string",
- "trade_name": "string",
- "address": {
- "address1": "string",
- "address2": "string",
- "city": "string",
- "province": "string",
- "state": "string",
- "country": "string",
- "postal_code": "string",
- "ownership": "string"
}, - "total_assets": {
- "cur": "string",
- "num": "string"
}, - "income": {
- "cur": "string",
- "num": "string"
}, - "contact": {
- "email": "string",
- "first_name": "string",
- "last_name": "string",
- "phone": {
- "country_code": "string",
- "number": "string",
- "type": "UnknownType"
}
}, - "business_phone": {
- "country_code": "string",
- "number": "string",
- "type": "UnknownType"
}, - "fund_source": "string",
- "authorized_signatory": [ ]
}
{- "processed": "2022-02-02T02:10:52.880Z"
}
Allows you to update details of a Individual Customer.
customer_id required | string The id that is associated by our core banking platform to the individual customer record. |
customer_id required | string The id that is associated by our core banking platform to the individual customer record. |
middle_name | string middle name of the individual cutomer |
last_name | string last name of the individual cutomer |
title | string title of the individual cutomer |
civil_status | string civil_status of the individual cutomer |
string email of the individual cutomer | |
object address of the individual cutomer | |
object primary phone of the individual cutomer | |
object (income of the individual cutomer) Amount defines a transaction amount. | |
income_type | string income type of the individual cutomer |
work_description | string work description of the individual cutomer |
tin | string tin of the individual cutomer |
sss | string sss of the individual cutomer |
customer_risk_level | string customer risk_level of the individual cutomer |
phone_numbers | array phone numbers of the individual cutomer |
credit_line_allowed | boolean creditLineAllowed of the individual cutomer |
{- "customer_id": "string",
- "middle_name": "string",
- "last_name": "string",
- "title": "string",
- "civil_status": "string",
- "email": "string",
- "address": {
- "address1": "string",
- "address2": "string",
- "city": "string",
- "province": "string",
- "state": "string",
- "country": "string",
- "postal_code": "string",
- "ownership": "string"
}, - "primary_phone": {
- "country_code": "string",
- "number": "string",
- "type": "UnknownType"
}, - "income": {
- "cur": "string",
- "num": "string"
}, - "income_type": "string",
- "work_description": "string",
- "tin": "string",
- "sss": "string",
- "customer_risk_level": "string",
- "phone_numbers": [ ],
- "credit_line_allowed": true
}
{- "processed": "2022-02-02T02:10:52.880Z"
}
Allows you to retrieve the list of valid values for the Perform KYC Document Upload API parameters that require a specific set of values.
{- "document_type": {
- "property1": {
- "code": "string",
- "name": "string"
}, - "property2": {
- "code": "string",
- "name": "string"
}
}, - "id_status": {
- "property1": {
- "code": "string",
- "name": "string"
}, - "property2": {
- "code": "string",
- "name": "string"
}
}, - "id_type": {
- "property1": {
- "code": "string",
- "name": "string"
}, - "property2": {
- "code": "string",
- "name": "string"
}
}
}
Allows you to quickly verify the existence of an Individual/Corporate customer profile (CIF) that you’ve created.
first_name | string First Name of the customer. |
middle_name | string Middle Name of the customer. |
last_name | string Last Name of the customer. |
dob | string Date of birth in the format 'YYYY-MM-DD'. |
{- "active": true,
- "exists": true
}
Allows you to retrieve the list of valid values for the Create Customer API parameters that require a specific set of values
{- "types": {
- "civil_status": {
- "codes": {
- "DIVORCED": {
- "description": "Divorced"
}, - "MARRIED": {
- "description": "Married"
}, - "SEPARATED": {
- "description": "Separated"
}, - "SINGLE": {
- "description": "Single"
}, - "WIDOWED": {
- "description": "Widowed"
}, - "WITH_COMMON_LAW_PARTNER": {
- "description": "With common law partner"
}
}
}, - "gender": {
- "codes": {
- "FEMALE": {
- "description": "Female"
}, - "MALE": {
- "description": "Male"
}
}
}
}
}
PRODUCT OVERVIEW
Product Name | Disburse-To-Account |
Product Description | A service that will allow you to disburse funds or payout directly to local bank/e-wallet accounts of your end-users or internal business partners. Process intra-bank fund transfer (Netbank Account to Netbank Account), inter-bank fund transfer (Netbank Account to Other Bank Account), and wallet top up (Netbank Account to e-Wallet) via a single API, via the File Upload Platform, or via a White-Labeled App. |
Use Case | To be able process intra-bank fund transfer (Disbursement to a Netbank Accounts), inter-bank fund transfer (Disbursement to Other Bank Accounts or e-Wallets) through PESONet via a single API Integration or File Upload. With this solution, you can offer or utilize a service that will allow you and your customers to send funds to any bank or select e-wallet accounts |
Sandbox Base URL | http://api-sandbox.netbank.ph |
UAT Base URL | http://api-uat.netbank.ph/ |
PROD Base URL | - |
Allows you to get the latest list of banks and wallets that can receive disbursement transactions.
{- "banks": {
- "AIIPPHM1XXX": {
- "full_name": "AL-AMANAH ISLAMIC BANK",
- "settlement_rail": {
- "PESONET": {
- "bank_code": "AIIPPHM1XXX",
- "name": "PESONET"
}
}, - "swift_bic": "AIIPPHM1XXX"
}, - "ALKBPHM2XXX": {
- "full_name": "AllBank, Inc.",
- "settlement_rail": {
- "PESONET": {
- "bank_code": "ALKBPHM2XXX",
- "name": "PESONET"
}
}, - "swift_bic": "ALKBPHM2XXX"
}
}
}
Allows you to check the system status of the PESONet, Instapay, and Netbank-to-Netbank Fund Transfer service.
service_name required | string Name of the service that you want to check. |
{- "status": "UP",
- "system_date": "2021-12-05T18:31:32.000Z",
- "target": "PESONET"
}
Allows you to cancel a PESONet transaction that you’ve triggered as long as it’s within the processing cut-off
transaction_id required | string The id that is associated by our platform to the disbursement transaction |
{- "message": "string",
- "status": "string",
- "updated": "2019-08-24T14:15:22Z"
}
Allows you to trigger a fund transfer from your Netbank Bank Account to another Netbank Bank Account (DIRECT) or a bank/e-wallet account in other financial institutions (INSTAPAY or PESONET).
reference_id required | string API User’s own unique reference code. |
settlement_rail required | string The mode of fund transfer. |
source_account_number required | string Netbank Bank Account Number where the funds will be drawn/debited from. |
required | object Contains the details of the sending entity. |
required | object Contains the details of the bank account where funds will be credited to. |
required | object Contains the details of the receiving entity. |
remarks | string Additional information regarding the transaction. |
required | object Amount defines a transaction amount. |
{- "reference_id": "01",
- "settlement_rail": "PESONET",
- "source_account_number": "039-01-00001-7",
- "sender": {
- "address": {
- "address1": "Francisco st",
- "city": "Pasig",
- "country": "PH",
- "postal_code": "1605"
}, - "customer_id": "2007",
- "mobile_no": "string",
- "name": "Sender Name"
}, - "destination_account": {
- "account_number": "101238071855",
- "bank_code": "RBSMPHMMXXX"
}, - "recipient": {
- "address": {
- "address1": "Riverfront",
- "city": "Pasig",
- "country": "PH",
- "postal_code": "1606"
}, - "mobile_no": "6393270777",
- "name": "Recipient Name"
}, - "remarks": "Remarks",
- "amount": {
- "cur": "PHP",
- "num": "100000"
}
}
{- "transaction_id": "505873"
}
Allows you to retrieve the details of a fund transfer transaction that you’ve triggered.
transaction_id required | string The id that is associated by our platform to the disbursement transaction. |
{- "amount": {
- "cur": "PHP",
- "num": "100000"
}, - "destination_account": {
- "account_number": "00501000064",
- "bank_code": "ALKBPHM2XXX"
}, - "recipient": {
- "address": "test address",
- "customer_id": "1369",
- "first_name": "FTest",
- "last_name": "LTest",
- "location": {
- "latitude": 80,
- "longitude": 80
}, - "middle_name": "MTest",
- "mobile_no": "6393270777"
}, - "reference_id": "01",
- "remarks": "Remarks",
- "sender": {
- "address": "test address",
- "customer_id": "1340",
- "first_name": "FTest",
- "last_name": "LTest",
- "location": {
- "latitude": 80,
- "longitude": 80
}, - "middle_name": "MTest",
- "mobile_no": "string"
}, - "settlement_rail": "PESONET",
- "source_account_number": "005-01-00007-2",
- "status": "PENDING"
}
A Webhook is a notification mechanism that allows you to receive information from specific events taking place in various kinds of transactions or operations such as when funds are credited to an account.
Compared to running cron jobs or polling an endpoint, webhooks are a more scalable alternative as it is a push notification service which is less system intensive.
Important:
Despite the convenience that it affords, implementation designs with complete dependency on webhook notifications should be avoided. Just like with any other service, 100% perpetual uptime cannot be expected.
Contingencies and backup exception handling should be put in place in the event that the webhook service is down or unavailable due to various reasons. These measures may include utilizing 1. the available Transaction History or Transaction Detail endpoints to confirm the status of a disbursement or collection and 2. the Transaction Page of the Netbank Virtual Partner Dashboard.
In order to receive webhooks, a dedicated endpoint needs to be set up on your end as a receiver or listener that can accept HTTP POST requests. This endpoint needs to be provided to Netbank to be registered in the service for you to begin receiving notifications.
Your endpoint should expect to receive content-type text/plain;charset=ISO-8859-1
IP whitelisting is the security mechanism that Netbank employs on its webhook service. Notifications are sent from the following IP addresses:
The retry mechanism is a way of ensuring that webhook events are delivered to the destination server in case of failures. The webhook service will retry if we are not able to establish any HTTP connection to your endpoint.
In case of non-200 responses, the webhook service will account for this response and will not retry.
Retries will follow the timing below:
1st retry: 1 min
2nd retry: 4 min
3rd retry: 16 min
4th retry: 64 min
5th retry: 256 min (~4h)
Currently, we can support to provide webhooks for the following events:
PROCESS_DIRECT_INCOMING_FUND_TRANSFER
ECPAY
deposit{ }
{- "alias": null,
- "amount": null,
- "channel": "string",
- "commandId": null,
- "externalTransferStatus": "string",
- "operationId": null,
- "productBranchCode": null,
- "recipientAccountName": "string",
- "recipientAccountNumber": "string",
- "recipientAccountNumberBankFormat": "string",
- "referenceCode": "string",
- "referenceNumber": "string",
- "registrationTime": null,
- "remarks": "string"
}
ACCOUNT_TRANSFER_TO_PRODUCT
{ }
{- "Remarks": "string",
- "Sender": {
- "accountNumber": "string",
- "institutionCode": "string",
- "name": "string"
}, - "alias": "string",
- "amount": 0,
- "channel": "string",
- "commandId": null,
- "operationId": 0,
- "productBranchCode": "string",
- "productId": "string",
- "recipient": {
- "accountNumber": "string",
- "institutionCode": "string",
- "name": "string"
}, - "recipientAccountNumberBankFormat": "string",
- "referenceCode": "string",
- "registrationTime": "string",
- "targetProductBranchCode": "string"
}
{ }
{- "alias": "string",
- "amount": 0,
- "channel": "string",
- "externalTransferStatus": "string",
- "operationId": 0,
- "productBranchCode": "string",
- "recipientAccountNumber": "string",
- "recipientAccountNumberBankFormat": "string",
- "referenceCode": "string",
- "referenceNumber": "string",
- "registrationTime": "string",
- "remarks": "string",
- "sender": {
- "accountNumber": "string",
- "institutionCode": "string",
- "name": "string"
}, - "transferType": "string"
}
ACCOUNT_TRANSFER_TO_PRODUCT
{ }
{- "Remarks": "string",
- "Sender": {
- "accountNumber": "string",
- "institutionCode": "string",
- "name": "string"
}, - "alias": "string",
- "amount": 0,
- "channel": "string",
- "commandId": null,
- "operationId": 0,
- "productBranchCode": "string",
- "recipient": {
- "accountNumber": "string",
- "institutionCode": "string",
- "name": "string"
}, - "recipientAccountNumberBankFormat": "string",
- "referenceCode": "string",
- "registrationTime": "string",
- "targetProductBranchCode": "string"
}
Event name:TRANSFER_STATUS_CHANGE
Timing: sent whenever a disbursement sent through Instapay or Pesonet changes its settlement status
INSTAPAY: 1 webhook is sent to update the status to either SETTLED or REJECTED
PESONET: 1 webhook is sent to update the status to FOR_SETTLEMENT; 1 webhook is sent again thereafter to update the status to either SETTLED or REJECTED
{ }
{- "amount": 0,
- "channel": "string",
- "operationId": 0,
- "ownerCifNumber": "string",
- "productBranchCode": "string",
- "purpose": "string",
- "recipientAccountNumber": "string",
- "referenceNumber": "string",
- "registrationTime": "string",
- "remarks": "string",
- "senderAccountNumber": "string",
- "status": "string",
- "statusCode": "string",
- "transferType": "string",
- "uuid": "string"
}
Event name:TRANSFER_STATUS_CHANGE
Timing: sent whenever a disbursement sent through Instapay or Pesonet changes its settlement status
INSTAPAY: 1 webhook is sent to update the status to either SETTLED or REJECTED
PESONET: 1 webhook is sent to update the status to FOR_SETTLEMENT; 1 webhook is sent again thereafter to update the status to either SETTLED or REJECTED
{ }
{- "amount": 0,
- "channel": "string",
- "operationId": 0,
- "ownerCifNumber": "string",
- "productBranchCode": "string",
- "purpose": "string",
- "recipientAccountNumber": "string",
- "referenceNumber": "string",
- "registrationTime": "string",
- "remarks": "string",
- "senderAccountNumber": "string",
- "status": "string",
- "statusCode": "string",
- "transferType": "string",
- "uuid": "string"
}
Event name:TRANSFER_STATUS_CHANGE
Timing: sent whenever a disbursement sent through Instapay or Pesonet changes its settlement status
INSTAPAY: 1 webhook is sent to update the status to either SETTLED or REJECTED
PESONET: 1 webhook is sent to update the status to FOR_SETTLEMENT; 1 webhook is sent again thereafter to update the status to either SETTLED or REJECTED
{ }
{- "amount": 0,
- "channel": "string",
- "operationId": 0,
- "ownerCifNumber": "string",
- "productBranchCode": "string",
- "purpose": "string",
- "recipientAccountNumber": "string",
- "referenceNumber": "string",
- "registrationTime": "string",
- "remarks": "string",
- "senderAccountNumber": "string",
- "status": "string",
- "statusCode": "string",
- "transferType": "string",
- "uuid": "string"
}
Event name:TRANSFER_STATUS_CHANGE
Timing: sent whenever a disbursement sent through Instapay or Pesonet changes its settlement status
INSTAPAY: 1 webhook is sent to update the status to either SETTLED or REJECTED
PESONET: 1 webhook is sent to update the status to SETTLED; 1 webhook is sent again thereafter to update the status to either SETTLED or REJECTED
{ }
{- "amount": 0,
- "channel": "string",
- "operationId": 0,
- "ownerCifNumber": "string",
- "productBranchCode": "string",
- "purpose": "string",
- "recipientAccountNumber": "string",
- "referenceNumber": "string",
- "registrationTime": "string",
- "remarks": "string",
- "senderAccountNumber": "string",
- "status": "string",
- "statusCode": "string",
- "transferType": "string",
- "uuid": "string"
}
Event name:TRANSFER_STATUS_CHANGE
Timing: sent whenever a disbursement sent through Instapay or Pesonet changes its settlement status
INSTAPAY: 1 webhook is sent to update the status to either SETTLED or REJECTED
PESONET: 1 webhook is sent to update the status to SETTLED; 1 webhook is sent again thereafter to update the status to either SETTLED or REJECTED
{ }
{- "amount": 0,
- "channel": "string",
- "operationId": 0,
- "ownerCifNumber": "string",
- "productBranchCode": "string",
- "purpose": "string",
- "recipientAccountNumber": "string",
- "referenceNumber": "string",
- "registrationTime": "string",
- "remarks": "string",
- "senderAccountNumber": "string",
- "status": "string",
- "statusCode": "string",
- "transferType": "string",
- "uuid": "string"
}
PAY_LOAN
{ }
{- "amount": 0,
- "channel": "string",
- "checkNo": 0,
- "commandId": 0,
- "currentAmortizationDueDate": "string",
- "customerEffectiveName": "string",
- "customerFirstName": "string",
- "customerLastName": "string",
- "loanAccountNumber": "string",
- "loanId": "string",
- "nextDueDate": "string",
- "operationId": 0,
- "outstandingAmortizations": "string",
- "outstandingBalance": 0,
- "paymentStatus": "string",
- "paymentType": "string",
- "productBranchCode": "string",
- "sourceAccount": "string",
- "sourceAccountBranchCode": "string",
- "sourceAccountSenderName": "string",
- "transactionDate": "string"
}
Create a customer loan.
customer_id required | string The id that is associated by our banking platform |
issuance_type required | string Enum: "UNKNOWN" "IssueNew" The type of loan issuance to process. |
loan_type required | string The type of loan to issue. |
required | object The amount of money to be borrowed |
credit_line | string Identifier of credit line to associate with the loan. |
attach_documents | array Attach submitted documents to the loan. |
reference_id | string API User’s own unique reference code. |
schedule_code required | string Schedule of repayment installments. |
amortization_count required | integer Total number of planned installments in the full repayment schedule. |
interest_rate required | string Annual interest rate applied to the loan interest accrual calculations. |
object First installment due date. | |
loan_officer | string The id that is associated by our banking platform |
loan_collector | string The id that is associated by our banking platform |
linked_account | string Register an account for auto-debit on the installment due date. |
co_signer | array Customer ids of loan cosigners. |
remarks | string Additional remarks/comment on the loan |
object Options for fund release. Default general ledger. | |
rate_type | string The type of loan rate to process. |
extra_number | string Additional reference ID for the loan account |
{- "customer_id": "string",
- "issuance_type": "UNKNOWN",
- "loan_type": "string",
- "principal_amount": {
- "cur": "string",
- "num": "string"
}, - "credit_line": "string",
- "attach_documents": [ ],
- "reference_id": "string",
- "schedule_code": "string",
- "amortization_count": 0,
- "interest_rate": "string",
- "amortization_due": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "loan_officer": "string",
- "loan_collector": "string",
- "linked_account": "string",
- "co_signer": [ ],
- "remarks": "string",
- "release_option": {
- "method": "UnknownRelease",
- "account_number": "string"
}, - "rate_type": "string",
- "extra_number": "string"
}
{- "account_number": "string",
- "status": "string",
- "transaction_id": "string"
}
customer_id required | string The id that is associated by our banking platform |
issuance_type required | string Enum: "UNKNOWN" "IssueNew" The type of loan issuance to process. |
loan_type required | string The type of loan to issue. |
required | object The amount of money to be borrowed |
credit_line | string Identifier of credit line to associate with the loan. |
attach_documents | array Attach submitted documents to the loan. |
reference_id | string API User’s own unique reference code. |
schedule_code required | string Schedule of repayment installments. |
amortization_count required | integer Total number of planned installments in the full repayment schedule. |
interest_rate required | string Annual interest rate applied to the loan interest accrual calculations. |
object First installment due date. | |
loan_officer | string The id that is associated by our banking platform |
loan_collector | string The id that is associated by our banking platform |
linked_account | string Register an account for auto-debit on the installment due date. |
co_signer | array Customer ids of loan cosigners. |
remarks | string Additional remarks/comment on the loan |
rate_type | string The type of loan rate to process. |
required | object Transfer details |
extra_number | string Additional reference ID for the loan account |
{- "customer_id": "string",
- "issuance_type": "UNKNOWN",
- "loan_type": "string",
- "principal_amount": {
- "cur": "string",
- "num": "string"
}, - "credit_line": "string",
- "attach_documents": [ ],
- "reference_id": "string",
- "schedule_code": "string",
- "amortization_count": 0,
- "interest_rate": "string",
- "amortization_due": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "loan_officer": "string",
- "loan_collector": "string",
- "linked_account": "string",
- "co_signer": [ ],
- "remarks": "string",
- "rate_type": "string",
- "transfer": {
- "destination_account_name": "string",
- "destination_account_number": "string",
- "destination_bic": "string",
- "settlement_rail": "string",
- "source_account_number": "string"
}, - "extra_number": "string"
}
{- "account_number": "string",
- "fund_transfer": {
- "message": "string",
- "status": "string",
- "transaction_id": "string"
}, - "status": "string"
}
Get loan information using the loan account number
account_number required | string |
{- "account_number": "string",
- "accrual_limit": 0,
- "accrual_period": "string",
- "accrued_interest": {
- "cur": "string",
- "num": "string"
}, - "advance_interest_amount": {
- "cur": "string",
- "num": "string"
}, - "advance_interest_application": "string",
- "advance_interest_no": 0,
- "allow_accrual": true,
- "amortization_schedule": {
- "list": [
- {
- "amortization_amount": {
- "cur": "string",
- "num": "string"
}, - "amortization_balance": {
- "cur": "string",
- "num": "string"
}, - "amortized_fees": [
- {
- "amortization_line_number": 0,
- "amount": {
- "cur": "string",
- "num": "string"
}, - "balance": {
- "cur": "string",
- "num": "string"
}, - "fee_definition_id": "string",
- "fee_id": "string",
- "id": "string"
}
], - "as_earned_interest_amount": {
- "cur": "string",
- "num": "string"
}, - "as_earned_interest_balance": {
- "cur": "string",
- "num": "string"
}, - "cbu_charge_amount": {
- "cur": "string",
- "num": "string"
}, - "cbu_charge_balance": {
- "cur": "string",
- "num": "string"
}, - "custom_fees_amount": {
- "cur": "string",
- "num": "string"
}, - "custom_fees_balance": {
- "cur": "string",
- "num": "string"
}, - "date_paid": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "days_late": 0,
- "due_date": "string",
- "id": "string",
- "interest_amount": {
- "cur": "string",
- "num": "string"
}, - "interest_balance": {
- "cur": "string",
- "num": "string"
}, - "last_added_past_due_interest_amount": {
- "cur": "string",
- "num": "string"
}, - "last_added_penalty_amount": {
- "cur": "string",
- "num": "string"
}, - "last_past_due_interest_applied_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "last_penalty_application_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "line_number": 0,
- "loan_id": "string",
- "loan_outstanding_balance": {
- "cur": "string",
- "num": "string"
}, - "past_due_interest_amount": {
- "cur": "string",
- "num": "string"
}, - "past_due_interest_balance": {
- "cur": "string",
- "num": "string"
}, - "past_due_maturity_interest_amount": {
- "cur": "string",
- "num": "string"
}, - "past_due_maturity_interest_balance": {
- "cur": "string",
- "num": "string"
}, - "penalty_amount": {
- "cur": "string",
- "num": "string"
}, - "penalty_balance": {
- "cur": "string",
- "num": "string"
}, - "penalty_maturity_amount": {
- "cur": "string",
- "num": "string"
}, - "penalty_maturity_balance": {
- "cur": "string",
- "num": "string"
}, - "pf_charge_amount": {
- "cur": "string",
- "num": "string"
}, - "pf_charge_balance": {
- "cur": "string",
- "num": "string"
}, - "principal_amount": {
- "cur": "string",
- "num": "string"
}, - "principal_balance": {
- "cur": "string",
- "num": "string"
}, - "status": "string",
- "total_past_due_interest_amount": {
- "cur": "string",
- "num": "string"
}, - "total_past_due_interest_balance": {
- "cur": "string",
- "num": "string"
}, - "total_penalty_amount": {
- "cur": "string",
- "num": "string"
}, - "total_penalty_balance": {
- "cur": "string",
- "num": "string"
}, - "tp_charge_amount": {
- "cur": "string",
- "num": "string"
}, - "tp_charge_balance": {
- "cur": "string",
- "num": "string"
}
}
], - "size": 0,
- "total_amount": {
- "cbu_charge": {
- "cur": "string",
- "num": "string"
}, - "custom_fees": {
- "cur": "string",
- "num": "string"
}, - "interest": {
- "cur": "string",
- "num": "string"
}, - "past_due_interest": {
- "cur": "string",
- "num": "string"
}, - "past_due_maturity_interest": {
- "cur": "string",
- "num": "string"
}, - "penalty": {
- "cur": "string",
- "num": "string"
}, - "penalty_maturity": {
- "cur": "string",
- "num": "string"
}, - "pf_charge": {
- "cur": "string",
- "num": "string"
}, - "principal": {
- "cur": "string",
- "num": "string"
}, - "total": {
- "cur": "string",
- "num": "string"
}, - "total_due": {
- "cur": "string",
- "num": "string"
}, - "total_past_due_interest": {
- "cur": "string",
- "num": "string"
}, - "total_penalty": {
- "cur": "string",
- "num": "string"
}, - "tp_charge": {
- "cur": "string",
- "num": "string"
}, - "uid_interest": {
- "cur": "string",
- "num": "string"
}
}, - "total_arrears": {
- "cbu_charge": {
- "cur": "string",
- "num": "string"
}, - "custom_fees": {
- "cur": "string",
- "num": "string"
}, - "interest": {
- "cur": "string",
- "num": "string"
}, - "past_due_interest": {
- "cur": "string",
- "num": "string"
}, - "past_due_maturity_interest": {
- "cur": "string",
- "num": "string"
}, - "penalty": {
- "cur": "string",
- "num": "string"
}, - "penalty_maturity": {
- "cur": "string",
- "num": "string"
}, - "pf_charge": {
- "cur": "string",
- "num": "string"
}, - "principal": {
- "cur": "string",
- "num": "string"
}, - "total": {
- "cur": "string",
- "num": "string"
}, - "total_due": {
- "cur": "string",
- "num": "string"
}, - "total_past_due_interest": {
- "cur": "string",
- "num": "string"
}, - "total_penalty": {
- "cur": "string",
- "num": "string"
}, - "tp_charge": {
- "cur": "string",
- "num": "string"
}, - "uid_interest": {
- "cur": "string",
- "num": "string"
}
}, - "total_balance": {
- "cbu_charge": {
- "cur": "string",
- "num": "string"
}, - "custom_fees": {
- "cur": "string",
- "num": "string"
}, - "interest": {
- "cur": "string",
- "num": "string"
}, - "past_due_interest": {
- "cur": "string",
- "num": "string"
}, - "past_due_maturity_interest": {
- "cur": "string",
- "num": "string"
}, - "penalty": {
- "cur": "string",
- "num": "string"
}, - "penalty_maturity": {
- "cur": "string",
- "num": "string"
}, - "pf_charge": {
- "cur": "string",
- "num": "string"
}, - "principal": {
- "cur": "string",
- "num": "string"
}, - "total": {
- "cur": "string",
- "num": "string"
}, - "total_due": {
- "cur": "string",
- "num": "string"
}, - "total_past_due_interest": {
- "cur": "string",
- "num": "string"
}, - "total_penalty": {
- "cur": "string",
- "num": "string"
}, - "tp_charge": {
- "cur": "string",
- "num": "string"
}, - "uid_interest": {
- "cur": "string",
- "num": "string"
}
}
}, - "application_fee": {
- "cur": "string",
- "num": "string"
}, - "application_fee_already_paid": true,
- "as_earned_interest_calculation": true,
- "balance": {
- "cur": "string",
- "num": "string"
}, - "calculated_first_amortization_due_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "category_ids": [
- "string"
], - "cbu_fund_account_id": "string",
- "cbu_hold_id": "string",
- "cbu_savings_account_id": "string",
- "check_preparation_id": "string",
- "closed_on": "string",
- "co_makers": [
- "string"
], - "collector_id": "string",
- "comments": "string",
- "created_on": "string",
- "creation_type": "string",
- "credit_investigation_fee": {
- "cur": "string",
- "num": "string"
}, - "credit_investigation_fee_already_paid": true,
- "credit_line_id": "string",
- "customer_id": "string",
- "cycle": 0,
- "days_in_year": 0,
- "definition_id": "string",
- "dep_ed_income_source_id": "string",
- "dep_ed_policy_number": "string",
- "diminishing_amortization_number": 0,
- "discount_charges_ledger": {
- "list": [
- {
- "accretion_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "balance": {
- "cur": "string",
- "num": "string"
}, - "days": 0,
- "id": "string",
- "income": {
- "cur": "string",
- "num": "string"
}, - "line_number": 0,
- "loan_id": "string",
- "status": "string",
- "unearned": {
- "cur": "string",
- "num": "string"
}
}
], - "total_days": 0,
- "total_income": {
- "cur": "string",
- "num": "string"
}, - "total_unearned_interest": {
- "cur": "string",
- "num": "string"
}
}, - "discount_charges_rate": "string",
- "doc_stamp": {
- "cur": "string",
- "num": "string"
}, - "doc_stamp_already_paid": true,
- "eir_annual": "string",
- "eir_monthly": {
- "cur": "string",
- "num": "string"
}, - "eir_periodic": "string",
- "extra_bank_fee": {
- "cur": "string",
- "num": "string"
}, - "extra_bank_fee_already_paid": true,
- "extra_number": "string",
- "first_amortization_due_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "grace_period": 0,
- "grant_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "gross_eir_annual": "string",
- "gross_eir_periodic": "string",
- "group_loan_id": "string",
- "group_loan_name": "string",
- "holds_balance": {
- "cur": "string",
- "num": "string"
}, - "id": "string",
- "id_fee": {
- "cur": "string",
- "num": "string"
}, - "id_fee_already_paid": true,
- "insurance_fee": {
- "cur": "string",
- "num": "string"
}, - "insurance_fee_already_paid": true,
- "insurance_processing_fee": {
- "cur": "string",
- "num": "string"
}, - "insurance_processing_fee_already_paid": true,
- "insurance_service_fee": {
- "cur": "string",
- "num": "string"
}, - "insurance_service_fee_already_paid": true,
- "interest_amount": {
- "cur": "string",
- "num": "string"
}, - "interest_balance": {
- "cur": "string",
- "num": "string"
}, - "interest_calculation_parameter": 0,
- "interest_rate": "string",
- "interest_type": "string",
- "last_accrual_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "last_customer_transaction": "string",
- "last_transaction": "string",
- "late_check_awaiting_amount": {
- "cur": "string",
- "num": "string"
}, - "latest_irreversible_operation": "string",
- "linked_deposit_account_id": "string",
- "loan_documents": [
- {
- "document_number": "string",
- "document_type": "string",
- "file_id": "string",
- "id": "string",
- "loan_id": "string",
- "name": "string",
- "remarks": "string",
- "status": "string"
}
], - "loan_information": {
- "cic_contract_type": "string",
- "loan_borrower_type": "string",
- "loan_class": "string",
- "loan_economic_activity": "string",
- "loan_industry_purpose": "string",
- "loan_microfinance_classification": "string",
- "loan_microfinance_client_type": "string",
- "loan_purpose": "string",
- "loan_rate_type": "string",
- "loan_security": "string",
- "loan_transaction_type": "string",
- "mis_group": "string"
}, - "loss_allowance": {
- "cur": "string",
- "num": "string"
}, - "mapping_attributes": {
- "mis_code": 0,
- "restructured": true,
- "written_off": true
}, - "maturity_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "membership_fee": {
- "cur": "string",
- "num": "string"
}, - "membership_fee_already_paid": true,
- "metadata": {
- "impaired": true,
- "litigation": true,
- "manual_metadata": true,
- "past_due_classification": "string",
- "performance": "string",
- "provision_rate": "string",
- "restructured": true
}, - "monthly_interest_rate": "string",
- "negative_information": {
- "negative_information_id": "string",
- "probability_of_default": "string",
- "remarks": "string"
}, - "notarial_fee": {
- "cur": "string",
- "num": "string"
}, - "notarial_fee_alreadyPaid": true,
- "officer_id": "string",
- "opening_deductions": {
- "cur": "string",
- "num": "string"
}, - "origin": "string",
- "override_amortization_amount": {
- "cur": "string",
- "num": "string"
}, - "past_due_interest_charge": {
- "rate": "string",
- "type": "string"
}, - "past_due_maturity_interest_charge": {
- "rate": "string",
- "type": "string"
}, - "payment_interval_definition": {
- "accrual_limit": 0,
- "base_payment_interval": "string",
- "cic_payment_periodicity": "string",
- "id": "string",
- "interval_count": 0,
- "midas_payment_periodicity": "string",
- "name": "string",
- "payment_days": [
- 0
], - "payment_interval_type": "string"
}, - "penalty_maturity": {
- "rate": "string",
- "type": "string"
}, - "penalty_maturity_collection_type": "string",
- "pf_hold_id": "string",
- "pf_savings_account_id": "string",
- "principal_amount": {
- "cur": "string",
- "num": "string"
}, - "principal_balance": {
- "cur": "string",
- "num": "string"
}, - "release_allowed_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "release_amount": {
- "cur": "string",
- "num": "string"
}, - "release_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "remade_from_loan_ids": [
- "string"
], - "remade_to": "string",
- "renewed_loan_id": "string",
- "service_charge": {
- "cur": "string",
- "num": "string"
}, - "service_charge_already_paid": true,
- "simulated_amortized_fees": [
- {
- "amortization_line_number": 0,
- "amount": {
- "cur": "string",
- "num": "string"
}, - "balance": {
- "cur": "string",
- "num": "string"
}, - "fee_definition_id": "string",
- "fee_id": "string",
- "id": "string"
}
], - "simulated_fees": [
- {
- "amount": {
- "cur": "string",
- "num": "string"
}, - "applied_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "apply_on": "string",
- "apply_predicates": [
- {
- "compare_mode": "string",
- "type": "string"
}
], - "balance": {
- "cur": "string",
- "num": "string"
}, - "bank_expense": true,
- "created_date": "string",
- "fee_definition_id": "string",
- "for_accretion": true,
- "id": "string",
- "operation_id": "string",
- "original_amount": {
- "cur": "string",
- "num": "string"
}, - "original_percentage": "string",
- "paid_upfront": true,
- "percentage": "string",
- "product_id": "string"
}
], - "status": "string",
- "term": 0,
- "term_adjustment": 0,
- "total_amortization_number": 0,
- "total_default_fees": {
- "cur": "string",
- "num": "string"
}, - "tp_hold_id": "string",
- "tp_savings_account_id": "string",
- "type": "string",
- "uid_amortization_number": 0,
- "uid_application": "string",
- "uid_ledger": {
- "list": [
- {
- "balance": {
- "cur": "string",
- "num": "string"
}, - "date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "days": 0,
- "id": "string",
- "income": {
- "cur": "string",
- "num": "string"
}, - "line_number": 0,
- "loan_id": "string",
- "status": "string",
- "unearned_interest": {
- "cur": "string",
- "num": "string"
}
}
], - "total_days": 0,
- "total_income": {
- "cur": "string",
- "num": "string"
}, - "total_unearned_interest": {
- "cur": "string",
- "num": "string"
}
}, - "write_off_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}
}
List all available lines of credit for a customer.
customer_id required | string The id that is associated by our banking platform |
{- "available_credit": {
- "cur": "string",
- "num": "string"
}, - "credit_lines": [
- {
- "available_credit": {
- "cur": "string",
- "num": "string"
}, - "closed_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "credit_line": {
- "cur": "string",
- "num": "string"
}, - "credit_line_id": "string",
- "description": "string",
- "expiration_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "grant_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "loan_types": [
- "string"
], - "replenishment_type": "Revolving",
- "status": "Active"
}
], - "customer_id": "string",
- "total_credit": {
- "cur": "string",
- "num": "string"
}
}
Process immediate payment on a loan.
loan_account_number required | string The account number that was returned by the Create Loan endpoint. |
reference_id | string API User’s own unique reference code. |
bank_account_number required | string Netbank Bank Account Number where the funds will be drawn/debited from to pay the loan. |
loan_account_number required | string The account number that was returned by the Create Loan endpoint. |
receipt_type required | string Enum: "TemporaryReceipt" "OfficialReceipt" Type of receipt issued to customer for payment records. |
receipt_number required | string Receipt identifier. |
remarks | string Payment remarks. |
required | object Amount defines a transaction amount. |
{- "reference_id": "string",
- "bank_account_number": "string",
- "loan_account_number": "string",
- "receipt_type": "TemporaryReceipt",
- "receipt_number": "string",
- "remarks": "string",
- "amount": {
- "cur": "string",
- "num": "string"
}
}
{- "transaction_id": "string"
}
Create a line of credit for a customer.
customer_id | string The id that is associated by our banking platform |
object Approved credit line amount. | |
loan_types | array Allowed loan types that can use this credit line. |
description | string Credit line description. |
object Grant date of the line of credit. | |
object Expiration date of the credit. | |
replenishment | string Enum: "Revolving" "NonRevolving" Credit replenishment pattern. |
{- "customer_id": "string",
- "credit_line": {
- "cur": "string",
- "num": "string"
}, - "loan_types": [ ],
- "description": "string",
- "grant_date": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "expiration_date": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "replenishment": "Revolving"
}
{- "credit_line_id": "string"
}
This API will allow Netbank Partners to: Update the credit lines that they have created under their own branch
customer_id required | string The id that is associated by our banking platform to the individual or corporate/business customer record. The customer_id is returned by the successful response of either the Create Customer API or Create Corporate Customer API. |
credit_line_id required | string The id that is associated by our banking platform to the created credit line. The credit_line_id is returned by the successful response of Create Credit Line API. |
object The approved credit line amount that you intend to update. | |
loan_types | array Allowed loan types that can use this credit line. |
object Expiration date of the line of credit. | |
replenishment | string Enum: "Revolving" "NonRevolving" Defines the approach on how the credit line will be replenished. |
description | string Additional notes and description about the credit line |
{- "customer_id": "string",
- "credit_line_id": "string",
- "credit_line": {
- "cur": "string",
- "num": "string"
}, - "loan_types": [ ],
- "expiration_date": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "replenishment": "Revolving",
- "description": "string"
}
{- "transaction_id": "string",
- "updated_on": "string"
}
{- "available_loans": {
- "property1": {
- "active": true,
- "code": "string",
- "credit_line": true,
- "description": "string",
- "installment_schedule_options": [
- "string"
], - "loan_defaults": {
- "installment_count": 0,
- "interest_rate": "string",
- "issuance": "string"
}, - "max_amount": {
- "cur": "string",
- "num": "string"
}, - "max_interest": "string",
- "max_term": 0,
- "min_amount": {
- "cur": "string",
- "num": "string"
}, - "min_interest": "string",
- "min_term": 0,
- "name": "string",
- "purpose": "string",
- "renewal_threshold": "string"
}, - "property2": {
- "active": true,
- "code": "string",
- "credit_line": true,
- "description": "string",
- "installment_schedule_options": [
- "string"
], - "loan_defaults": {
- "installment_count": 0,
- "interest_rate": "string",
- "issuance": "string"
}, - "max_amount": {
- "cur": "string",
- "num": "string"
}, - "max_interest": "string",
- "max_term": 0,
- "min_amount": {
- "cur": "string",
- "num": "string"
}, - "min_interest": "string",
- "min_term": 0,
- "name": "string",
- "purpose": "string",
- "renewal_threshold": "string"
}
}, - "installment_schedule": {
- "property1": {
- "accrual_limit": 0,
- "code": "string",
- "interval": {
- "installments": 0,
- "time_interval": "string"
}, - "name": "string",
- "payment_days": [
- 0
]
}, - "property2": {
- "accrual_limit": 0,
- "code": "string",
- "interval": {
- "installments": 0,
- "time_interval": "string"
}, - "name": "string",
- "payment_days": [
- 0
]
}
}, - "loan_rate_types": [
- "string"
]
}
Allows you to retrieve the details of a loan payment transaction that you’ve triggered.
transaction_id required | string Transaction identifier. |
{- "transaction": {
- "amount": {
- "cur": "string",
- "num": "string"
}, - "customer_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "loan_account": "string",
- "method": "string",
- "outstanding_balance": {
- "cur": "string",
- "num": "string"
}, - "overpayment": {
- "cur": "string",
- "num": "string"
}, - "payment_allocation": {
- "accrued_interest_paid": {
- "cur": "string",
- "num": "string"
}, - "interest_advance": {
- "cur": "string",
- "num": "string"
}, - "interest_due": {
- "cur": "string",
- "num": "string"
}, - "interest_paid": {
- "cur": "string",
- "num": "string"
}, - "interest_past_due": {
- "cur": "string",
- "num": "string"
}, - "principal_advance": {
- "cur": "string",
- "num": "string"
}, - "principal_due": {
- "cur": "string",
- "num": "string"
}, - "principal_paid": {
- "cur": "string",
- "num": "string"
}, - "principal_past_due": {
- "cur": "string",
- "num": "string"
}
}, - "source_account": "string",
- "transaction_id": "string"
}
}
Retrieve Loan Payment Transactions using loan account number
account_number required | string AccountNumber is the actual account number of the loan account created loan record. |
limit | integer <int32> Limit is number of search return of transactions. |
offset | integer <int32> Offset is number of items that should be skipped from the beginning of the result set. |
{- "has_more": true,
- "payments": [
- {
- "amount": {
- "cur": "string",
- "num": "string"
}, - "customer_id": "string",
- "date": "2019-08-24T14:15:22Z",
- "loan_account": "string",
- "method": "string",
- "outstanding_balance": {
- "cur": "string",
- "num": "string"
}, - "overpayment": {
- "cur": "string",
- "num": "string"
}, - "payment_allocation": {
- "accrued_interest_paid": {
- "cur": "string",
- "num": "string"
}, - "interest_advance": {
- "cur": "string",
- "num": "string"
}, - "interest_due": {
- "cur": "string",
- "num": "string"
}, - "interest_paid": {
- "cur": "string",
- "num": "string"
}, - "interest_past_due": {
- "cur": "string",
- "num": "string"
}, - "principal_advance": {
- "cur": "string",
- "num": "string"
}, - "principal_due": {
- "cur": "string",
- "num": "string"
}, - "principal_paid": {
- "cur": "string",
- "num": "string"
}, - "principal_past_due": {
- "cur": "string",
- "num": "string"
}
}, - "source_account": "string",
- "transaction_id": "string"
}
]
}
Simulate a customer loan.
customer_id required | string The id that is associated by our banking platform |
reference_id | string API User’s own unique reference code. |
issuance_type required | string Enum: "UNKNOWN" "IssueNew" The type of loan issuance to process. |
loan_type required | string The type of loan to issue. |
required | object The amount of money to be borrowed |
schedule_code required | string Schedule of repayment installments. |
amortization_count required | integer Total number of planned installments in the full repayment schedule. |
interest_rate required | string Annual interest rate applied to the loan interest accrual calculations. |
required | object Funds release scheduled date. |
object First installment due date. | |
rate_type | string The type of loan rate to process. |
{- "customer_id": "string",
- "reference_id": "string",
- "issuance_type": "UNKNOWN",
- "loan_type": "string",
- "principal_amount": {
- "cur": "string",
- "num": "string"
}, - "schedule_code": "string",
- "amortization_count": 0,
- "interest_rate": "string",
- "release_date": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "amortization_due": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "rate_type": "string"
}
{- "calculated_totals": {
- "amortization_count": 0,
- "interest_paid": {
- "cur": "string",
- "num": "string"
}, - "principal_amount": {
- "cur": "string",
- "num": "string"
}
}, - "customer_id": "string",
- "fees": {
- "application": {
- "cur": "string",
- "num": "string"
}, - "bank": {
- "cur": "string",
- "num": "string"
}, - "credit_investigation": {
- "cur": "string",
- "num": "string"
}, - "docstamp": {
- "cur": "string",
- "num": "string"
}, - "identification": {
- "cur": "string",
- "num": "string"
}, - "insurance": {
- "cur": "string",
- "num": "string"
}, - "insurance_processing": {
- "cur": "string",
- "num": "string"
}, - "insurance_service": {
- "cur": "string",
- "num": "string"
}, - "membership": {
- "cur": "string",
- "num": "string"
}, - "notary": {
- "cur": "string",
- "num": "string"
}, - "opening": {
- "cur": "string",
- "num": "string"
}, - "service": {
- "cur": "string",
- "num": "string"
}
}, - "grace_period": 0,
- "interest_rate": {
- "annual": "string",
- "effective": "string",
- "monthly": "string",
- "payment_interval": "string"
}, - "schedule": [
- {
- "additional_fee": {
- "cur": "string",
- "num": "string"
}, - "capital_build_up_fee": {
- "cur": "string",
- "num": "string"
}, - "due_date": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "interest_paid": {
- "cur": "string",
- "num": "string"
}, - "outstanding_balance": {
- "cur": "string",
- "num": "string"
}, - "payment": {
- "cur": "string",
- "num": "string"
}, - "principal_balance": {
- "cur": "string",
- "num": "string"
}, - "principal_paid": {
- "cur": "string",
- "num": "string"
}, - "program_fund_fee": {
- "cur": "string",
- "num": "string"
}, - "transfer_price_fee": {
- "cur": "string",
- "num": "string"
}
}
], - "simulated": {
- "day": 1,
- "month": 1,
- "year": 9999
}, - "term": 0,
- "year_length": 0
}
Submit supporting documents for loan applications.
customer_id required | string The id that is associated by our core banking platform to the individual or corporate/ business customer record. |
customer_id required | string The id that is associated by our core banking platform to the individual or corporate/ business customer record. |
document_name required | string Name of the id/document being uploaded. |
comments | string Additional comments or remarks regarding the id/document being uploaded. |
object The date when id/document being uploaded was received. | |
file required | string The Base64 encoded value of the id/document being uploaded. |
reference_id | string Document reference identifier. Can be generated by partner system or input by a user. |
{- "customer_id": "string",
- "document_name": "string",
- "comments": "string",
- "received": {
- "day": 0,
- "month": 0,
- "year": 0
}, - "file": "string",
- "reference_id": "string"
}
{- "document_id": "string",
- "processed": "2019-08-24T14:15:22Z"
}
Allow the Netbank Client to enroll a savings account to a recurring auto-debit payment to a loan account.
reference_id | string API User’s own unique reference code. |
bank_account_number required | string Netbank Bank Account Number where the funds will be drawn/debited from to pay the loan. |
loan_account_number required | string The productNumber that was returned by the Loan Approval Webhook for the loan that was created via Create Loan API. |
remarks | string Additional information regarding the transaction. |
strategy required | string Enum: "UnknownStrategy" "PARTIAL" "FULL" Determines how to collect the amount to be debited. |
schedule required | string Enum: "UnknownSchedule" "DAILY" "DUE_DATE" "MONTH_END" Determine on when debit will be processed. |
{- "reference_id": "string",
- "bank_account_number": "string",
- "loan_account_number": "string",
- "remarks": "string",
- "strategy": "UnknownStrategy",
- "schedule": "UnknownSchedule"
}
{- "autodebit_id": "string"
}
Under Development. Available only on api-sandbox.netbank.ph and api-uat.netbank.ph.
Allows you to decode a QRPH string that was scanned from an image.
qr_string | string Decoded string from QR code image. |
{- "amount": {
- "cur": "string",
- "num": "string"
}, - "destination_account": "string",
- "destination_bank_code": "string",
- "disburse_id": "string",
- "merchant_city": "string",
- "merchant_id": "string",
- "merchant_name": "string",
- "merchant_postcode": "string",
- "qr_transaction_type": "UnknownQRTransactionType",
- "qr_type": "UnknownQRType",
- "reference_number": "string"
}
Allows you to generate scannable QRPH images that conform to the standard.
qr_type required | string (Type of the payment QR code. Either static or dynamic) Enum: "UnknownQRType" "Static" "Dynamic"
|
qr_transaction_type required | string (Type of the payment QR code transaction. Either P2P or P2M) Enum: "UnknownQRTransactionType" "P2P" "P2M"
|
destination_account required | string Contains the details of the bank account where funds will be credited to. |
resolution | integer Defines the resolution in pixels of the image generated. Value of 480 will generate an image with dimension of 480x480. |
purpose | string Additional Data. Purpose of the transaction. Maximum character length 25. |
reference_id | string Additional Data. Any value defined by the merchant in order to identify the transaction. Maximum character length 25. |
store_label | string A distinctive label associated to a store of the merchant. Maximum character length 15. |
merchant_name required | string Name that might get displayed to the end user. |
merchant_city required | string City of the destination merchant. |
merchant_id | string MerchantID Identifier of merchant present in P2M codes. |
generate_additional_fields | boolean GenerateAdditionalFields Identifies if the additional data will be included in the generated QR. Most of the bank do not support additional data and results to 'Invalid QR'. Defaults to false. |
object Amount defines a transaction amount. |
{- "qr_type": "UnknownQRType",
- "qr_transaction_type": "UnknownQRTransactionType",
- "destination_account": "string",
- "resolution": 0,
- "purpose": "string",
- "reference_id": "string",
- "store_label": "string",
- "merchant_name": "string",
- "merchant_city": "string",
- "merchant_id": "string",
- "generate_additional_fields": true,
- "amount": {
- "cur": "string",
- "num": "string"
}
}
{- "qr_code": "string"
}
Under Development. Available only on api-sandbox.netbank.ph and api-uat.netbank.ph.
Allows you to trigger a disbursement with the decoded QRPH disburse id from your Netbank Bank Account.
disburse_id required | string Identifier from 'Decode QRPH string'. The details from the decoded QRPH code will be used to create a disbursement. |
source_account_number required | string Netbank Bank Account Number where the funds will be drawn/debited from. |
reference_id | string API User's own unique reference code. |
object Amount defines a transaction amount. |
{- "disburse_id": "string",
- "source_account_number": "string",
- "reference_id": "string",
- "amount": {
- "cur": "string",
- "num": "string"
}
}
{- "transaction_id": "505873"
}
Allows you to Send an SMS.
body required | string The content body of the document. |
content_type required | string The MIME type of the content body. |
date required | string The date of the document.Format can be: |
delivery_receipt_url | string URL where the Messaging Gateway will attempt to POST the status of the document. |
from_alias | string alphanumeric up to 11 characters. |
message_id | string globally unique identifier of the document message. |
to required | string The destination of the document;For MT documents, this will be the mobile number OR a masked-mobile-number. |
{- "body": "string",
- "content_type": "string",
- "date": "string",
- "delivery_receipt_url": "string",
- "from_alias": "string",
- "message_id": "string",
- "to": "string"
}
{- "processed": "2022-02-02T02:10:52.880Z"
}
This API allows merchants to create and list Virtual Collect Accounts (VCAs). This API enables merchants to assign customizable limits, such as amount, date, and usage, or create VCAs without limits, depending on their specific needs. This API ensures that only valid VCAs are listed and used for transactions.
vca_number required | string Assigned Virtual Collect Account number to help you identify the transaction. You must use your 5-digit Partner Alias. If you don’t have this yet, kindly contact support@netbank.ph |
account_number | string The Netbank bank account number that is linked to the alias that the VCA number will be created for. Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created. |
object Limits This object defines the allowed transaction limits for the Virtual Collect Account. It may include the following fields: |
{- "vca_number": "string",
- "account_number": "string",
- "limits": {
- "is_one_time_usage": true,
- "maximum_amount": {
- "cur": "string",
- "num": "string"
}, - "minimum_amount": {
- "cur": "string",
- "num": "string"
}, - "valid_from": "string",
- "valid_to": "string"
}
}
{- "transaction_id": "string"
}
This API deactivates a VCA, making it unable to receive any transactions. While deactivated, the VCA is treated as inactive and cannot process payments. It can be reactivated if needed by calling the Update limits of VCA API endpoint. This API is available for use regardless of whether the VCA was created locally or not.
vca_number required | string Assigned Virtual Collect Account number to help you identify the transaction. You must use your 5-digit Partner Alias. If you don’t have this yet, kindly contact support@netbank.ph |
account_number required | string The Netbank bank account number that is linked to the alias that the VCA number will be created for. Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created. |
{- "vca_number": "string",
- "account_number": "string"
}
{- "transaction_id": "string"
}
This API offers flexibility for merchants to access VCA information based on either a destination account number for multiple VCAs or a specific VCA number for detailed information on one VCA. Merchants can use this API to view transaction limits and other relevant account details for either one or more VCAs.
account_number required | string The Netbank bank account number that is linked to the alias that the VCA number will be created for. Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created. |
vca_number | string Assigned Virtual Collect Account number to help you identify the transaction. |
start_date | string Return transactions on or after this date. |
end_date | string Return transactions before this date. |
limit | integer <int32> Maximum number of transactions to return (up to 100). |
offset | integer <int32> Offset for the start of the returned transaction list. |
{- "result": [
- {
- "account_number": "string",
- "is_one_time_usage": true,
- "limits": {
- "maximum_amount": {
- "cur": "string",
- "num": "string"
}, - "minimum_amount": {
- "cur": "string",
- "num": "string"
}
}, - "valid_from": "string",
- "valid_to": "string",
- "vca_number": "string"
}
]
}
This API does not create a new VCA but updates the transaction limits of an existing one. This API allows merchants or partners to modify the VCA’s limits based on changing business requirements or customer needs.
vca_number required | string Assigned Virtual Collect Account number to help you identify the transaction. You must use your 5-digit Partner Alias. If you don’t have this yet, kindly contact support@netbank.ph |
account_number | string The Netbank bank account number that is linked to the alias that the VCA number will be created for. Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created. |
object Limits This object defines the allowed transaction limits for the Virtual Collect Account. It may include the following fields: |
{- "vca_number": "string",
- "account_number": "string",
- "limits": {
- "is_one_time_usage": true,
- "maximum_amount": {
- "cur": "string",
- "num": "string"
}, - "minimum_amount": {
- "cur": "string",
- "num": "string"
}, - "valid_from": "string",
- "valid_to": "string"
}
}
{- "transaction_id": "string"
}
This API removes all transaction limits for a given Virtual Collect Account (VCA) by providing the VCA number. This API disables any predefined transaction restrictions for the account, allowing for unrestricted transactions, while keeping the VCA itself valid and active.
vca_number required | string Assigned Virtual Collect Account number to help you identify the transaction. You must use your 5-digit Partner Alias. If you don’t have this yet, kindly contact support@netbank.ph |
account_number required | string The Netbank bank account number that is linked to the alias that the VCA number will be created for. Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created. |
{- "vca_number": "string",
- "account_number": "string"
}
{- "transaction_id": "string"
}