Netbank Digital API (0.0.1)

Download OpenAPI specification:Download

GENERAL GUIDELINES

INTRODUCTION

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.

DEVELOPMENT ENVIRONMENTS

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)

AUTHENTICATION

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

ERROR HANDLING

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.

REASON FOR REJECTION

  • Settlement Rails Error Code

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

HTTP RESPONSE CODES

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

ERROR CODES

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.

API TIMEOUT HANDLING AND IDEMPOTENCY

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.

OTHER API GUIDELINES

  • When you start to use our APIs either in UAT or PROD, we will create a dedicated “Branch” for you in our core banking system where all your customers, accounts, and transactions would be associated/recorded. This allows us to create a silo for your activities with us to keep it private, secure, and exclusive to your application.

Virtual Collection Accounts (VCA)

Overview

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

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.

Using Virtual Collection Accounts

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.

Features and Benefits of VCA’s

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.

Making Payments to VCA’s

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)

  1. Select the option where can perform a fund transfer (normally labelled “Transfer” or “Send Money to Other Banks”),

  2. Look for “Netbank” in the list of banks,

  3. Enter the amount, the account name of your Netbank Corporate Account and the VCA as the destination account number.

Payment Confirmation

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.

  1. 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.

  2. 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.

  3. 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.

QRPH Integration

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.

Testing and Integration

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

  1. 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

  2. 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.

Account-As-A-Service

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 -

Retrieve Bank Account Interest Details

Allows you to retrieve the interest details of a specific bank account that you’ve created.

query Parameters
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).
The account_number is returned by the successful response of the Create Account API.
Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created.

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).

Responses

Response samples

Content type
application/json
{
  • "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"
}

List Account Types

Retrieve list of valid account types and their IDs

Responses

Response samples

Content type
application/json
{
  • "types": [
    ]
}

Retrieve Bank Accounts of a Customer

Allows you to retrieve the full list of all bank accounts that you’ve created and associated with an Individual/ Corporate customer profile (CIF).

query Parameters
customer_id
required
string

The id that is associated by our core 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.
Must be a valid customer_id that you have created within your Branch.

Responses

Response samples

Content type
application/json
{
  • "result": [
    ]
}

Create Bank Account

Allows you to create a bank account for an Individual/Corporate customer profile (CIF)

Request Body schema: application/json
customer_id
required
string

The id that is associated by our core 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.
Must be a valid customer_id that you have created within your Branch

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.).
Must only input the account type id that is approved for your Branch

description
required
string

Descriptive information regarding the account.

Responses

Request samples

Content type
application/json
{
  • "customer_id": "1480",
  • "account_type_id": "8",
  • "description": "Corporate Savings Account"
}

Response samples

Content type
application/json
{
  • "account_number": "005-0010-00032-2"
}

Update Bank Account

Allows you to update details of a bank account.

Request Body schema: application/json
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.).
Must only input the account type id that is approved for your Branch

extra_number
string

Reference Number of the bank account.

interest_rate
string

The interest that will be applied to the bank account

Responses

Request samples

Content type
application/json
{
  • "bank_account_number": "string",
  • "account_type_id": "string",
  • "extra_number": "string",
  • "interest_rate": "string"
}

Response samples

Content type
application/json
{
  • "processed": "2022-02-02T02:10:52.880Z"
}

Retrieve Bank Account Details

Allows you to retrieve the details of a specific bank account that you’ve created.

path Parameters
account_number
required
string

The actual account number of the bank account created for the individual or business/company customer record.
The account_number is returned by the successful response of the Create Account API.
Must be a valid Netbank account number with the proper format and dash (e.g. 005-0010-00032-2) that you have created

Responses

Response samples

Content type
application/json
{
  • "account_number": "005-0010-00032-2",
  • "account_type": {
    },
  • "accrued_interest": {
    },
  • "available_balance": {
    },
  • "balance": {
    },
  • "branch": "6",
  • "customer_id": "1566",
  • "customer_name": "Juan Dela Cruz",
  • "status": "ACTIVE"
}

Verify Bank Account Existence

Allows you to quickly verify the existence of a bank account.

path Parameters
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).
The account_number is returned by the successful response of the Create Account API.
Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created

Responses

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "active": true,
  • "exists": true
}

Retrieve Bank Account Transaction History

Allows you to retrieve the list of transactions of a bank account that you’ve created.

path Parameters
account_number
required
string

The actual account number of the bank account created for the individual or business/company customer record.
The account_number is returned by the successful response of the Create Account API.
Must be a valid Netbank account number with the proper format and dash (e.g. 005-0010-00032-2) that you have created.

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "last_running_balance": {
    },
  • "result": [
    ]
}

Create Customer Record

Allows you to pass the KYC information to create the INDIVIDUAL customer profile (CIF) from which the bank account will be associated.

Request Body schema: application/json
first_name
required
string

FirstName is the first name name of customer
Limited to 1-128 characters

middle_name
string

