BillPay

BillPay APIs can be used for sending payments to recipients, scheduling future payments, and setting up payees.

Overview

The BillPay API:

  • Sends bill payments to recipients
  • Schedules future payments
  • Sets up payees to receive bill payments from customers

Customers can only schedule future bill payments with the payee. The payee can be either a person or a merchant. The following endpoints support the billpay API.

Note: Maintenance to the BillPay API will be done on a monthly and quarterly basis. During these maintenance windows, the API will be unavailable in production. Partners should display a maintenance message asking the customer to retry after the window expires. A 500 response code will be returned if any requests are submitted to the API during the maintenance windows. Contact your Green Dot liaison with any questions and for a copy of the maintenance schedule.

BillPay API Endpoints

Search Payee

This endpoint allows you to search for a payee in the payee directory, using the payee’s name. To search the payee directory, you must enter a minimum of 3 characters and a maximum of 32 characters from the payee’s name. Once the search is completed, a list of payee names that match the searched payee name will be returned.

API Call Structure

POST programs/{programCode}/accounts/{accountIdentifier}/billpayPayees/search

Things to Remember

  • This endpoint applies to merchant payees only. To add a payee, you must first use the search payee API to locate the payee and their merchantId in the directory.
  • The payee name search is a full text search, so the payee’s full name must be provided.
  • This endpoint is not designed for rapid asynchronous calls, because it pulls not only the payee’s names, but also the payee’s complete profile information. Requests may be denied if too many are called in a short period of time.
  • Therefore, a two second wait is required between each search.
  • Also, Partners should submit payee search requests after the customer stops typing or after the response to the initial payee search request is received.

Sample Request Body

{ 
"name": "Green Dot Prepaid Card"
}

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ],
   "payees":[
      {
         "name":"Green Dot Prepaid Card",
         "merchantZipRequired":"true",
         "merchantId":"12345",
         "address1":"101 MAIN ST.",
         "address2":"",
         "city":"Pasadena",
         "state":"CA",
         "zip":"91107",
         "country":"USA",
         "phoneNumber":"8001234455"
      }
   ]
}

Response Parameters

FieldDescription
responseDetailsSee Response Details.
code, subCodeSee Response Details.
description, url, payeesSee Response Details.
nameString value. Example: Green Dot Prepaid Card
merchantZipRequiredBoolean value. Default value is false. If this value is true, the zip is required when calling the addPayee endpoint
merchantIdString value. Identifying number for the merchant. Example: 12345
address1Optional string value. If the merchant has an address on file, then this field will be available.
address2Optional string value
cityOptional string value. Example: Pasadena
stateOptional string value. Example: CA
zipOptional string value. Example: 91107
countryOptional string value. Example: USA
phoneNumberOptional string value. This will be the merchant payee’s phone number. Example: 8001234455

Create New Payee

This endpoint is used to create a new payee for a customer’s account. A payee can be a merchant or a person. A Person payee is a custom individual not listed in Green Dot’s vendor’s payee directory, so the full address information would need to be provided in order to send the bill payment.

API Call Structure

POST programs/{programCode}/accounts/{accountIdentifier}/billpayPayees

Sample Request Body - Person Payee Type

{
   "payeeType":"person",
   "name":"John Doe",
   "nickName":"john",
   "address1":"101 MAIN ST.",
   "address2":"#202",
   "city":"Pasadena",
   "state":"CA",
   "zip":"91107",
   "country":"USA",
   "accountNumber":"12345678",
   "phoneNumber":"626-222-4455",
   "email":"[email protected]",
   "merchantId":"12345"
}

Request Parameters – Person Payee Type

FieldDescription
payeeTypeRequired string value for the payee type (i.e. person or merchant)
nameRequired string value for the name of the payee. Example: John Doe Must be 3- 32 characters
nickNameOptional string value. Example: John
address1Required for a person payee type. Example: 101 Main St. Note: The full address is required for the person payee type. Must be 1-40 characters.
address2Optional string value. Example: #202 Must be 0-40 characters.
cityRequired and must be 1-32 characters. Example: Pasadena
stateRequired and must be 2 letters only. Example: CA
zipRequired and can either be in 5-digit format or in full zip format of “12345- 6789”
countryRequired Example: USA
accountNumberOptional string value for the person payee type that must be 1-32 characters, if provided. Example: 12345678
phoneNumberRequired when merchant information is not provided, except when the payee is from a captured image. If the payee to be added is from a captured image, then the phoneNumber is optional. Must be a valid phone number based on the North American numbering plan (i.e. area code cannot begin with a 0 or 1). Must be 10 digits and may contain a period, dash, or space between the numbers at the appropriate placement. Note: International codes are not supported at this time. Example: 234-555-1212
emailOptional string value for the payee’s email address. Example: [email protected]
merchantIdOptional string value that is returned from the searchPayee endpoint for a merchant. This is required if the payeeType is merchant.

