RPPS Bill Payments

Mastercard Remote Payment and Presentment Service (RPPS), which was first introduced in 1987, is an electronic payment network that allows financial institutions to offer bill payment services to consumers. RPPS connects banks to billers, and is used by many U.S. banks. The service includes a directory of around 44,000 national and local billers, and Mastercard manages the transfer of funds to them via payment processing that provides electronic routing, posting, and same day settlement of financial transactions. The system supports not just the forwarding of payments to the billers, but remittance advice as well, such as, the Client's utility bill account number, service address and the like.

The Main Actors

ParticipantDetail
OriginatorThe Originator originates sends the payments files to RPPS. The Originator’s Bank is a financial institution used by any Originator. It is the institution from which the MasterCard Settlement Bank obtains funds via a Fedwire to credit Receivers for payment files sent through the RPPS network.
BillerThe Biller is a company to which a MasterCard RPPS payment transaction is sent
Biller's BankA Biller’s Bank is a financial institution that receives payments on behalf of a Biller from an Originator via the RPPS network.
MasterCard RPPSMasterCard RPPS maintains all connections between Originators and Receivers to transmit data and funds. It allows all parties involved to have one connection to reach multiple Originators and Billers, and maintains all connections.

Process Flow

  1. The Client initiates a bill payment request for their utility bill
  2. The Client provides bill payment details including the service address and account number, and the current bill payment amount.
  3. Mbanq and the Platform look up the utility company in the RPPS Biller Directory, and present the matching biller to the Client.
  4. The Client confirms the biller is correct and authorizes the payment.
  5. Mbanq prepares the RPPS formatted payment file containing all that day's bill payments and sends it through to the Partner bank. Note: Settlement occurs once daily at 6 PM PST for the total processing that occurred that day.
  6. The Partner bank sends the file to MasterCard RPPS to process. This includes file account number validation and sorting/batching of payments.
  7. MasterCard RPPS processes the payment file after all accounts number validations are complete and inaccurate account numbers have been rejected.
  8. MasterCard RPPS sends payment files to the appropriate Biller.
  9. MasterCard RPPS sends confirmation files to the Partner bank confirming transactions received, processed, any rejects from RPPS, returns from Billers, and reasons for the reject or return. Note: payments are guaranteed good and cannot be recalled.
  10. The Utility Biller posts the credit to its account receivable.

Process Diagram


APIs

Process FunctionKey AttributesEndpoint
Search for RPPS BillerGET

- Biller Name (mandatory)

RETURNS List / Array
{
"id": 10101,
"billerKey": "2342343799",
"recordEffectiveDate": "2024-02-02",
"billerId": "2342423423432",
"liveDate": "2024-02-02",
"transitRoutingNumber": "3242347",
"billerName": "Apple Inc California",
"billerClass": "Hitech",
"billerType": "Mobile",
"countryCode": "USA",
"stateProvinceCode": "cAS",
"checkDigitRoutine": "Y",
"currencyCode": "USD",
"territoryCode": "1"
},
Search_Biller
Get Biller GET

- billerID
RETURNS
Biller details { ... }
Get_Biller
Get My Bills ListGET