MiddleName is the middle name of customer
Limited to 0-128 characters

last_name
required
string

LastName is the last name of customer
Limited to 1-128 characters

title
string

Title of the customer
Must be UPPERCASE character

gender
required
string

Gender of the customer
Must be UPPERCASE character

civil_status
string

Civil status of the customer
Must be UPPERCASE character

email
string

Email address of the customer.
Must be in email format (with @domain)

required
object

Complete address of the customer

required
object

Contact number of the customer

required
object

Date of birth of the customer
age limit between 16 to 120

birth_place
required
string

BirthPlace of the customer used as a security question on the consent flow
Limited to 1-128 characters

birth_place_country
required
string

Country of Birth of the customer.
Use the ISO Alpha-2 Country Code

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.
Must be UPPERCASE character

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
Limited to 1-10 characters

customer_risk_level
string

Risk level of the customer according to the KYC
Must be UPPERCASE character

phone_numbers
array

List of additional phone of customer
Limited to 0-4 phone numbers

Responses

Request samples

Content type
application/json
{
  • "first_name": "Netbank",
  • "middle_name": "Test",
  • "last_name": "AccountD",
  • "title": "MR",
  • "gender": "Male",
  • "civil_status": "Single",
  • "email": "test@netbank.ph",
  • "address": {
    },
  • "primary_phone": {
    },
  • "birthdate": {
    },
  • "birth_place": "Manila",
  • "birth_place_country": "PH",
  • "allow_credit_line": true,
  • "income": {
    },
  • "income_type": "SALARY",
  • "work_description": "work desc",
  • "tin": "317001098",
  • "sss": "34-1234567-1",
  • "customer_risk_level": "Normal",
  • "phone_numbers": [ ]
}

Response samples

Content type
application/json
{
  • "cif_number": "12847",
  • "customer_id": "1234"
}

Retrieve Customer Record

Allows you to retrieve the details of an Individual/Corporate customer profile (CIF) that you’ve created.

path Parameters
customer_id
required
string

The id that is associated by our core banking platform to the individual or corporate/ business customer record.

Responses

Response samples

Content type
application/json
{
  • "additional_addresses": {
    },
  • "address": {
    },
  • "birthdate": {
    },
  • "birthplace": "birth place",
  • "branch_id": "1",
  • "channel": "string",
  • "channel_id": "string",
  • "cif_number": "string",
  • "civil_status": "string",
  • "corporate_info": {
    },
  • "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": {
    },
  • "primary_phone": {
    },
  • "title": "title",
  • "updated_date": "2023-11-22T10:48:08.161Z"
}

Perform KYC Document Upload.

Allows you to upload the necessary KYC Documentation for a specific Individual or Corporate Customer.

path Parameters
customer_id
required
string

The id that is associated by our core 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.
Must be a valid customer_id that you have created within your Branch

Request Body schema: application/json
document_name
required
string

Name of the id/document being uploaded
Limited to 4-64 chars

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.
Must be a valid document_type code from the Retrieve KYC Document Types API.

id_type
string

Only required if "document_type" = "legal_id"
The code of the ”id_type” from the Retrieve KYC Document Types API that matches the type of the id/document being uploaded.
Must be a valid id_type code from the Retrieve KYC Document Types API
Limited to 3-64 chars

id_number
string

Only required if "document_type" = "legal_id"
The valid number of the id/document being uploaded.
Limited to 4-64 chars

id_status
string

Only required if "document_type" = "legal_id"
Status of the id/document being uploaded.
Limited to 4-64 chars

issuer
required
string

The issuing authority of the id/document being uploaded
Limited to 2-64 chars

country
required
string

The issuing country of the id/document being uploaded.
Use the ISO Alpha-2 Country Code

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

Responses

Request samples

Content type
application/json
{
  • "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": {
    },
  • "received": {
    },
  • "comments": "Philhealth Card"
}

Response samples

Content type
application/json
{
  • "processed": "2022-02-02T02:10:52.880Z"
}

Create Corporate Record

Allows you to pass the KYC information to create the CORPORATE customer profile (CIF) from which the bank account will be associated.

Request Body schema: application/json
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.
List available value : 'ASSOCIATION', 'COOPERATIVE', 'CORPORATION', 'GOVERNMENT', 'NON_PROFIT_ORGANIZATION', 'PARTNERSHIP', 'SEC_REGISTERED', 'SOLE_PROPRIETORSHIP'.

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
founded date limit between 1500-01-01 to today

incorporation_country
required
string

Place of incorporation of the business/company
Use the ISO Alpha-2 Country Code

authorized_signatory
array

The list of customer_id/s of the business/company’s authorized signatories
Limited to 0-128 signatories

related_document
array

Related Document

allow_credit_line
boolean

Determines if customer is allowed to open credit line.

Responses

Request samples