Sample Request Body - Merchant Payee Type

{
   "payeeType":"merchant",
   "name":"Green Dot Prepaid Card",
   "nickName":"GD card",
   "address1":"1234 Acme Blvd”,
   "address2": "202",
   "city"": "Pasadena",
   "state": "CA", 
   "zip": "91107", 
   "country": "USA",
   "accountNumber": "1234567890", 
   "phoneNumber": "800-456-7890", 
   "email": "[email protected]", 
   "merchantId": "12345", 

Request Parameters – Merchant Payee Type

FieldDescription
payeeTypeRequired string value for the payee type (i.e. person or merchant).
nameRequired and must be 3-32 characters. Example: Green Dot Prepaid Card
nickNameOptional string value. Example: GD Card
address1Optional and must be 1-40 characters. Example: 1234 Acme Blvd
address2Optional and must be 0-40 characters. Example: #202
cityOptional and must be 1-32 characters. Example: Pasadena
stateOptional and must be 2 letters only. Example: CA
zipCan either be in five-digit format or in full zip format of “12345-6789”. It is only required for merchant payee types if the merchantZipRequired flag is true in the searchPayee response. Example: 91107
countryOptional string value. Example: USA
accountNumberRequired. Example: 1234567890
phoneNumberOptional and must be a valid phone number with 10 digits. May contain a period, dash, or space between the numbers at the appropriate placement. The area code cannot begin with a 0 or 1. Example: 800-456-7890 Note: International codes are not supported at this time.
emailOptional string value for the payee’s email address. Example: [email protected]
merchantIdRequired string value that is returned from the searchPayee endpoint for a merchant. Example: 12345

Sample Request Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ],
   "payeeIdentifier":"string",
   "payeeStatus":"active"
}

Response Parameters

FieldDescription
responseDetails,codeSee Response Details.
subCode, descriptionSee Response Details.
urlSee Response Details.
payeeIdentifier
payeeStatus
String unique identifier that is assigned to each new payee.

String value for the payee’s status (i.e. active or inactive)

Update Existing Payee Information

This endpoint updates an existing payee’s information using the payeeIdentifier.

API Call Structure

PUT programs/{programCode}/accounts/{accountIdentifier}/billpayPayees/{payeeIdentifier}

Sample Request Body - Person Payee Type

{
   "payeeType":"payee",
   "name":"John Doe",
   "nickName":"john",
   "address1":"101 MAIN ST.",
   "address2":"#202",
   "city":"Pasadena",
   "state":"CA",
   "zip":"91107",
   "country":"USA",
   "accountNumber":"12345678",
   "phoneNumber":"800-123-4455",
   "email":"[email protected]"
}

Request Parameters – Person Payee Type

FieldDescription
payeeTypeRequired field. May be a person or a merchant
nameRequired string value. Example: John Doe
nickNameOptional string value. Example: John
address1Optional field containing the payee’s address. The full address is required if the payeeType is person. Example: 101 Main St
address2Optional field. Example: #202
cityOptional field. Example: Pasadena
stateOptional field. Example: CA
zipOptional field. Example: 91107
countryOptional field. Example: USA
accountNumberOptional field. Example: 12345678
phoneNumberOptional field. May contain a period, dash, or space between the numbers at the appropriate placement. The area code cannot begin with a 0 or 1. Example: 800- 123-4455 Note: International codes are not supported at this time
emailOptional field. Example: [email protected]

Sample Request Body - Merchant Payee Type

{
   "payeeType":"merchant",
   "name":"Green Dot Prepaid Card",
   "nickName":"GD card",
   "address1":"1234 Acme Blvd”,
   "address2": "#202",
   "city": "Pasadena",
   "state": "CA"", 
   "zip": "91107", 
   "country": "USA",
   "accountNumber": "1234567890", 
   "phoneNumber": "800-456-7890", 
   "email": "[email protected]", 
}

