Creating a Billpay Transaction
This guide explains how to use the Program API to add billers to an account and how to initiate a billpay transaction, either for one time or on a schedule.
Along with this guide you may want to read these other guides:
- About Bill Pay — General information about bill pay at Galileo
- Managing Billpay Transactions — Instructions for displaying and canceling billpay transactions and removing billers.
Billpay endpoints
Integrate these endpoints with your billpay interface according to the use case.
Use case | Endpoint |
---|---|
Display a list of billers that have been configured for the account holder. | Get Billers |
Find out if a biller is in the RPPS database | Search Biller Directory |
Add an electronic biller for the account holder; optionally, add a one-time payment or a series of payments | Add RPPS Biller |
Modify biller information or change recurring payments | Modify RPPS Biller |
Add a biller that is not in the RPPS database, which will receive a paper check; optionally, add a one-time payment or series of payments | Add Paper Biller |
Modify biller information or change recurring payments | Modify Paper Biller |
Delete a biller from the account holder's account | Remove Biller |
Initiate a one-time payment to an existing biller | Create Bill Payment |
Cancel an existing bill payment, if possible | Cancel Bill Payment |
Retrieve a list of payments that have a process date that is equal to or later than the current date | Get Scheduled Bill Payments |
Retrieve a list of bill payments between specified dates | Get Bill Payment History |
- For details on using these endpoints, see the Billpay Endpoints guide.
- For details on managing billers and billpay transactions, see the Managing Billpay Transactions guide.
Adding a biller
Before you can initiate a billpay transaction, you must add the biller to the account holder's account. Billers are associated with an account holder's primary PRN, so adding a biller to one PRN does not add it to another account holder's PRN, even if the account holders share the same balance. If 10 account holders need to add the same biller, you must add that biller 10 times, to each individual account.
Note
You cannot add or modify a biller unless the account is active (
status: N
).
- The account holder launches an "add biller" control in your interface.
- Your interface prompts the account holder to provide the name of the biller.
- Call the Search Biller Directory endpoint to look for the biller name in the RPPS database. (Galileo recommends passing the
billerState
parameter to help distinguish between billers with the same name.)- If the biller is in the database:
- Galileo returns one or more billers that match the string in
billerName
. Each biller has anrpps_biller_id
. - If there is more than one result, the account holder selects the correct biller.
- You call the Add RPPS Biller endpoint to create the electronic biller. Optionally, the account holder can schedule a billpay transaction or create a one-time transaction.
- The endpoint response includes the
biller_id
.
- Galileo returns one or more billers that match the string in
- If the biller is not in the database:
- Galileo returns status code
421-01
. - You call the Add Paper Biller endpoint to create the paper biller. Optionally, the account holder can schedule a billpay transaction or create a one-time transaction.
- The endpoint response includes the
biller_id
.
- Galileo returns status code
- If the biller is in the database:
Note
If the account holder creates a one-time transaction using these Add X Biller endpoints, it is not necessary to call Create Bill Payment to initiate the transaction.
Creating a billpay transaction
A billpay transaction is initiated in one of these ways:
- At the time the biller is added, as shown in Adding a biller:
- The account holder creates a one-time transaction.
- The account holder creates scheduled transactions.
- After the biller has been added:
- The account holder creates a billpay transaction, as shown in Creating a one-time billpay transaction, below.
- The scheduler creates a billpay transaction, as shown in Scheduling billpay transactions.
Note
You cannot initiate a billpay transaction unless the account is active (
status: N
).
Creating a one-time billpay transaction
After a biller has been created, you can create a transaction. This process applies to both electronic and paper check transactions.
One-time transaction workflow
This diagram shows how Galileo processes one-time transactions that are initiated by the Program API. This workflow assumes that Galileo is the system of record. If you are the system of record for your program, perform your own balance check before calling Create Bill Payment.
- The account holder goes to the billpay section of your interface.
- You call the Get Billers endpoint and present the list of billers.
- If the desired biller is not present, the account holder activates an "add biller" control on your interface. You follow the Adding a biller procedure, and the account holder optionally creates a one-time transaction with the process date of today. When creating the transaction in this way, the rest of the process follows the Scheduled transaction workflow.
- If the desired biller is present, the account holder selects the biller. You call the Create Bill Payment endpoint using the
biller_id
as returned by the Get Billers endpoint.
- The endpoint performs these verification checks:
- The
biller_id
must be associated with the account holder's PRN. If it is not, the endpoint returnsstatus_code: 433-01
. - The
processDate
must be the current date or later. If it is in the past, the endpoint returnsstatus_code: 433-02
. If there is noprocessDate
in the request, it defaults to the current date. - The account status must be active. If it is not, the endpoint returns
status_code: 433-06
. - The
amount
must be a positive number. If it is not, the endpoint returnsstatus_code: 433-03
. - The transaction amount must not exceed the limit in LIMBP If the limit is exceeded, the endpoint returns
status_code: 433-04
.
- The
- Galileo creates the transaction in
status: N
, sends theBPCQ: billpay_request_made
event message, and the endpoint returnsstatus_code: 00
. - Every 30 minutes, at :08 and :38 past the hour, Galileo's billpay process runs. The process performs these checks again:
- The account must be active. If it is not, Galileo sends the
BSPF: sched_billpay_fail
event message. - There must be sufficient funds. If not, Galileo sends the
BSPF: sched_billpay_fail
event message. - Velocity limits must not be exceeded. If they are, Galileo sends the
BLVF: billpay_limit_violation
event message.
- The account must be active. If it is not, Galileo sends the
- The billpay process adjusts the transaction amount out of the account and sends the
BPAY: billpay
event message. - The billpay process checks for a fee.
- If there is a fee, the Processing fees process is followed.
- If there is no fee, the process continues.
- The billpay process then changes the transaction status according to the biller type:
status: O
(letter O) — Electronic biller. See Processing an electronic transaction for next steps.status: W
— Paper biller. See Processing a paper billpay transaction for next steps.
Scheduling billpay transactions
Use one of these methods to schedule billpay transactions in the future.
Note
You cannot create scheduled billpay transactions unless the account is active (
status: N
).
One-time transaction
- When adding or modifying a biller (Add X Biller or Modify X Biller), pass these parameters:
frequencyType: O
(letter O)nextDate:
future dateendDate:
same asnextDate
amount:
amount of the transaction
- When creating a one-time transaction with Create Bill Payment, input a future date for
processDate
.
Recurring transactions
- When adding or modifying a biller (Add X Biller or Modify X Biller), select one of these options. With recurring transactions,
nextDate
,endDate
, andamount
are required:W
— WeeklyM
— MonthlyQ
— QuarterlyY
— Yearly
nextDate
— Date of first scheduled transactionendDate
— Date of last scheduled transaction, up to five years in the futureamount
— Amount of the scheduled transaction
Note
The maximum value of
endDate
is five years after the current date. For example, if today is 20 Jan 2020, the end date can be no later than 20 Jan 2025. However, if today's date is leap day, such as 29 Feb 2020, the latest date can be 1 Mar 2025 instead of 28 Feb.
Scheduled transaction workflow
This is the workflow for a billpay transaction when the scheduler initiates the transaction. The flowchart assumes that the External Trans API is not in use.
- On the process date for the transaction, the scheduler initiates the billpay transaction process. The scheduler begins to run every morning.
- Galileo creates the transaction in
status: N
and sends theBPCQ: billpay_request_made
event message. - Galileo verifies that the account holder's account is active. If it is not, Galileo sends the
BSPF: sched_billpay_fail
event message. - Galileo verifies that the transaction amount does not exceed the limit in LIMBP. If it does, Galileo sends the
BLVF: billpay_limit_violation
event message. - Galileo checks for sufficient funds.
- If there are insufficient funds, Galileo sends the
BSPF: sched_billpay_fail
event message.
- If there are insufficient funds, Galileo sends the
- Galileo adjusts the transaction amount from the account and sends the
BPAY: billpay
event message. - The billpay process checks for a fee.
- If there is a fee, the Processing fees process is followed.
- If there is no fee, the process continues.
- The billpay process also changes the transaction status according to the biller type:
status: O
(letter O) — Electronic biller. See Processing an electronic transaction for next steps.status: W
— Paper biller. See Processing a paper billpay transaction for next steps.
Processing an electronic transaction
On the same day that the electronic transaction is initiated, Galileo performs these actions:
- The electronic transaction is in
status: O
(in process). An internal process adds electronic transactions to the RPPS originator file and changes the transaction tostatus: P
. This process runs at 08:45, 13:45, 16:45 and 22:45, Galileo system time, 365 days per year. - Galileo sends the RPPS file to Mastercard, and the transaction is included in the Posted Transactions RDF.
- Mastercard receives the RPPS file and validates the transactions.
- If the transaction passes the validation checks, Mastercard sends the billpay transaction to the biller's bank.
- If the transaction does not pass the validation checks, Mastercard sends the transaction back to Galileo in an RPPS return file. Galileo sends the
BRRJ: billpay_rejected
event message.
- The transaction is posted to the biller’s bank account. Galileo does not receive notification of this event.
- If the transaction is rejected by the biller or the biller's bank, Mastercard includes it in an RPPS return file that it sends to Galileo. It can take several days or longer for a transaction to be included in the return file.
RPPS return file
Galileo checks for RPPS return files four times per day, at 06:10, 14:10, 18:10, and 22:10 Galileo system time. When Galileo finds a return file, it processes it right away. About 30 minutes after processing the file:
- Galileo returns the transaction amount to the account and sends the
BADJ: adj
event message. - The adjustment is included in the Posted Transactions RDF.
Electronic timing
When billers register with Mastercard RPPS, they select a method for Mastercard to send the transaction to the biller's bank. The method can be ACH or it can be a quicker, electronic method. It is therefore possible for an electronic transaction to be posted to the biller's account on the same day that Galileo processes it; likewise, the transaction might be posted a few days later, depending on the delivery method chosen by the biller.
This table shows the approximate amount of time it takes to transition between electronic transaction statuses.
Status change | Approximate interval |
---|---|
N to O | Up to 30 minutes. Process runs at :08 and :38 minutes past the hour. |
O to P | Process runs at 06:45, 14:45, 18:45 and 22:45 every day. |
Processing a paper billpay transaction
On the next business day after a paper transaction is initiated, Galileo performs these actions:
- Transactions in
status: W
(waiting to be printed) are picked up by Galileo’s paper check process once per business day at 06:00, Galileo system time. Check transactions that are initiated before midnight are included in this batch. Transactions initiated after midnight are processed the next business day. - Galileo prints the check and changes the transaction to
status: Q
. - On the same day, Galileo sends the check in the mail. Galileo then changes the transaction to
status: P
, sends theBPCM: billpay_check_mailed
event message and includes the transaction in the Posted Transactions RDF - If the check is returned, Galileo sends the
BPCR: billpay_request_returned
event message.- Galileo later returns the amount to the account, sends the
BADJ: adj
event message, and includes the adjustment in the Posted Transactions RDF.
- Galileo later returns the amount to the account, sends the
- If the check is cashed within 180 days, Galileo sends the
BPCC: billpay_check_cleared
event message. - If the check is not cashed within 180 days:
- Galileo sends the
BPEX: billpay_expired
event message and changes the transaction tostatus: L
. - Galileo records the check in the cancellation file and changes the transaction to
status: U
. - Galileo returns the amount to the account, sends the
BADJ: adj
event message, changes the transaction tostatus: Y
, and includes the adjustment in the Posted Transactions RDF.
- Galileo sends the
Example paper check
The fields for the check are derived as follows:
billerAccountNo
— Add Paper Biller endpoint.- Account Holder Name —
firstName
andlastName
of an enrollment endpoint such as Create Account. For business accounts this is the business name. - Biller address fields — Add Paper Biller endpoint.
memo
— Create Bill Payment endpoint. This string is not available in the RDFs. Checks generated by the scheduler do not have a memo entry.
Paper check timing
Galileo typically prints and mails a paper check on the next business day after the transaction was initiated. The biller receives the check depending on post office handling. Galileo estimates ~10 days after the transaction is initiated. After that, the biller decides when to cash the check. If the biller does not cash the check within 180 days (six months) of the check date, Galileo voids the check and returns the amount to the account.
A check can be returned to Galileo either by the post office (bad address), by the biller, or by the biller's bank, and the timing of the return depends on post office handling, the decision of the biller, or the bank's processing schedule. (Galileo cannot tell you why the bank returned a check; you must ask the bank for that information.) When Galileo receives a returned check—or when a check expires—it takes approximately 1–3 days to return the amount to the account.
This table shows the approximate interval between transaction status changes. Factors such as the number of checks to process in a day can affect how quickly Galileo prints and mails checks as well as how fast returned and expired checks are processed.
Status change | Approximate interval |
---|---|
N to W | Process runs at :08 and :38 minutes past the hour. |
W to Q | Next business day |
Q to P | Same business day as above |
P to C | ~10 days minimum. Up to 180 days. |
Processing fees
When you set up billpay fees, the billpay process performs extra steps to process the fee. The fee process begins right after the adjustment is posted, as shown in this flowchart.
- After the billpay process posts the adjustment to the account, Galileo checks for any billpay fees.
- If there are no fees, Galileo does not follow the fee process and skips to step 3.
- If a fee is configured, Galileo verifies that there are sufficient funds for the fee.
- If there are sufficient funds, the process continues to step 2.
- If there are insufficient funds, Galileo checks the AAIGB parameter.
- Set — When the fee is removed from the account, it drives the balance negative.
- Not set — Galileo checks the BPPPF parameter.
- Set — The fee is deferred until there are sufficient funds in the account.
- Not set — Galileo rolls back both the fee and the billpay adjustment and sends the
BSPF: sched_billpay_fail
event message.
- Galileo determines whether the fee is for an electronic or a paper billpay transaction:
- Electronic — The BPY fee is applied.
- Paper — The CHK fee is applied.
- The billpay process then changes the transaction status according to the biller type:
status: O
(letter O) — Electronic biller. See Processing an electronic transaction for next steps.status: W
— Paper biller. See Processing a paper billpay transaction for next steps.
Updated about 1 month ago