Content type
application/json
{
  • "business_name": "Netbank Corp SandboxDev2",
  • "trade_name": "NetbankSandboxDev1",
  • "address": {
    },
  • "business_type": "ASSOCIATION",
  • "total_assets": {
    },
  • "income": {
    },
  • "fund_source": "IPO",
  • "contact": {
    },
  • "business_phone": {
    },
  • "founded_date": {
    },
  • "incorporation_country": "PH",
  • "authorized_signatory": [
    ],
  • "related_document": [ ],
  • "allow_credit_line": true
}

Response samples

Content type
application/json
{
  • "cif_number": "12847",
  • "customer_id": "1234"
}

Update Corporate Record

Allows you to update details of a Corporate Customer.

path Parameters
customer_id
required
string

The id that is associated by our core banking platform to the corporate business customer record.
The customer_id is returned by the successful response of the Create Corporate Customer API.
Must be a valid customer_id that you have created within your Branch

Request Body schema: application/json
customer_id
required
string

The id that is associated by our core banking platform to the corporate business customer record.
The customer_id is returned by the successful response of the Create Corporate Customer API.
Must be a valid customer_id that you have created within your Branch

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
Limited to 0-128 signatories

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "trade_name": "string",
  • "address": {
    },
  • "total_assets": {
    },
  • "income": {
    },
  • "contact": {
    },
  • "business_phone": {
    },
  • "fund_source": "string",
  • "authorized_signatory": [ ]
}

Response samples

Content type
application/json
{
  • "processed": "2022-02-02T02:10:52.880Z"
}

Update Individual Record

Allows you to update details of a Individual Customer.

path Parameters
customer_id
required
string

The id that is associated by our core banking platform to the individual customer record.
The customer_id is returned by the successful response of the Create Individual Customer API.
Must be a valid customer_id that you have created within your Branch

Request Body schema: application/json
customer_id
required
string

The id that is associated by our core banking platform to the individual customer record.
The customer_id is returned by the successful response of the Create Individual Customer API.
Must be a valid customer_id that you have created within your Branch

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
Must be UPPERCASE character

civil_status
string

civil_status of the individual cutomer
Must be UPPERCASE character

email
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
Must be UPPERCASE character

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
Must be UPPERCASE character

phone_numbers
array

phone numbers of the individual cutomer
Limited to 0-4 phone numbers

credit_line_allowed
boolean

creditLineAllowed of the individual cutomer

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "middle_name": "string",
  • "last_name": "string",
  • "title": "string",
  • "civil_status": "string",
  • "email": "string",
  • "address": {
    },
  • "primary_phone": {
    },
  • "income": {
    },
  • "income_type": "string",
  • "work_description": "string",
  • "tin": "string",
  • "sss": "string",
  • "customer_risk_level": "string",
  • "phone_numbers": [ ],
  • "credit_line_allowed": true
}

Response samples

Content type
application/json
{
  • "processed": "2022-02-02T02:10:52.880Z"
}

Retrieve KYC Document Types

Allows you to retrieve the list of valid values for the Perform KYC Document Upload API parameters that require a specific set of values.

Responses

Response samples

Content type
application/json
{
  • "document_type": {
    },
  • "id_status": {
    },
  • "id_type": {
    }
}

Verify Customer Existence

Allows you to quickly verify the existence of an Individual/Corporate customer profile (CIF) that you’ve created.

query Parameters
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'.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "exists": true
}

Retrieve Customer Record Library

Allows you to retrieve the list of valid values for the Create Customer API parameters that require a specific set of values

Responses

Response samples

Content type
application/json
{
  • "types": {
    }
}

Disburse-To-Account

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 -

Retrieve A List Of Receiving Banks

Allows you to get the latest list of banks and wallets that can receive disbursement transactions.

Responses

Response samples

Content type
application/json
{
  • "banks": {
    }
}

Check the Health of the Disbursement Service

Allows you to check the system status of the PESONet, Instapay, and Netbank-to-Netbank Fund Transfer service.

path Parameters
service_name
required
string

Name of the service that you want to check.

Responses

Response samples

Content type
application/json
{
  • "status": "UP",
  • "system_date": "2021-12-05T18:31:32.000Z",
  • "target": "PESONET"
}

Cancel PESOnet Transaction

Allows you to cancel a PESONet transaction that you’ve triggered as long as it’s within the processing cut-off

path Parameters
transaction_id
required
string

The id that is associated by our platform to the disbursement transaction

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "status": "string",
  • "updated": "2019-08-24T14:15:22Z"
}

Process Account-To-Account Fund Transfer

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).

Request Body schema: application/json
reference_id
required
string

API User’s own unique reference code.
Limited to 0-36 characters.

settlement_rail
required
string

The mode of fund transfer.
DIRECT = Netbank Account to Netbank Account Fund Transfer.
INSTAPAY = Real-time interbank fund transfer with a Php 50,000 limit per transaction.
PESONET = Interbank fund transfer without a transaction amount limit.

source_account_number
required
string

Netbank Bank Account Number where the funds will be drawn/debited from.
Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created.

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.
PesoNet and InstaPay transfers require recipient name.

remarks
string

