Skip to content

Bill Payment UAT

Once the tests outlined in the UAT plan have been completed, PayGears will expect documentation from you that will include your requests, the relevant logs from your system, and confirmation that each of the tests performed matched the expected results in the UAT plan.

Biller file

GET /transfer-to/bills/billers/download

1. Request should return a complete biller file.

Initiate a Transaction

POST /transfer-to/bills/initiate

Unless otherwise noted, "exteralTrnId" should be a unique reference ID in your system. (i.e. "exteralTrnId1", "exteralTrnId2", ...)

2. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 0,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "reference" : "exteralTrnId"
}

Expected Result: Request should reject the transaction as the amount cannot be 0.

3. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "webhookUrl" : "YOUR_WEBHOOK_URL_HERE",
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId"
}

Expected Result: Request should go through, create a new transaction with "Initiated" status, and should make a webhook call when the transaction status changes.

4. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "55201234567",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId"
}

Expected Result: Request should fail as the accountNumber does not match a mask.

5. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : -1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId"
}

Expected Result: Request should reject the transaction as the amount can not be negative.

6. Use the following values:

{
    "billerId" : "0000104967",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId"
}

Expected Result: Request should fail as the specified billerID does not exist.

7. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "A",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId"
}

Expected Result: Request should fail as deliveryTimeCode acceptable values are "S" (for Same day) or "N" (for Next day).

8. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "$",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId"
}

Expected Result: Request should fail as currency should be a three character ISO alphabetic code to identify the currency.

9. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "any previously existing external reference in your system"
}

Expected Result: Request should fail as the reference ID already exists.

10. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "%&@!"
}

Expected Result: Request should fail as the reference ID can only contain alphanumeric characters.

11. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "firstName" : "John",
    "lastName" : "Doe",
    "reference" : "exteralTrnId"
}

Expected Result: Request should go through and create a new transaction with "Initiated" status.

12. Use the following values:

{
    "billerId" : "0000104968",
    "accountNumber" : "552012345678",
    "amount" : 1,
    "deliveryTimeCode" : "S",
    "currency" : "USD",
    "legalName" : "Test Inc",
    "reference" : "exteralTrnId",
    "additionalProperty" : "whatever"
}

Expected Result: Request should fail because the request must not have additional properties.

Execute transaction

POST /transfer-to/bills/execute

13. Use the following values:

{
    "cFiTransactionId" : "YOUR_TRANSACTION_ID"
}

Expected Result: Request should go through, it finalizes and executes a previously initiated transaction for processing.

14. Use the following values:

{
    "cFiTransactionId" : "INVALID_TRANSACTION_ID"
}

Expected Result: Request should fail as the specified cFiTransactionId does not exist.

15. Use the following values:

{
    "cFiTransactionId" : "ALREADY_EXECUTED_TRANSACTION_ID"
}

Expected Result: Request should fail as the specified transaction was already executed.

16. Use the following values:

{
    "cFiTransactionId" : "YOUR_TRANSACTION_ID",
    "additionalProperty" : "whatever"
}

Expected Result: Request should fail because the request must not have additional properties.

Query transactions

POST /transfer-to/bills/query

17. Use the following values:

{
    "references" : ["YOUR_EXTERNAL_REFERENCE1", "YOUR_EXTERNAL_REFERENCE2", ..., "YOUR_EXTERNAL_REFERENCE_UP_TO_20_OR_LESS"]
}

Expected Result: Request should go through and return the status(es) of the bill payment transactions that were requested.

18. Use the following values:

{
    "cFiTransactionIds" : ["YOUR_CFITRANSACTION_ID1", "YOUR_CFITRANSACTION_ID2", ..., "YOUR_CFITRANSACTION_UP_TO_20_OR_LESS"]
}

Expected Result: Request should go through and return the status(es) of the bill payment transactions that were requested.

19. Use the following values:

{
    "references" : []
}

Expected Result: Request should fail because the array cannot be empty.

20. Use the following values:

{
    "references" : ["NonExistingId", "NonExistingId2"]
}

Expected Result: Request should go through and return an empty data array because unknown IDs are ignored.

21. Use the following values:

{
    "references" : ["exteralTrnId1", "exteralTrnId2", "exteralTrnId3", ..., "exteralTrnId21"]
}

Expected Result: Request should fail because the array must not have more than 20 items.

22. Use the following values:

{
    "cFiTransactionIds" : ["cFiTransactionId1", "cFiTransactionId2", "cFiTransactionId3", ..., "cFiTransactionId21"]
}

Expected Result: Request should fail because the array must not have more than 20 items.

23. Use the following values:

{
    "references" : ["exteralTrnId"],
    "additionalProperty" : "whatever"
}

Expected Result: Request should fail because the request must not have additional properties.

24. Use the following values:

{
    "cFiTransactionIds" : ["cFiTransactionId"],
    "additionalProperty" : "whatever"
}

Expected Result: Request should fail because the request must not have additional properties.

25. Use the following values:

{
    "cFiTransactionIds" : ["VALID_CFITRANSACTION_ID"],
    "references" : ["VALID_EXTERNAL_REFERENCE_ID"]
}

Expected Result: Request should fail because the request must not have both cFiTransactionIds and references properties at the same time.

26. Use the following values:

{
    "cFiTransactionIds" : ["YOUR_INITIATED_NOT_EXECUTED_CFITRANSACTION_ID"]
}

Expected Result: Request should go through, and the status should be “Initiated”.

27. Use the following values:

{
    "references" : ["YOUR_INITIATED_NOT_EXECUTED_REFERENCE_ID"]
}

Expected Result: Request should go through, and the status should be “Initiated”.