Request Parameters – Merchant Payee Type

FieldDescription
payeeTypeRequired field. Payee type can be a person or a merchant.
nameRequired string value. Example: Green Dot Prepaid Card
nickNameOptional field. Example: GD Card
address1Optional field when payee type is merchant. Example: 1234 Acme Blvd
address2Optional field. Example: #202
cityOptional field when payee type is merchant. Example: Pasadena
stateOptional field when payee type is merchant. Example: CA
zipConditional field. If the payee type is merchant and the required merchant zip is true in the search payee response, then this field is required.
countryOptional field when payee type is a merchant. Example: USA
accountNumberRequired field if payeeType is a merchant. Example: 1234567890
phoneNumberOptional field when payeeType is a merchant. May contain a period, dash, or space between the numbers at the appropriate placement. The area code cannot begin with a 0 or 1. Example: 800-456-7890 Note: International codes are not supported at this time.
emailOptional field. Example: [email protected]

Sample Request Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ]
}

Response Parameters

FieldDescription
responseDetails,description,url,code,subCodeSee Response Details

Remove Payee

This endpoint deletes an existing payee from a user’s account using the payeeIdentifier. After the payee is removed, all associated scheduled bill payments are canceled.

API Call Structure

DELETE programs/{programCode}/accounts/{accountIdentifier}/billpayPayees/{payeeIdentifier}

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ],
   "payeeStatus":"inactive"
}

Response Parameters

FieldDescription
responseDetails,code,subCode,description,urlSee Response Details
payeeStatusString value for the status of the payee. Status options are active or inactive.

Retrieve Payee List

This endpoint retrieves a list of all active payees according to their accountIdentifier.

API Call Structure

GET programs/{programCode}/accounts/{accountIdentifier}/billpayPayees

Response Message

If the GET request is successful, the following response message will be returned along with a 200 HTTP status code.

OK

If there are no payees associated with an account, due to one of the following reasons:

  • User (customer) has not enrolled in GSS BillPay or
  • User (customer) has enrolled, but has not made any payments

Then a successful response will be returned along with an empty payee list.

The following response message will also be returned along with a 200 HTTP status code

Empty Payee List

Note: To continue adding a payee, call addPayee or searchPayee and schedule a bill payment.

Sample Response Body

{
   "responseDetails":{
      "code":0,
      "subCode":0,
      "description":"string",
      "url":"string"
   }
],
"payees":[
   {
      "payeeIdentifier":"e0deb38f-a7e1-4e5c-a2d3-56119b317dd7",
      "payeeStatus":"active",
      "payeeType":"person",
      "name":"John Doe",
      "nickName":"john",
      "address1":"101 MAIN ST.",
      "address2":"#202",
      "city":"Pasadena",
      "state":"CA",
      "zip":"91107",
      "country":"USA",
      "accountNumber":"12345678",
      "phoneNumber":"8001234455",
      "email":"[email protected]"
   }
]
}

Response Parameters

FieldDescription
responseDetails,code,subCode,description,urlSee Response Details
payeesValue that contains the payees’ information.
payeeIdentifierRequired field. Unique identifier for a payee. Each new payee is assigned one
payeeStatusRequired status of a payee. Status options are active or inactive.
payeeTypeRequired field that can be either a person or merchant
nameRequired field containing the name of the payee. Example: John Doe
nickNameOptional field. Example: John
address1Optional field if payee type is a merchant. Note: The full address is required if payeeType is a person. Example: 101 Main St.
address2Optional field. Example: #202
cityOptional unless payeeType is a person.
stateOptional unless payeeType is a person. Must be 2 characters
zipOptional unless payeeType is a person. Note: If zip4 is available, it should be 5 digits or in the full zip format of “12345-6789”.
countryOptional unless payeeType is a person.
accountNumberOptional if payeeType is a person. Required if a merchant. Example: 12345678
phoneNumberRequired if payeeType is a person. Example: 8001234455. Note: International codes are not supported at this time.
emailOptional field. Example: [email protected]

Retrieve Payee by PayeeID

This endpoint retrieves payee information based on the Payee’s payeeID.

API Call Structure