Additional information regarding the transaction.
Note: Instapay and PesoNet rails will truncate to 35 characters in the memo line.

required
object

Amount defines a transaction amount.

Responses

Request samples

Content type
application/json
{
  • "reference_id": "01",
  • "settlement_rail": "PESONET",
  • "source_account_number": "039-01-00001-7",
  • "sender": {
    },
  • "destination_account": {
    },
  • "recipient": {
    },
  • "remarks": "Remarks",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "505873"
}

Retrieve Account-to-Account Transaction Details

Allows you to retrieve the details of a fund transfer transaction that you’ve triggered.

path Parameters
transaction_id
required
string

The id that is associated by our platform to the disbursement transaction.
The transaction_id is returned by the successful response of Process Account-to-Account Fund Transfer API.
Must be a valid transaction_id that you have created within your Branch.

Responses

Response samples

Content type
application/json
{
  • "amount": {
    },
  • "destination_account": {
    },
  • "recipient": {
    },
  • "reference_id": "01",
  • "remarks": "Remarks",
  • "sender": {
    },
  • "settlement_rail": "PESONET",
  • "source_account_number": "005-01-00007-2",
  • "status": "PENDING"
}

Webhook-Documentation

Introduction

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.

Configuration

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:

  • UAT: 3.0.84.126
  • PROD: 52.74.254.158

Retry Mechanism

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)

Events Available

Currently, we can support to provide webhooks for the following events:

ECPay Credit Notification

  • Event name: PROCESS_DIRECT_INCOMING_FUND_TRANSFER
  • Timing: whenever a fund transfer is credited to one of your accounts from an ECPAY deposit
  • Use Case: Local Collect
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Incoming Fund Transfer from Other Netbank Accounts via the "Direct" Settlement Rail

  • Event name: ACCOUNT_TRANSFER_TO_PRODUCT
  • Timing: whenever a fund transfer from other Netbank accounts via the DIRECT settlement rail is credited to one of your accounts
  • Use Case: Accounts-as-a-Service, Local Collect, Local Collect-via-QR
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "Remarks": "string",
  • "Sender": {
    },
  • "alias": "string",
  • "amount": 0,
  • "channel": "string",
  • "commandId": null,
  • "operationId": 0,
  • "productBranchCode": "string",
  • "productId": "string",
  • "recipient": {
    },
  • "recipientAccountNumberBankFormat": "string",
  • "referenceCode": "string",
  • "registrationTime": "string",
  • "targetProductBranchCode": "string"
}

Incoming Fund Transfer from Instapay and Pesonet

  • Event name: PROCESS_PESONET_INCOMING_FUND_TRANSFER and SETTLE_INCOMING_INSTAPAY_TRANSFER
  • Timing: whenever a fund transfer is credited to one of your accounts from Instapay or Pesonet
  • Use Case: Local Collect and Local Collect-via-QR
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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": {
    },
  • "transferType": "string"
}

Incoming Fund Transfer from other Netbank accounts via the Direct settlement rail

  • Event name: ACCOUNT_TRANSFER_TO_PRODUCT
  • Timing: whenever a fund transfer from other Netbank accounts via the DIRECT settlement rail is credited to one of your accounts
  • Use Case: Accounts-as-a-Service, Local Collect, Local Collect-via-QR
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "Remarks": "string",
  • "Sender": {
    },
  • "alias": "string",
  • "amount": 0,
  • "channel": "string",
  • "commandId": null,
  • "operationId": 0,
  • "productBranchCode": "string",
  • "recipient": {
    },
  • "recipientAccountNumberBankFormat": "string",
  • "referenceCode": "string",
  • "registrationTime": "string",
  • "targetProductBranchCode": "string"
}

Outgoing Fund Transfer via INSTAPAY - REJECTED

  • 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

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Outgoing Fund Transfer via INSTAPAY - SETTLED

  • 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

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Outgoing Fund Transfer via PESONET - FOR_SETTLEMENT

  • 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

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Outgoing Fund Transfer via PESONET - REJECTED

  • 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

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Outgoing Fund Transfer via PESONET - SETTLED

  • 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

Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Repayments Received To Loan Accounts

  • Event name: PAY_LOAN
  • Timing: whenever a payment is posted to a loan account
  • Use Case: Loan-as-a-Service
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "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"
}

Loan

Create Loan

Create a customer loan.

Request Body schema: application/json
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.
The value must be a valid customer_id that exists within your branch.

issuance_type
required
string
Enum: "UNKNOWN" "IssueNew"

The type of loan issuance to process.
The value ust be a valid issuance_type from the Retrieve Loan Options Library API.

loan_type
required
string

The type of loan to issue.
The value must be a valid loan_type from the Retrieve Loan Options Library API.

required
object

The amount of money to be borrowed
Required if the issuance_type is not “RESTRUCTURED"
The value must be a positive number.

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.
Limited to 0-36 characters.

schedule_code
required
string

Schedule of repayment installments.
See installment schedule list in loan options for available schedules.

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.
Format as a decimal with up to five fractional digits (14.54323% => "14.54323").

object

First installment due date.

loan_officer
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.
The value must be the customer_id of the Netbank Client calling the Create Loan API

loan_collector
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.
The value must be the customer_id of the Netbank Client calling the Create Loan API

linked_account
string

Register an account for auto-debit on the installment due date.
This account must be owned by the borrower.
Deprecated: Use

co_signer
array

Customer ids of loan cosigners.
Must be a valid customer_id that exists within your branch.

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.
The value must be a valid rate_type from the Retrieve Loan Options Library API.

extra_number
string

Additional reference ID for the loan account

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "issuance_type": "UNKNOWN",
  • "loan_type": "string",
  • "principal_amount": {
    },
  • "credit_line": "string",
  • "attach_documents": [ ],
  • "reference_id": "string",
  • "schedule_code": "string",
  • "amortization_count": 0,
  • "interest_rate": "string",
  • "amortization_due": {
    },
  • "loan_officer": "string",
  • "loan_collector": "string",
  • "linked_account": "string",
  • "co_signer": [ ],
  • "remarks": "string",
  • "release_option": {
    },
  • "rate_type": "string",
  • "extra_number": "string"
}

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "status": "string",
  • "transaction_id": "string"
}

Create Loan interbank

Request Body schema: application/json
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.
The value must be a valid customer_id that exists within your branch.

issuance_type
required
string
Enum: "UNKNOWN" "IssueNew"

The type of loan issuance to process.
The value ust be a valid issuance_type from the Retrieve Loan Options Library API.

loan_type
required
string

The type of loan to issue.
The value must be a valid loan_type from the Retrieve Loan Options Library API.

required
object

The amount of money to be borrowed
Required if the issuance_type is not “RESTRUCTURED"
The value must be a positive number.

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.
Limited to 0-36 characters.

schedule_code
required
string

Schedule of repayment installments.
See installment schedule list in loan options for available schedules.

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.
Format as a decimal with up to five fractional digits (14.54323% => "14.54323").

object

First installment due date.

loan_officer
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.
The value must be the customer_id of the Netbank Client calling the Create Loan API

loan_collector
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.
The value must be the customer_id of the Netbank Client calling the Create Loan API

linked_account
string

Register an account for auto-debit on the installment due date.
This account must be owned by the borrower.
Deprecated: Use

co_signer
array

Customer ids of loan cosigners.
Must be a valid customer_id that exists within your branch.

remarks
string

Additional remarks/comment on the loan

rate_type
string

The type of loan rate to process.
The value must be a valid rate_type from the Retrieve Loan Options Library API.

required
object

Transfer details

extra_number
string

Additional reference ID for the loan account

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "issuance_type": "UNKNOWN",
  • "loan_type": "string",
  • "principal_amount": {
    },
  • "credit_line": "string",
  • "attach_documents": [ ],
  • "reference_id": "string",
  • "schedule_code": "string",
  • "amortization_count": 0,
  • "interest_rate": "string",
  • "amortization_due": {
    },
  • "loan_officer": "string",
  • "loan_collector": "string",
  • "linked_account": "string",
  • "co_signer": [ ],
  • "remarks": "string",
  • "rate_type": "string",
  • "transfer": {
    },
  • "extra_number": "string"
}

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "fund_transfer": {
    },
  • "status": "string"
}

Retrieve Loan Information

Get loan information using the loan account number

path Parameters
account_number
required
string

