Const{
type: "GET_BILLS_BY_PARCEL_NUMBER_REQUEST",
payload: {
parcelNumber: "123-456-789"
}
}
{
type: "GET_BILLS_BY_PARCEL_NUMBER_SUCCESS",
payload: {
parcelNumber: "123-456-789",
data: [{
taxYear: "2025",
billBalance: 125.5,
townCode: "SHELBY",
city: "Memphis",
streetName: "Main St",
streetNumber: "123",
billNumber: 123,
feesDue: 5,
interestAndFeesDue: 7.5,
interestDue: 2.5,
taxingAuthority: "Shelby County",
ownerCity: "Memphis",
ownerState: "TN",
ownerStreetAddress: "123 Main St",
ownerZipCode: "38103",
billPaymentType: 1,
billTaxYear: 2025,
dueDate: "2026-02-28",
parcelId: "123-456-789",
billId: "bill-id",
notPayableReason: "",
notPayable: false
}]
}
}
{
type: "GET_BILLS_BY_PARCEL_NUMBER_FAILURE",
payload: {
parcelNumber: "123-456-789",
error: "Not found"
}
}
Dispatch to fetch a tax account by parcel number.
{
type: "GET_TAX_ACCOUNT_BY_PARCEL_NUMBER_REQUEST",
payload: {
parcelNumber: "123-456-789"
}
}
{
type: "GET_TAX_ACCOUNT_BY_PARCEL_NUMBER_SUCCESS",
payload: {
parcelNumber: "123-456-789",
data: {
accountId: "account-id",
ownerName: "Jane Doe",
address: "123 Main St",
propertyType: "Residential",
taxSaleAccount: false
}
}
}
{
type: "GET_TAX_ACCOUNT_BY_PARCEL_NUMBER_FAILURE",
payload: {
parcelNumber: "123-456-789",
error: "Not found"
}
}
Dispatch to submit a bill payment request.
PAY_BILL_REQUEST expects a BillPaymentRequest payload with these
properties:
billNumber: bill identifier expected by the PayIt integration API.effectiveDate: effective payment date as an ISO date string.transactionId: Zamok transaction identifier.amount: payment amount in dollars.contactPhone: payer phone number.contactEmail: optional payer email address.cashPayment: optional flag identifying a cash payment.paidBy: optional payer display name.PAY_BILL_SUCCESS contains a BillPaymentResponse. All response
identifiers are optional and nullable: payableId, serviceOfferingId,
payItTransactionId, lineItemId, externalTransactionId, and
externalReceiptId.
In the Shelby workflow, billNumber is populated from the selected
TaxBill.billId; billId is not a property of BillPaymentRequest.
{
type: "PAY_BILL_REQUEST",
payload: {
billNumber: "2025-000123",
effectiveDate: "2026-08-25",
transactionId: "zamok-transaction-id",
amount: 125.5,
contactEmail: "payer@example.com",
contactPhone: "9015550100",
cashPayment: false,
paidBy: "Jane Doe"
}
}
{
type: "PAY_BILL_SUCCESS",
payload: {
payableId: "payable-id",
serviceOfferingId: "service-offering-id",
payItTransactionId: "payit-transaction-id",
lineItemId: "line-item-id",
externalTransactionId: "external-transaction-id",
externalReceiptId: "external-receipt-id"
}
}
{
type: "PAY_BILL_FAILURE",
payload: {
error: "Payment failed"
}
}
Dispatch to record PayIt payment post-log details.
detail records the Zamok transaction, provider, timestamp, original PayIt
response, and reconciliation fields. Identifier fields may be copied to the
top level of detail to support reporting and reconciliation queries.
{
type: "RECORD_PAYMENT_POST_LOG",
payload: {
id: "zamok-transaction-id",
detail: {
zamokTransactionId: "zamok-transaction-id",
provider: "payit-integration",
recordedAt: new Date("2026-08-25T12:00:00.000Z"),
amount: 125.5,
tenderType: "credit",
response: {
payItTransactionId: "payit-transaction-id",
externalReceiptId: "receipt-id"
},
reconciliationFields: [
{ key: "payItTransactionId", value: "payit-transaction-id" },
{ key: "externalReceiptId", value: "receipt-id" }
],
payItTransactionId: "payit-transaction-id",
externalReceiptId: "receipt-id"
}
}
}
Dispatch to search tax accounts by business name.
{
type: "SEARCH_ACCOUNTS_BY_BUSINESS_NAME_REQUEST",
payload: {
businessName: "Acme LLC"
}
}
{
type: "SEARCH_ACCOUNTS_BY_BUSINESS_NAME_SUCCESS",
payload: {
businessName: "Acme LLC",
data: []
}
}
{
type: "SEARCH_ACCOUNTS_BY_BUSINESS_NAME_FAILURE",
payload: {
businessName: "Acme LLC",
error: "Search failed"
}
}
Dispatch to search tax accounts by owner name.
{
type: "SEARCH_ACCOUNTS_BY_OWNER_NAME_REQUEST",
payload: {
ownerFirstName: "Jane",
ownerLastName: "Doe"
}
}
{
type: "SEARCH_ACCOUNTS_BY_OWNER_NAME_SUCCESS",
payload: {
ownerFirstName: "Jane",
ownerLastName: "Doe",
data: []
}
}
{
type: "SEARCH_ACCOUNTS_BY_OWNER_NAME_FAILURE",
payload: {
ownerFirstName: "Jane",
ownerLastName: "Doe",
error: "Search failed"
}
}
Dispatch to search tax accounts by street address.
{
type: "SEARCH_ACCOUNTS_BY_STREET_ADDRESS_REQUEST",
payload: {
streetNumber: "123",
streetName: "Main St"
}
}
{
type: "SEARCH_ACCOUNTS_BY_STREET_ADDRESS_SUCCESS",
payload: {
streetNumber: "123",
streetName: "Main St",
data: []
}
}
{
type: "SEARCH_ACCOUNTS_BY_STREET_ADDRESS_FAILURE",
payload: {
streetNumber: "123",
streetName: "Main St",
error: "Search failed"
}
}
Dispatch to set whether the payment flow is client-initiated.
Dispatch to fetch tax bills by parcel number.