Make payments

Consumers can make payments on policies in the Consumer Service Portal (Service Portal) using the following steps:
  1. Select Make a Payment.
  2. Enter payment details.
  3. Select a payment method. The Service Portal lists existing payment methods on file and the option to add a new payment method.
  4. Review payment details and click Make Payment.
The API calls required to complete the payment request vary based on the payment account and the payment date.

Process to submit a payment request.

Process to contact payment processor for new credit card account

Based on the payment processor, new credit card payments require some additional steps to obtain account details before the Service Portal can submit a payment request.

Using Payment Service
Before submitting a payment to a new credit card that uses the Payment Service, the Service Portal completes the following steps:
  1. The Service Portal uses the GuidewirePayments SDK to display an iframe that gathers the credit card information from the consumer.
  2. The GuidewirePayments SDK returns an ID to the Service Portal. The Service Portal uses this ID as the customerPaymentProfileId.
  3. The Service portal generates the customerProfileId.
Using Authorize.net (Service Portal version 3 only)
Before submitting a payment to a new credit card that uses Authorize.net, the Service Portal completes the following steps:
  1. The Service Portal displays the Authorize.net iframe so that the consumer can provide the credit card information to Authorize.net.
  2. Authorize.net returns the customerProfileId, and customerPaymentProfileId.

Example API request for making a payment

Based on the payment date, the Service Portal calls one of following APIs to make a payment:
  • The following API to processes the payment on the current date:
    POST /billingAccounts/systemId/paymentRequest 
  • The following API processes payment on a scheduled date that is no more than 14 days in the future:
    POST /billingAccounts​/systemId​/scheduledPaymentRequest

The body of the API request varies based on the payment method and payment details. The following examples provide guidance regarding the fields to include in the body of the request. However, the requirements and content might differ for your implementation.

Credit Card example
Credit card payment requests generally include the following fields:
{
  "scheduledDate": "YYYY-MM-DD",
  "paymentMethod": "Credit Card",
  "payments": [
    {
      "sourceRef": "BillingAccountSystemId",
      "sourceCd": "SourceCd",
      "receiptAmt": "PaymentAmount",
      "checkAmt": "PaymentAmount",
      "electronicPaymentSource": {
        "creditCardNumber": "CreditCardNumber",
        "customerProfileId": "CustomerProfileId",
        "customerPaymentProfileId": "CustomerPaymentProfileId",
        "methodCd": "Credit Card",
        "sourceName": "Mobile",
        "paymentServiceAccountId": "AccountID"
      }
    }
  ]
}
ACH payment example
ACH payment requests generally include the following fields:
{
  "scheduledDate": "YYYY-MM-DD",
  "paymentMethod": "ACH",
  "payments": [
    {
      "sourceRef": "BillingAccountSystemId",
      "sourceCd": "SourceCd",
      "receiptAmt": "PaymentAmount",
      "checkAmt": "PaymentAmount",
      "electronicPaymentSource": {
        "achName": "CardHolderName",
        "achBankAccountTypeCd": "Checking",
        "achBankAccountNumber": "AccountNumber",
        "achRoutingNumber": "RountingNumber",
        "achStandardEntryClassCd": "WEB"
      }
    }
  ]
}
Payment on file example
Credit card and ACH payment request that use saved account information generally include the following fields:
{
  "scheduledDate": "YYYY-MM-DD",
  "paymentMethod": "PaymentMethod",
  "payments": [
    {
      "sourceCd": "SourceCd",
      "receiptAmt": "PaymentAmount",
      "checkAmt": "PaymentAmount",
      "paymentOnFileId": "PaymentOnFileId"
    }
  ]
}