Responses

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "accrual_limit": 0,
  • "accrual_period": "string",
  • "accrued_interest": {
    },
  • "advance_interest_amount": {
    },
  • "advance_interest_application": "string",
  • "advance_interest_no": 0,
  • "allow_accrual": true,
  • "amortization_schedule": {
    },
  • "application_fee": {
    },
  • "application_fee_already_paid": true,
  • "as_earned_interest_calculation": true,
  • "balance": {
    },
  • "calculated_first_amortization_due_date": {
    },
  • "category_ids": [
    ],
  • "cbu_fund_account_id": "string",
  • "cbu_hold_id": "string",
  • "cbu_savings_account_id": "string",
  • "check_preparation_id": "string",
  • "closed_on": "string",
  • "co_makers": [
    ],
  • "collector_id": "string",
  • "comments": "string",
  • "created_on": "string",
  • "creation_type": "string",
  • "credit_investigation_fee": {
    },
  • "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": {
    },
  • "discount_charges_rate": "string",
  • "doc_stamp": {
    },
  • "doc_stamp_already_paid": true,
  • "eir_annual": "string",
  • "eir_monthly": {
    },
  • "eir_periodic": "string",
  • "extra_bank_fee": {
    },
  • "extra_bank_fee_already_paid": true,
  • "extra_number": "string",
  • "first_amortization_due_date": {
    },
  • "grace_period": 0,
  • "grant_date": {
    },
  • "gross_eir_annual": "string",
  • "gross_eir_periodic": "string",
  • "group_loan_id": "string",
  • "group_loan_name": "string",
  • "holds_balance": {
    },
  • "id": "string",
  • "id_fee": {
    },
  • "id_fee_already_paid": true,
  • "insurance_fee": {
    },
  • "insurance_fee_already_paid": true,
  • "insurance_processing_fee": {
    },
  • "insurance_processing_fee_already_paid": true,
  • "insurance_service_fee": {
    },
  • "insurance_service_fee_already_paid": true,
  • "interest_amount": {
    },
  • "interest_balance": {
    },
  • "interest_calculation_parameter": 0,
  • "interest_rate": "string",
  • "interest_type": "string",
  • "last_accrual_date": {
    },
  • "last_customer_transaction": "string",
  • "last_transaction": "string",
  • "late_check_awaiting_amount": {
    },
  • "latest_irreversible_operation": "string",
  • "linked_deposit_account_id": "string",
  • "loan_documents": [
    ],
  • "loan_information": {
    },
  • "loss_allowance": {
    },
  • "mapping_attributes": {
    },
  • "maturity_date": {
    },
  • "membership_fee": {
    },
  • "membership_fee_already_paid": true,
  • "metadata": {
    },
  • "monthly_interest_rate": "string",
  • "negative_information": {
    },
  • "notarial_fee": {
    },
  • "notarial_fee_alreadyPaid": true,
  • "officer_id": "string",
  • "opening_deductions": {
    },
  • "origin": "string",
  • "override_amortization_amount": {
    },
  • "past_due_interest_charge": {
    },
  • "past_due_maturity_interest_charge": {
    },
  • "payment_interval_definition": {
    },
  • "penalty_maturity": {
    },
  • "penalty_maturity_collection_type": "string",
  • "pf_hold_id": "string",
  • "pf_savings_account_id": "string",
  • "principal_amount": {
    },
  • "principal_balance": {
    },
  • "release_allowed_date": {
    },
  • "release_amount": {
    },
  • "release_date": {
    },
  • "remade_from_loan_ids": [
    ],
  • "remade_to": "string",
  • "renewed_loan_id": "string",
  • "service_charge": {
    },
  • "service_charge_already_paid": true,
  • "simulated_amortized_fees": [
    ],
  • "simulated_fees": [
    ],
  • "status": "string",
  • "term": 0,
  • "term_adjustment": 0,
  • "total_amortization_number": 0,
  • "total_default_fees": {
    },
  • "tp_hold_id": "string",
  • "tp_savings_account_id": "string",
  • "type": "string",
  • "uid_amortization_number": 0,
  • "uid_application": "string",
  • "uid_ledger": {
    },
  • "write_off_date": {
    }
}

List Credit Lines

List all available lines of credit for a customer.

path Parameters
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.
Must be a valid customer_id that exists within your branch.

Responses

Response samples

Content type
application/json
{
  • "available_credit": {
    },
  • "credit_lines": [
    ],
  • "customer_id": "string",
  • "total_credit": {
    }
}

Process Loan Payment

Process immediate payment on a loan.

path Parameters
loan_account_number
required
string

The account number that was returned by the Create Loan endpoint.
Must be a valid loan account number.

Request Body schema: application/json
reference_id
string

API User’s own unique reference code.
Limited to 0-36 characters.

bank_account_number
required
string

Netbank Bank Account Number where the funds will be drawn/debited from to pay the loan.
Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created.

loan_account_number
required
string

The account number that was returned by the Create Loan endpoint.
Must be a valid loan account number.

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.

Responses

Request samples

Content type
application/json
{
  • "reference_id": "string",
  • "bank_account_number": "string",
  • "loan_account_number": "string",
  • "receipt_type": "TemporaryReceipt",
  • "receipt_number": "string",
  • "remarks": "string",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "string"
}

Create Credit Line

Create a line of credit for a customer.

Request Body schema: application/json
customer_id
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.
Must be a valid customer_id that exists within your branch.

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.

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "credit_line": {
    },
  • "loan_types": [ ],
  • "description": "string",
  • "grant_date": {
    },
  • "expiration_date": {
    },
  • "replenishment": "Revolving"
}

Response samples

Content type
application/json
{
  • "credit_line_id": "string"
}

Update Credit Line

This API will allow Netbank Partners to: Update the credit lines that they have created under their own branch

Request Body schema: application/json
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.
Must be a valid customer_id that exists within your branch.

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.
Must be a valid credit_line_id that exists within your branch.

object

The approved credit line amount that you intend to update.

loan_types
array

Allowed loan types that can use this credit line.
Must be a valid loan type

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

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "credit_line_id": "string",
  • "credit_line": {
    },
  • "loan_types": [ ],
  • "expiration_date": {
    },
  • "replenishment": "Revolving",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "transaction_id": "string",
  • "updated_on": "string"
}

Loan Options

Available loans and repayment schedules for creating loans.

Responses

Response samples

Content type
application/json
{
  • "available_loans": {
    },
  • "installment_schedule": {
    },
  • "loan_rate_types": [
    ]
}

Retrieve Loan Payment Transaction Details

Allows you to retrieve the details of a loan payment transaction that you’ve triggered.

path Parameters
transaction_id
required
string

Transaction identifier.

Responses

Response samples

Content type
application/json
{
  • "transaction": {
    }
}

Retrieve Loan Payment Transactions

Retrieve Loan Payment Transactions using loan account number

path Parameters
account_number
required
string

AccountNumber is the actual account number of the loan account created loan record.

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "has_more": true,
  • "payments": [
    ]
}

Simulate Loan

Simulate a customer loan.

Request Body schema: application/json
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.
The value must be a valid customer_id that exists within your branch.

reference_id
string

API User’s own unique reference code.
Limited to 0-36 characters.

issuance_type
required
string
Enum: "UNKNOWN" "IssueNew"

The type of loan issuance to process.
The value ust be a valid issuance_type from the Retrieve Loan Options Library API.

loan_type
required
string

The type of loan to issue.
The value must be a valid loan_type from the Retrieve Loan Options Library API.

required
object

The amount of money to be borrowed
The value must be a positive number.

schedule_code
required
string

Schedule of repayment installments.
See installment schedule list in loan options for available schedules.

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.
Format as a decimal with up to five fractional digits (14.54323% => "14.54323").

required
object

Funds release scheduled date.

object

First installment due date.

rate_type
string

The type of loan rate to process.
The value must be a valid rate_type from the Retrieve Loan Options Library API.

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "reference_id": "string",
  • "issuance_type": "UNKNOWN",
  • "loan_type": "string",
  • "principal_amount": {
    },
  • "schedule_code": "string",
  • "amortization_count": 0,
  • "interest_rate": "string",
  • "release_date": {
    },
  • "amortization_due": {
    },
  • "rate_type": "string"
}

Response samples

Content type
application/json
{
  • "calculated_totals": {
    },
  • "customer_id": "string",
  • "fees": {
    },
  • "grace_period": 0,
  • "interest_rate": {
    },
  • "schedule": [
    ],
  • "simulated": {
    },
  • "term": 0,
  • "year_length": 0
}

Verify Loan Account Existence

Verify existence of a loan account

path Parameters
account_number
required
string

Responses

Response samples

Content type
application/json
{
  • "account_number": "string",
  • "active": true
}

Submit Loan Document.

Submit supporting documents for loan applications.

path Parameters
customer_id
required
string

The id that is associated by our core 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.
Must be a valid customer_id that you have created within your Branch.

Request Body schema: application/json
customer_id
required
string

The id that is associated by our core 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.
Must be a valid customer_id that you have created within your Branch.

document_name
required
string

Name of the id/document being uploaded.
Limited to 4-64 chars.

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.

Responses

Request samples

Content type
application/json
{
  • "customer_id": "string",
  • "document_name": "string",
  • "comments": "string",
  • "received": {
    },
  • "file": "string",
  • "reference_id": "string"
}

Response samples

Content type
application/json
{
  • "document_id": "string",
  • "processed": "2019-08-24T14:15:22Z"
}

Process Auto-Debit Loan Payment

Allow the Netbank Client to enroll a savings account to a recurring auto-debit payment to a loan account.

Request Body schema: application/json
reference_id
string

API User’s own unique reference code.
Limited to 0-36 characters.

bank_account_number
required
string

Netbank Bank Account Number where the funds will be drawn/debited from to pay the loan.
Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created.

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.
Must be a valid loan product number.

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.

Responses

Request samples

Content type
application/json
{
  • "reference_id": "string",
  • "bank_account_number": "string",
  • "loan_account_number": "string",
  • "remarks": "string",
  • "strategy": "UnknownStrategy",
  • "schedule": "UnknownSchedule"
}

Response samples

Content type
application/json
{
  • "autodebit_id": "string"
}

QR-PH

Decode QRPH 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.

query Parameters
qr_string
string

Decoded string from QR code image.

Responses

Response samples

Content type
application/json
{
  • "amount": {
    },
  • "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"
}

Generate QRPH images

Allows you to generate scannable QRPH images that conform to the standard.

Request Body schema: application/json
qr_type
required
string (Type of the payment QR code. Either static or dynamic)
Enum: "UnknownQRType" "Static" "Dynamic"
  • Static: QRType_Static the payment amount may or may not be indicated.
    Supported by all banks. Same QR for multiple transaction. If the amount is not indicated, it needs to be entered by the consumer
    - Dynamic: QRType_Dynamic the payment amount is usually part of the QR code information
    Supported by some banks only. Unique QR for every transaction.
qr_transaction_type
required
string (Type of the payment QR code transaction. Either P2P or P2M)
Enum: "UnknownQRTransactionType" "P2P" "P2M"
  • P2P: Transaction between Person to Person using QR Code
    - P2M: Transaction between Person to Merchant.
    The Merchant referred to in this term corresponds to any registered and established institution with an acquiring relationship with its bank of account that provides goods and/or services to customers in exchange for a specific payment amount.
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.
Defaults to 720, valid range [ 480 .. 1080 ]

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.

Responses

Request samples

Content type
application/json
{
  • "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": {
    }
}

Response samples

Content type
application/json
{
  • "qr_code": "string"
}

Process QRPH disbursement

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.

Request Body schema: application/json
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.
Must be a valid Netbank account number with dash (e.g. 005-0010-00032-2) that you have created.

reference_id
string

API User's own unique reference code.
Limited to 0-36 characters.

object

Amount defines a transaction amount.

Responses

Request samples

Content type
application/json
{
  • "disburse_id": "string",
  • "source_account_number": "string",
  • "reference_id": "string",
  • "amount": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "505873"
}

SMS

Send an SMS

Allows you to Send an SMS.

Request Body schema: application/json
body
required
string

The content body of the document.
For “text/plain” document, this is the UTF-8 text message.
Limited to 1-1500 characters

content_type
required
string

The MIME type of the content body.
Currently supported value is “text/plain”.

date
required
string

The date of the document.Format can be:
a. ISO 8601 – “yyyy-mm-ddThh:mm:ss+tzinfo”
b. “yyyymmddThhmmss”
The default timezone is “UTC” (GMT) if tzinfo is not present.

delivery_receipt_url
string

URL where the Messaging Gateway will attempt to POST the status of the document.
Limited to 350 characters

from_alias
string

alphanumeric up to 11 characters.
The alphanumeric sender ID, if enabled and allowed in your account.
Note that this differs from the ‘from‘ field – which refers to the VirtualShortcode assigned to you.
Limited to 11 characters

message_id
string

globally unique identifier of the document message.
If this is omitted in MT Documents, a unique id string is automatically generated.
API Clients MAY optionally inject and generate their own unique IDs for the DeliveryReceipt.
If this ID is not unique however, this may cause confusion in the tracking of DeliveryReceipts.
Limited to 1-50 characters

to
required
string

The destination of the document;For MT documents, this will be the mobile number OR a masked-mobile-number.
The mobile number is expected to follow the E.164 international format without the leading ‘+’,
i.e. country code + phone number (e.g. 639101234567)
Limited to 12 characters

Responses

Request samples

Content type
application/json
{
  • "body": "string",
  • "content_type": "string",
  • "date": "string",
  • "delivery_receipt_url": "string",
  • "from_alias": "string",
  • "message_id": "string",
  • "to": "string"
}

Response samples

Content type
application/json
{
  • "processed": "2022-02-02T02:10:52.880Z"
}

Collect-As-A-Service

Create Valid VCA

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.

Request Body schema: application/json
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
Minimum 12 characters Should be VCA and not netbank corporate account

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.
Must be a valid account number under the Client’s branch/organization

object

Limits This object defines the allowed transaction limits for the Virtual Collect Account. It may include the following fields:
If left blank, no limits will be applied

Responses

Request samples

Content type
application/json
{
  • "vca_number": "string",
  • "account_number": "string",
  • "limits": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "string"
}

Deactivate Valid VCA

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.

Request Body schema: application/json
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
Minimum 12 characters Should be VCA and not netbank corporate account

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.
Must be a valid account number under the Client’s branch/organization

Responses

Request samples

Content type
application/json
{
  • "vca_number": "string",
  • "account_number": "string"
}

Response samples

Content type
application/json
{
  • "transaction_id": "string"
}

Retrieve VCA Details by Destination Account Number or VCA

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.

query Parameters
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.
Must be a valid account number under the Client’s branch/organization.

vca_number
string

Assigned Virtual Collect Account number to help you identify the transaction.

start_date
string

Return transactions on or after this date.
Sample format: 2022-03-03T12:00:00.

end_date
string

Return transactions before this date.
Sample format: 2022-03-03T12:00:00.

limit
integer <int32>

Maximum number of transactions to return (up to 100).

offset
integer <int32>

Offset for the start of the returned transaction list.

Responses

Response samples

Content type
application/json
{
  • "result": [
    ]
}

Update Limits of VCA

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.

Request Body schema: application/json
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
Minimum 12 characters Should be VCA and not netbank corporate account

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.
Must be a valid account number under the Client’s branch/organization

object

Limits This object defines the allowed transaction limits for the Virtual Collect Account. It may include the following fields:
If left blank, no limits will be applied

Responses

Request samples

Content type
application/json
{
  • "vca_number": "string",
  • "account_number": "string",
  • "limits": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "string"
}

Remove Limits of VCA

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.

Request Body schema: application/json
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
Minimum 12 characters Should be VCA and not netbank corporate account

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.
Must be a valid account number under the Client’s branch/organization

Responses

Request samples

Content type
application/json
{
  • "vca_number": "string",
  • "account_number": "string"
}

Response samples

Content type
application/json
{
  • "transaction_id": "string"
}