programs/{programCode}/accounts/{accountIdentifier}/billpayPayees/{payeeIdentifier}

How it Works

If a customer has been enrolled in BillPay and has added at least one Payee, call GET programs/{programCode}/accounts/{accountIdentifier}/billpayPayees/{payeeIdentifier} and include the payeeID.

The API will use the payeeID provided to retrieve and return the associated Payee information in the response back to you.

Sample Response Body

{
   "payeeIdentifier":"0b830092-e5d4-45b8-ad26-8a42c94ddd4e",
   "payeeStatus":"active",
   "payeeType":"person",
   "merchant""name":"Green Dot Prepaid Card",
   "nickName":"GD card",
   "address1":"3465 E Foothill Blvd",
   "if payeeType is person""address2":"",
   "city":"Pasadena",
   "state":"CA",
   :2"zipCode":"91107-6072",
   "countryCode":"USA",
   "accountNumber":"1234567890",
   "phoneNumber":"1234567890",
   "email":"[email protected]",
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ]
}

Schedule Bill Payment

This endpoint schedules a one-time or recurring future bill payment to the selected payee using their payeeIdentifier

API Call Structure

POST programs/{programCode}/accounts/{accountIdentifier}/billpayPayments

Recurring Future Bill Payments

  • The payee needs to be added using POST /billpayPayees to obtain a payeeIdentifier.
  • The frequencyType is required.
  • If the recurring billPay schedule has an ending date, then the paymentEndDate should be the same date.
  • If the recurring billPay schedule is unknown, the paymentEndDate can be set to null.
  • The send date set at the time when the original recurring bill payment was scheduled will be revised automatically when the deliver by date lands on either a weekend or federal holiday to ensure there is enough time (5 business days) for the check to arrive by the original expected date.
  • Once the payee is added, the paymentIdentifier will be assigned for the recurring future bill payment.
  • The confirmation number will also be returned to the user for schedule confirmation.
  • The scheduled bill payment will be debited from the user’s account on the payment date.
  • After the first scheduled bill payment is processed, future recurring bill payments will be automatically scheduled for the next payment due date, based on frequencyType.

Note: If there are issues with debiting a payment, it can be retried up to two times the same morning. If the payment still fails, the paymentStatus will show as failed and it will not be tried again.

Terms and Conditions Enforcement

  • Depending on the terms and conditions included in the daa that is accepted during account registration, some features may need to be explicitly accepted via the PUT /accounts endpoint
  • Initially, all programs will be configured to not enforce terms acceptance.
  • Once the system is configured to enforce terms acceptance for a feature, any customer that does not accept the terms for that feature will not be allowed to use the feature
  • For any programs, where customers are already using features that may require explicit terms acceptance, a data backfill will be required for those customers prior to enforcement being enabled
  • Please work with your Green Dot Account Manager and/or Product Manager to understand the impact and transition plan for your program and features.

Bill Pay Transaction Limits

Programs configured for Bill Pay will have a $7,500 limit per Bill Pay transaction.

Note: Some programs may have custom limits configured for Bill Pay transactions.

Sample Request Body

{
   "accountIdentifier":"ecdaf678-cbc0-41f3-b4ca-51f31024dcd6",
   "payeeIdentifier":"53abc4fc-db6f-4180-a53a-5a81dc62a686",
   "amount":7500,
   "paymentDate":"2020-08-06T19:44:47.255Z",
   "paymentMemo":"testPayment",
   "note":"test"
}

Sample Response Body

{
   "paymentStatus":"scheduled",
   "confirmationNumber":"QLPS0-5N81N",
   "paymentIdentifier":"b213bc74-64c0-41e1-b0cc-744e1778e1c8",
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"success",
         "url":http://tbd

      }
   ]
}

Response Codes

CodesubCodeDescription
40501352Payment denied—per use limit exceeded

Request Parameters

ParameterDescription
Bill paymentThere is no limit to the number of bill payments that can be scheduled daily, weekly, monthly, or in total. A payment can be scheduled up to a year in the future.
amountMust be in decimal format, up to 2 decimal places (i.e. 1234.56), and it must be more than 0. There is no limit to the amount a bill can be.
paymentDateThe paymentDate is provided by the client and it is the date that the account will be debited. It should be in the format YYYY-MM-DD. If an invalid paymentDate is entered, the client will receive a 04036 error code. See Bill Payment Codes for details. Currently, there is not a recommendation function if an invalid date is entered. Note: The paymentDate cannot be in the past (before the request) or on the day of the request. It must also, be a business day (Monday – Friday) and not a banking holiday.
paymentEndDate• This is an optional field.
• It is not required if the frequencyType is oneTime. Note: frequencyType can be oneTime or recurring.
• The paymentEndDate can be null if the recurring billPay schedule has no ending date.
• If the recurring billPay schedule has an ending date, then the paymentEndDate should be the same date.
{
   "payeeIdentifier":"0b830092-e5d4-45b8-ad26-8a42c94ddd4e",
   "amount":100.00,
   "paymentDate":"2019-03-05T19:44:47.255Z",
   "paymentEndDate":"2019-06-05T19:44:47.255Z", //Optional
   "paymentMemo":"memo",
   "note":"note",
   "frequencyType":"oneTime"  //Required
}

Request Parameters

FieldDescription
payeeIdentifierUnique identifier for a payee. Each new payee is assigned one.
amountAmount of scheduled bill payment. Example: 1000
paymentDateDate (UTC) of scheduled bill payment. Example: 2019-03-05T19:44:47.255Z
paymentEndDateOptional and is the date (UTC) the recurring scheduled billpay ends
paymentMemoMemo on scheduled payment check. Example: rent for Mar 2019
noteNote entered by the customer for the scheduled payment. Example: rent for Mar 2019
frequencyTypeRequired field that indicates if the billPay is one time or recurring. Enums:

One-Time BillPay:

•oneTime

Recuring BillPay:

•weekly
•every2Weeks
•every4Weeks
•twiceAMonth
•monthly
•every2Months
•every3Months
•every4Months
•every6Months
•annually - Defaults to oneTime if not provided

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ],
   "paymentStatus":"scheduled",
   "paymentIdentifier":" 7324fb15-4da4-482b-b670-fb45a37c8d5b",
   "confirmationNumber":"P6Q4Q-TVWLJ"
}

Response Parameters

FieldDescription
responseDetails,Code,subCode,subCode description,urlSee Response Details
paymentStatusStatus of the scheduled payment.

Status options are:
• scheduled – when billpayment is scheduled for the future
• canceled – Customer cancelled the billpayment before schedule date
• failed – Bill payment failed to process – example: customer does not have a enough balance to cover the payment, account rating, etc. If a bill payment is not made by the paymentDate, the paymentStatus will show as failed.
• processed – when billpayment is debited successfully on scheduled date and check will go out to payee
• inprocess – on the day when billpayment is in process of debit and issuing check • unapproved: Payment is not approved by the business. Note: This is a Fiserv status and does not apply to Green Dot, since we use the good fund payment model with Fiserv.
paymentIdentifierUnique identifier for the scheduled payment. Each new scheduled bill payment is assigned a paymentIdentifier.
confirmationNumberReturned to customer for confirmation of scheduled payment. Example: P6Q4QTVWLJ

Delete Scheduled Bill Payment

This endpoint is used to delete or cancel a scheduled bill payment using the paymentIdentifier. Both one-time and recurring scheduled bill payments can be deleted.

API Call Structure

DELETE programs/{programCode}/accounts/{accountIdentifier}/billpayPayments/{paymentIdentifier}

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ],
   "paymentStatus":"canceled"
}

Response Parameters

  • responseDetails, Code, subCode, subCode description, url - Refer to Response Details.
  • paymentStatus - Status of the scheduled payment. Options include:
  • scheduled – When bill payment is scheduled for the future.
  • canceled – Customer cancelled the bill payment before the scheduled date.
  • failed – Bill payment failed to process – example: customer does not have a sufficient balance to cover the payment, account rating, etc. If a bill payment is not made by the paymentDate, the paymentStatus will show as failed.
  • processed – When bill payment is debited successfully on scheduled date and the check will go out to payee.
  • inprocess – On the day when bill payment is in process of debit and issuing check.
  • unapproved – Payment is not approved by the business.
  • Note: This is a Fiserv status and does not apply to Green Dot, since we use the good fund payment model with Fiserv.

Retrieve List of Scheduled Payments

This endpoint is used to retrieve a list of all bill payments associated with an account, within a specified start and end payment date range. The default for the startPaymentDate is a year prior to the date of the request, and the default for the endPaymentDate is the date of the request.

The statusFilter supports the following bill payment types:

  • All -- Returns all bill payments in the search results, including scheduled, failed and processed.
  • Scheduled -- Only includes scheduled bill payments in the search results. Note: Future bill payments are listed in the “scheduled” bill pay type search results, but the paymentDate is in the future (after the day of the request).

API Call Structure

GET programs/{programCode}/accounts/{accountIdentifier}/billpayPayments?startingPaymentDate=2019-03- 15&endingPaymentDate=2019-04-03&statusFilter=all

Sample Request Body

{
   "startingPaymentDate":"2019-03-15T19:44:47.255Z",
   "endingPaymentDate":"2019-04-03T19:44:47.255Z",
   "statusFilter":"all"
}

Request Parameters

FieldDescription
startingPaymentDateOptional. If this date is not provided in the request, it will default to a year prior to the date of the request. Note: This allows historical bill payments to be retrieved for up to a year.
endingPaymentDateOptional. If not provided, it will default to the date of the request. Note: This allows historical bill payments to be retrieved up to the day of the request. The endingPaymentDate should be greater than the startingPaymentDate
statusFilterRequired. Options are all or scheduled

Response Message

If the GET request is successful, the following response message will be returned along with a 200 HTTP status code.

OK

If there are no bill payments associated with an account, it is due to one of the following reasons:

  • User (customer) has not enrolled in GSS BillPay or
  • User (customer) has enrolled, but has not made any payments

Then a successful response will be returned along with an empty payment list. The following response message will also be returned along with a 200 HTTP status code.

Empty Payment List

Note: To continue adding a payee, call addPayee or searchPayee and schedule a bill payment.

Sample Response Body

{
   "payments":[
      {
         "payeeIdentifier":"0b830092-e5d4-45b8-ad26-8a42c94ddd4e",
         "payeeName":"John Doe",
         "paymentIdentifier":"88830092-e5d4-45b8-ad26-8a42c94ddd4e",
         "paymentStatus":"scheduled”, //Enums: scheduled,processed,inprocess,unapproved, canceled,failed
         "amount": 100.00,
         "paymentDate": "2019-03-05T19:44:47.255Z",
         "confirmationNumber": "A3UJ8F13",
         "paymentEndDate": "2019-06-05T19:44:47.255Z", //optional
         "frequencyType": "oneTime" //Enums: oneTime, weekly, every2Weeks,every4Weeks,twiceAMonth, monthly,
		             every2Months, every3Months, every4Months, every6Months, annually
      } ],
  "responseDetails": [
      {
         "code": 0,
         "subCode": 0,
         "description": "string",
         "url": "string",
     } ]
}

Retrieve Bill Payment Details

This endpoint is used to retrieve details about a scheduled bill payment using the paymentIdentifier.

API Call Structure

GET programs/{programCode}/accounts/{accountIdentifier}/billpayPayments/{paymentIdentifier}

Sample Response Body

{
   "payments":{
      "payeeIdentifier":"0b830092-e5d4-45b8-ad26-8a42c94ddd4e",
      "payeeName":"Green Dot Prepaid Card",
      "paymentStatus":"scheduled",//scheduled,processed,inprocess,unapproved,canceled,
      "failedamount":100.00,
      "paymentDate":"2020-07-07T19:44:47.255Z",
      "deliveryDate":"2020-06-02T19:44:47.255Z",
      "paymentMemo":"2 wks recurring payment",
      "note":"2 wks recurring payment",
      "confirmationNumber":"QBWCH-73FC0",
      "paymentStartDate":"“2020-07-14T19":"44":47.255Z”,
      "paymentEndDate":"2020-06-05T19:44:47.255Z",
      "frequencyType":"every2Weeks",//weekly,every2Weeks,every4Weeks,
      //twiceAMonth,monthly,every2Months,every3Months,every4Months,every6Months,annually
   },
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"success",
         "url":"http://tbd"
      }
   ]
}

Response Parameters

FieldDescription
responseDetails, code, subCode, description, url

payment
See Response Details

The billpay properties are wrapped inside of this payment object.
payeeIdentifier,Unique identifier for a payee. Each new payee is assigned one.
paymentStatusStatus of a scheduled bill payment. Status options are:
• scheduled: Bill payment will be paid on the scheduled date, based on available funds.
• canceled: Bill payment has been cancelled by the user or by the agent, through the billPay portal.
• failed: If there are issues with

