Overview

This page provides a comprehensive reference of all enum values used across the GetBill API. These values are used for status fields, types, and other categorical data.
Always use the exact values listed here. String matching is case-sensitive.
  • Debt status: Uses full prefix format (e.g., status.default.paid)
  • Followup status: Uses simple values (e.g., delivered, deal_found)

Debt Status

Debt statuses are stored as database entities with translation keys. All status values follow the pattern status.default.*.
Debt status is a database entity, not a hardcoded enum. Additional custom statuses may exist for specific companies.

Available Status Values

Status ValueTranslation KeyDescriptionColor
status.default.pendingstatus.default.pendingInitial state, awaiting processingBlue
status.default.in_progressstatus.default.in_progressActive collection in progressBlue
status.default.processingstatus.default.processingCurrently being processedBlue
status.default.settledstatus.default.settledDebt settled through payment planGreen
status.default.paidstatus.default.paidFully paid offGreen
status.default.partialstatus.default.partialPartially paidPurple
status.default.failedstatus.default.failedCollection failedRed
status.default.archivedstatus.default.archivedArchived/closedGray
status.default.invalid_phonestatus.default.invalid_phoneInvalid contact informationOrange
status.default.on_holdstatus.default.on_holdOn hold (typically due to dispute)Orange
status.default.refusedstatus.default.refusedDebtor refused to payRed

Usage Examples

curl -X PUT "/external-api/v1/debts/abc123" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "status.default.on_hold",
    "summary": "Customer disputed the charge"
  }'

Status Workflow

Common status transitions:

Followup Status

Followup statuses track the state of collection attempts (calls, emails, SMS, WhatsApp).
Important: The External API uses simple string values for followup status (e.g., delivered, deal_found), NOT the prefixed format used internally. Do not include the followup.status. prefix when using the API.

Available Status Values

API ValueInternal KeyDescriptionColor Code
on_holdfollowup.status.on_holdWaiting/queued state#94A3B8 (Gray)
scheduledfollowup.status.scheduledScheduled for future#FFA500 (Orange)
in_progressfollowup.status.in_progressCurrently in progress#4B8BF9 (Blue)
sentfollowup.status.sentMessage sent successfully#3EDBCF (Teal)
deliveredfollowup.status.deliveredMessage delivered#10B981 (Green)
deal_foundfollowup.status.deal_foundAgreement reached#3EDBCF (Teal)
no_answerfollowup.status.no_answerNo response received#F59E0B (Amber)
deal_not_foundfollowup.status.deal_not_foundNo agreement reached#6B7280 (Gray)
bad_behaviorfollowup.status.bad_behaviorNegative behavior detected#EF4444 (Red)
failedfollowup.status.failedAttempt failed#DC2626 (Dark Red)
cancelledfollowup.status.cancelledCancelled by user#6B7280 (Gray)

Usage Examples

curl -X POST "/external-api/v1/followups" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "debt_id": "abc123",
    "type": "call",
    "status": "scheduled",
    "scheduled_at": "2024-03-15T10:00:00Z"
  }'

Status Workflow

Typical followup status progression:

Dispute Status

Dispute statuses track the review state of customer disputes detected by AI or reported manually.

Available Status Values

Status ValueDisplay NameDescriptionColor CodeBadge Class
suggestedPending ReviewAI detected potential dispute, awaiting review#f59e0b (Amber)status-badge--warning
validatedValidatedDispute confirmed as legitimate#10b981 (Green)status-badge--success
rejectedRejectedDispute rejected after review#ef4444 (Red)status-badge--danger

Usage Examples

# Update dispute status
curl -X PUT "/external-api/v1/todos/blocking_dispute/234/status" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "validated",
    "admin_notes": "Verified customer claim, payment was received"
  }'

Dispute Workflow

When a blocking dispute is validated, the associated debt typically remains status.default.on_hold and collection is paused. When rejected, the debt may return to status.default.in_progress to resume collection.

Payment Status

Payment statuses track the state of payment transactions. Used internally for payment processing.
Payment status is primarily used for internal payment tracking and may not be directly exposed in all API endpoints.

Available Status Values

Status ValueDisplay NameDescription
pendingPendingPayment initiated, awaiting processing
processingProcessingPayment being processed
succeededSucceededPayment completed successfully
failedFailedPayment failed
canceledCanceledPayment cancelled
refundedRefundedPayment fully refunded
partially_refundedPartially RefundedPayment partially refunded
requires_actionRequires ActionCustomer action needed (e.g., 3DS)
requires_confirmationRequires ConfirmationPayment confirmation required
requires_payment_methodRequires Payment MethodPayment method required

Followup Type

Types of collection attempts available in the system.

Available Type Values

Type ValueDescription
callAI-powered voice call
manual_callManual voice call by agent
emailEmail communication
smsSMS text message
whatsappWhatsApp message
voicemailVoicemail message
physicalPhysical/in-person contact
postmailPhysical mail/letter

Usage Example

const followup = {
  debt_id: 'abc123',
  type: 'email',  // Must be one of: call, manual_call, email, sms, whatsapp, voicemail, physical, postmail
  status: 'scheduled',
  scheduled_at: '2024-03-15T10:00:00Z'
};

Todo Type

Types of todo items that require attention.

Available Type Values

Type ValueDescriptionUrgency
agreementPayment plan/installment agreementNormal
blocking_disputeUrgent dispute - collection pausedHigh
non_blocking_disputeRegular dispute - collection continuesMedium

Usage Example

# Filter todos by type
curl -X GET "/external-api/v1/todos?type=blocking_dispute&period=since_last_week" \
  -H "Authorization: Bearer YOUR_TOKEN"

Common Patterns

Filtering by Status

Most list endpoints support filtering by status:
# Filter debts by status (uses full prefix)
GET /external-api/v1/debts?status=status.default.paid

# Filter followups by status (uses simple value)
GET /external-api/v1/followups?status=delivered

Updating Status

Debt status uses the full status.default.* prefix, while followup status uses simple values.
For Debts:
{
  "status": "status.default.paid"
}
For Followups:
{
  "status": "delivered"
}

Status Validation

The API will return a 400 Bad Request error if an invalid status value is provided:
{
  "error": true,
  "message": "Invalid status value",
  "code": 400
}

Need Help?

If you encounter status values not listed here or have questions about when to use specific statuses, please refer to: