Skip to main content
Use this endpoint to place an amount expectation on a virtual account before sharing it with a payer. When validation is active, the collection service checks incoming payments against the configured amount — only payments that match are accepted and settled. This lets you gate a virtual account to a single known payment, preventing partial payments or unrelated credits from being processed against it. Endpoint
POST https://baasapi.payrepmfb.com/api/v1/transaction/collection/api/set_collection_validation
Authentication: Bearer token. Pass your JWT in the Authorization header as Bearer <access_token>. Obtain a token via Generate Token.

Request

Body Parameters

account_number
string
The virtual account number to apply the validation to. Maximum 255 characters. Provide either account_number or pool_account_number (or both) to identify the target account.
pool_account_number
string
The pool account linked to the virtual account. Maximum 255 characters. Used when you want to set validation on a virtual account by referencing its parent pool account.
amount
string (decimal)
required
The exact payment amount that must be received for the collection to be accepted. Format: up to 8 integer digits and 2 decimal places (e.g., "5000.00").
duration_minutes
integer
How long the validation remains active, in minutes. The account is locked and unavailable for other collections until the duration elapses or a matching payment is received. Minimum: 1.

Response

A successful response confirms that the validation rule has been applied to the specified account.

Response Fields

status
boolean
true when validation was successfully configured.
response_code
string
"00" on success.
message
string
Human-readable confirmation message.
data
object
Additional details about the configured validation, if returned by the server.

Example

Request

curl --request POST \
  --url https://baasapi.payrepmfb.com/api/v1/transaction/collection/api/set_collection_validation \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "account_number": "9901234567",
    "amount": "75000.00",
    "duration_minutes": 30
  }'

Response

{
  "status": true,
  "response_code": "00",
  "message": "Collection validation set successfully",
  "data": {}
}

Validation is applied per account. If you set validation on a virtual account, only payments for exactly the configured amount will be accepted. Any payment that does not match will be rejected until the validation expires or is cleared. To remove validation before expiry, call the clear validation endpoint.
This endpoint is well-suited for invoice-matching workflows. When you generate an invoice for a customer, create a virtual account, call set_validation with the invoice amount and a sensible duration_minutes, then share the account number with your customer. Your reconciliation logic can rely on any credit to that account corresponding exactly to the expected invoice total.

Error Codes

Response CodeMeaning
00Success
41Customer not found — invalid API credentials
42Account not found — invalid account_number or pool_account_number
60Customer not active