debiting a payment, it can be retried up to two times the same morning. If the payment still fails, the paymentStatus will show as failed and it will not be tried again.
• processed: Payment was processed successfully. The check will be sent to the payee by the delivery date.
• inProcess: Bill payment is processing. Status is changed to processed, once the check is sent out.
• unapproved: Payment is not approved by the business. Note: This is a Fiserv status and does not apply to Green Dot, since we use the good fund payment model with Fiserv
amountThe amount of a scheduled bill payment. It is in decimal format and must be larger than 0. Example: 100.00
paymentDateThe scheduled payment date.
deliveryDateThe deliveryDate is provided by Fiserv and it is the date the bill payment is expected to be delivered by. Fiserv calculates this date based on the paymentDate and it is usually, 5 business days after the paymentDate
paymentMemoMemo on the scheduled payment check
noteNote added by the customer to the scheduled payment.
confirmationNumberConfirmation number of the scheduled bill payment.
paymentEndDateOptional field containing the date the recurring scheduled billpay ends. NOTE: This field does not apply to one-time billPay
frequencyTypeRequired field that indicates if the billPay is one time or recurring. Enums:
• One-time billPay:
o oneTime
• Recuring billPay:
o weekly
o every2Weeks
o every4Weeks
o twiceAMonth
o monthly
o every2Months
o every3Months
o every4Months
o every6Months
o annually - Defaults to oneTime if not provided

Update Scheduled Bill Payment

This endpoint is used to update the scheduled bill payment using the paymentIdentifier.

API Call Structure

PUT programs/{programCode}/accounts/{accountIdentifier}/billpayPayments/{paymentIdentifier}

Things to Remember

  • A one-time billPay schedule cannot be changed to a recurring billPay schedule by changing the frequencyType, because one time and recurring billpay are under different model schema.
  • To change billPay schedules, the customer must delete the one-time billPay schedule and create a new recurring billPay schedule.
  • The frequencyType for recurring billPay schedules cannot be changed to oneTime or the frequencyType that was previously set for the billPay schedule.
  • oneTime cannot be updated to another frequencyType. Recurring frequencyType can be updated to another recurring frequencyType (i.e. weekly or every2weeks, etc.), except oneTime.

Sample Request Body

{
   "amount":100.00,
   "paymentDate":"2019-03-05T19:44:47.255Z",
   "paymentEndDate":"2019-06-05T19:44:47.255Z",
   "frequencyType":"oneTime",//weekly,every2Weeks,every4Weeks,twiceAMonth,
   //monthly,every2Months,every3Months,every4Months,every6Months,annually - Defaults to oneTime,
   //if not provided.
   "paymentMemo":"memo",
   "note":"note"
}

Sample Response Body

{
   "responseDetails":[
      {
         "code":0,
         "subCode":0,
         "description":"string",
         "url":"string"
      }
   ]
}

Appendices

Bill Payment Codes

HTTP Status CodeDescriptionClient Treatment
400BillPay internal Header or requestId MissingContact Partner Support if the issue persists.
500cannot get subscriber management headerContact Partner Support if the issue persists.
400customer is not enrolled to BillPay yetContact Partner Support if the issue persists.
500cannot get payment management headerContact Partner Support if the issue persists.
404Cannot locate Payee with the payeeIdentifierCorrect the invalid payeeIdentifier
400payeeToken is missingContact Partner Support if the issue persists.
400Invalid startDate or endDate in GetPaymentListCorrect startDate/endDate.
404BillPaySchedule does not exist for given paymentIdentifierCorrect the invalid paymentIdentifier.
404Cannot locate payeeIdentifier with the payeeTokenContact Partner Support if the issue persists.
400Invalid input value on URICorrect entity value in URI.
500BillPay General System ErrorContact Partner Support if the issue persists.
500Call to vendor timed outContact Partner Support if the issue persists.
500Vendor service is unavailableContact Partner Support if the issue persists.
400Missing customer information in the requestContact Partner Support if the issue persists.
500Missing customer bank account information in the requestContact Partner Support if the issue persists.
400The bankAccountType provided was invalidContact Partner Support if the issue persists.
400enrollSubscriber returned null responseContact Partner Support if the issue persists.
400enrollSubscriber returned a failed responseContact Partner Support if the issue persists.
400The bankAccountType is missingContact Partner Support if the issue persists.
400searchPayee failedContact Partner Support if the issue persists.
400addPayee failedContact Partner Support if the issue persists.
400Active payee already existsContact Partner Support if the issue persists.
400addPayee account schema failedContact Partner Support if the issue persists.
400merchantId for Merchant payee cannot be emptySupply merchantId.
400Address or phone number for Person payee cannot be empty in AddPayeeCorrect address/phone number.
400UpdatePayee failedContact Partner Support if the issue persists.
400UpdatePayee account schema failedContact Partner Support if the issue persists.
400Address or phone number for Person payee cannot be empty in UpdatePayeeCorrect address/phone number.
400DeletePayee failedContact Partner Support if the issue persists.
400AddPayments returned a failed or empty responseContact Partner Support if the issue persists.
400PaymentModify returned a failed or empty responseContact Partner Support if the issue persists.
400Delete payment request failedContact Partner Support if the issue persists.
404Payment could not be found for the given AccountIdentifierCorrect paymentIdentifier.
400GetPaymentDetails returned a failed or empty responseContact Partner Support if the issue persists.
400GetAllPayments failedContact Partner Support if the issue persists.
400Invalid parameterRequired parameter is not provided, or input value is invalid, or the format/range is incorrect.
400Missing required fieldProvide required field as indicated.
400Field syntax invalidCorrect the field containing the invalid syntax.
500User ID does not match sponsor IDContact Partner Support if the issue persists.
400Payee already existsPayee already exists.
400Invalid ZIP CodeZip is 5 digits or 10 digits in format -11111-2222.
500Sponsor does not existContact Partner Support if the issue persists.
500Subscriber does not existContact Partner Support if the issue persists.
400No data returned due to subscriber statusContact Partner Support if the issue persists.
500Not AuthorizedContact Partner Support if the issue persists.
500General server errorContact Partner Support if the issue persists.
400Subscriber account number is invalidContact Partner Support if the issue persists.
400Address line 1 is invalidCorrect address line 1.
400City name is invalidCorrect the city.
400State code is invalidState must be 2 characters long.
404Payee ID is invalidPayeeID should exist and be in GUID format.
400Payee status is inactive and operation cannot continueThis operation cannot be honored.
400Invalid Customer Account dataContact Partner Support if the issue persists.
400No payments scheduledcheck individual PaymentResponses for detailsThe payment(s) passed input validation. Check the response for details.
400Payment date is too earlyPayment date must be after the current date.
400Duplicate paymentCannot schedule a payment with the same payee, amount, and date as another payment.
400Payment amount is missing or invalidCorrect the payment amount.
400Payment amount exceeds maximum allowedResubmit with a smaller payment amount.
400Payment date is missing or invalidCorrect the payment date.
400Invalid e-bill ID receivedContact Partner Support if the issue persists.
400Payee is inactivePayee must be active.
404Payee is not foundResubmit with a valid payee.
404Payee ID is missing or invalidResubmit with a valid Payee ID.
400Possible duplicate paymentCannot schedule a payment with the same payee, amount, and date as another payment.
500Duplicate bank account foundContact Partner Support if the issue persists.
500Bank account missing or invalidContact Partner Support if the issue persists.
400Payment amount is less than the minimumAmount must be larger than 0.
400Payment date is too lateResubmit the payment with an earlier date. Payments cannot be scheduled more than a year in the future.
400Payment denieddaily limit exceededThe limit is exceeded.
400Did not add payment notesContact Partner Support if the issue persists.
500Bank account not confirmedContact Partner Support if the issue persists.
400Payment date is not a processing dateChange the payment date to a business date that is not a non-banking holiday.
400No payments scheduled due to validation errorscheck individual PaymentResponses for detailsCorrect one or more errors associated with an individual payment's input.
400Payment deniedrisk check failedThis operation cannot be honored.
404payment cannot be foundCorrect the paymentIdentifier.
400Cannot modify or cancel paymentThis operation cannot be honored.
404Payment not found. Check Transaction ID.Correct the paymentIdentifier.
400Too many payments requestedToo many payments were requested, and the page size will be limited in the GetPaymentList.
400Invalid input for add paymentCorrect the payment input.