Payment Api
Overview
The Payment API enables the submission and processing of bill payments using wallet-eligible accounts. It provides a secure GraphQL-based interface that abstracts backend payment processing while enforcing business and validation rules.
Request Processing Flow
The payment submission flow follows these steps:
- Request Intake
- Consumers submit a payment request via the GraphQL API using a strongly typed mutation.
- Translation & Orchestration
- The GraphQL layer translates the mutation request into the appropriate backend format.
- The request is internally routed to the FARO Bill Pay endpoint.
- Validation & Enforcement
-
Business validation rules are enforced prior to submission, including (but not limited to):
o Account eligibility checks
o Balance sufficiency validation
o Required field and data integrity validation
o Duplicate or replay protection
-
- Payment Execution
- FARO processes the payment and returns the transaction result.
- The API normalizes the response and returns a structured payment object to the consumer.
GraphQL Mutation
Submit Bill Payment
"""Root mutation type — submit a new bill payment to FARO."""
type Mutation {
submitBillPay(input: BillPayInput!): BillPayment
}
Bill Payment Response
Description
The BillPayment type represents the payment transaction result returned by the FARO payment backend. It includes identifiers, claim information, patient and subscriber details, provider information, and payment metadata.
Schema Definition
"""
Bill payment result returned by the FARO payment backend.
"""
type BillPayment @key(fields: "id") {
id: String
claimNumber: String
claimType: String
client: String
description: String
syntheticId: String
amount: Float
availableBalance: Float
totalClaimAmount: Float
patientRespAmount: Float
dateOfServiceFrom: String
dateOfServiceTo: String
transactionDate: String
timestamp: String
version: String
segmentroutingID: String
subscriberID: String
subscriberFirstName: String
subscriberLastName: String
patientFirstName: String
patientLastName: String
patientAccountNumber: String
patientDOB: String
patientID: String
payeeName: String
payeeAddress1: String
payeeAddress2: String
payeeCity: String
payeeState: String
payeeZip: String
payeeCountry: String
payeePatientAccountNumber: String
payeeTIN: String
"""
Payer 835 EDI identifier.
"""
payer835Id: String
rendProviderFirstName: String
rendProviderLastName: String
rendProviderId: String
}
Updated 16 days ago