- Client ID
RETURNS List / Array
{
"totalFilteredRecords": 2,
"pageItems": [
{
"id": 85938,
"clientId": 31287,
"amount": 10.0,
"correlationId": "6B56xh4DxD5gzEjpuW11gsrdfsd1f",
"correspondent": {
"address": [
"Apple, Inc,
"Coopertino, California",
"78 US"
]
},
"creditor": {
"accountEntity": "BUSINESS",
"identifier": "ID:31848",
"name": "Vinod Gowda",
"country": "US",
"agent": {},
"address": ...
}
Get_My_Bills
Add RPPS Biller to My Bills ListPOST
Payload :
{
"nickName": "Vamsi", // Mandatory
"recipientType": "Person", // Mandatory : Individual and BUSINESS
"firstName": "Vamsi", // Conditionally Mandatory (Individual)
"lastName": "USA",// Conditionally Mandatory (Individual)
"businessName": "Vamsi", // Conditionally Mandatory (BUSINESS)
"emailAddress": "[email protected] ", //optional
"phoneNumber": "4804804801", //optional
"paymentRail": "ACH", // Mandatory : ACH, Wire, Internal, SWIFT
"isOwnAccount": true, // Mandatory : true or false
"address": { //Mandatory for wire, swift
"line1": "String", //Mandatory
"line2": "String",
"city" : "Park City", //Mandatory
"stateCode": "String", //Mandatory
"countryCode": "String", //Mandatory
"postalCode": "String" //Mandatory
},
"accountDetails": {
"accountId" : "String"
"accountNumber": "String",
"accountType": "CHECKING",
"bankInformation": {
"routingNumber": "1234",// ABA for ACH & Wire
"swiftCode" : "ABAD", // SWIFT Code for International wire
"address": { // optional
"line1": "String",
"line2": "String",
"city" : "Park City",
"stateCode": "String",
"countryCode": "String",
"postalCode": "String"
},
},
},
"note": ""//any reference text
}
Add_Biller_to_My_Recipient_List
Schedule Payment to My BillerPOST
Payload :
{
"paymentType": "CREDIT",
"paymentRail": "BILLPAY",
"correlationId": "6B56xh4DxD5gmYzEjpuZn11dfsdfsd1f",
"payByDateTime" : "2024-06-25 12:13:07",
"amount": 10,
"originator": {
"accountId": "95002"
},
"recipient": {
"billerRecordId": "10001"
},
"reference": "xx22323x reference text" // Character length 140
}
Schedule_Payment_to_My_Biller
Get Payment StatusGET
Query Params :
paymentId
RETURNS

- Status (ex. submitted, pending, paid, returned)
Get_Payment_Status
Get Payments History List by BillerGET
Query Params :
paymentId
paymentType
recipientId
Get_Payment_History_by_Biller
Get Pending PaymentsGET
Query Params :
clientId
paymentType
status
RETURNS List / Array

- Biller RPPS ID
- Biller Name
- Payment ID
- Payment Amount
- Pay by Date (greater than today's date)
- Status (ex. submitted, pending)
Get_Pending_Payments
Cancel Biller PaymentPOST
PATH : /payments?id=123231
METHOD : DELETE
Cancel_Biller_Payment
Update Biller Account NumberPUT
Payload :
{
"accountDetails": {
"accountId" : "String"
"accountNumber": "String",
"accountType": "CHECKING",
"bankInformation": {
"routingNumber": "1234",// ABA for ACH & Wire & BillPay
"swiftCode" : "ABAD", // SWIFT Code for International wire
"address": { // optional
"line1": "String",
"line2": "String",
"city" : "Park City",
"stateCode": "String",
"countryCode": "String",
"postalCode": "String"
},
},
},
"note": ""//any reference text
}
Update_Biller_Account_Number

Lastly, set up a webhook to listen for updates on the payment status.

Biller Directory Layout

  • Record 0 consists of biller information.
  • Record 1 contains biller addresses.
  • Record 2 contains biller masks.
    • There may be multiple 1 and 2 records associated with a 0 record.
    • Each 1 record may contain from 1 to 20 addresses.
    • If no biller addresses are available for a biller, no 1 record will be created.
    • Each 2 record may contain from 1 to 80 masks for the full and partial downloads, and from 1 to 60 masks for the advanced full download.
    • There must be at least one mask for a biller.
    • The address record may contain from 1 to 10 addresses, and the mask record may contain from 1 to 25 masks.
  • Record 3 contains mask descriptors.
  • Record 4 contains AKAs
  • Record 5 contains contacts.
  • Record 6 contains phone and fax numbers.
    • There may be multiple 3 records associated with a 2 record, multiple 4 and 5 records associated with a 0 record and multiple 6 records associated with a 5 record.
    • Each 3 record may contain from 1 to 35 mask descriptors.
    • Each 4 record may contain from 1 to 15 AKAs.
    • Each 5 record may contain from 1 to 7 contacts.
    • Each 6 record may contain from 1 to 20 phone numbers.
    • If there is no data for record types 3 through 6, then they will not be created.
    • If a mask has mask descriptors, then that mask will be on a 2 record by itself, and the descriptors will be on one or more 3 records after it.
    • Likewise if a contact has phone/fax numbers the contact will be on a 5 record by itself, and the phone/fax numbers will be on one or more 6 records after it.
    • Mask record may contain from 1 to 50 masks and the contact record may contain from 1 to 3 contacts.
  • An 'X0' record will be generated to indicate no data for partial and advanced partial file downloads. Mask record may contain from 1 to 50 masks and the contact record may contain from 1 to 3 contacts.
  • An 'X0' record will be generated to indicate no data for partial and advanced partial file downloads.

Key Biller Directory Record Data

Field NameField Size (Bytes)Field Description
Record Effective DateN 10The date of the last change to this record - YYYY- MM-DD
Biller IDN 10Unique biller ID
Live DateN 10The date this biller was first activated - YYYY-MM- DD
Transit Routing Number/ABAN 10Credit Counseling Biller ID populated on the RPPS website.
Biller NameAN 128Corporate Name
Biller ClassAN 50Industry Type
Biller TypeAN 30Identifies the biller type.
Line of BusinessAN 2Indicates biller line of business