Dunning

Dunning API provides a way to set up tiered Dunning Plans to assist with collection of accounts receivable. Also, with Payment Retries, you can configure the automatic retries of the payments that failed under certain conditions.

Learn more about the GTV Dunning functionality:

  • Plans and Tiers UI and API guides
  • Payment Retries UI and API guides

For more information, please search through the Gotransverse online documentation:

Terms of Service: Public use
Request Content-Types: application/json
Response Content-Types: application/json
Version: 2.6.0.1

Authentication

api_key_header

An authorization key that is assigned to perform an action in the system. Passed in the form of a X-Api-Key header that is attached to the call. e.g 325509ed604449279d4587c5e35e3235

type
apiKey
name
X-Api-Key
in
header

Testing

Test connection

GET /test-connection

Connects to the server to verify whether the connection can be established.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "level": "string",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Administration

Get configurations

GET /admin/config

Retrieves a list of configurations.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string",
    "name": "string",
    "description": "string",
    "is_active": "boolean"
  }
]
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Create dunning configuration

POST /admin/config

Creates a new dunning configuration with the provided dunning plans and tiers for a tenant.

The dunning configuration with the provided plans and tiers as JSON.

activate_on_import: boolean false
in query

Specifies whether the configuration should be activated upon successful import.

Request Content-Types: application/json
Request Example
{
  "plans": [
    {
      "tiers": [
        {
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "plans": [
    {
      "tiers": [
        {
          "priority_order": "integer",
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get dunning configuration by ID

GET /admin/config/{configuration-id}

Retrieves the complete dunning configuration with the appropriate Dunning Plans and tiers for a tenant by the configuration ID.

configuration-id: string
in path

The ID of the dunning configuration.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "plans": [
    {
      "tiers": [
        {
          "priority_order": "integer",
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Delete dunning configuration

DELETE /admin/config/{configuration-id}

Deletes the dunning configuration with the appropriate Dunning Plans and tiers. You cannot delete an active configuration.

configuration-id: string
in path

The ID of the dunning configuration that needs to be deleted.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "level": "string",
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Activate configuration

POST /admin/config/{configuration-id}/activate

Activates the configuration with the specified configuration ID. Any currently active configuration is deactivated.

configuration-id: string
in path

The ID of the dunning configuration to activate.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "plans": [
    {
      "tiers": [
        {
          "priority_order": "integer",
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Plans

Get Dunning Plans

GET /plans

Retrieves a list of Dunning Plans that belong to a certain tenant.

code: string (up to 50 chars)
in query

The code of the Dunning Plan.

status: string DRAFT, ACTIVE, INACTIVE
in query

Indicates the status of the Dunning Plan.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string",
    "name": "string",
    "code": "string",
    "description": "string",
    "status": "string",
    "strategy": "string",
    "minimum_account_due": "number"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. It is used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. It is used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. It is used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Create Dunning Plan

POST /plans

Creates a new Dunning Plan.

The Dunning Plan as JSON.

Request Content-Types: application/json
Request Example
{
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}
200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get Dunning Plan by ID

GET /plans/{plan-id}

Retrieves a Dunning Plan by the specified ID.

plan-id: string
in path

The ID of the Dunning Plan.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Update Dunning Plan

PUT /plans/{plan-id}

Updates the existing Dunning Plan by the specified ID.

The Dunning Plan as JSON.

plan-id: string
in path

The ID of the Dunning Plan.

Request Content-Types: application/json
Request Example
{
  "id": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}
200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Delete Dunning Plan

DELETE /plans/{plan-id}

Deletes a Dunning Plan associated with the specified ID.

plan-id: string
in path

The ID of the Dunning Plan.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get Dunning Plan history

GET /plans/{plan-id}/history

Retrieves a history of Dunning Plan changes by the associated plan's ID.

plan-id: string
in path

The ID of the Dunning Plan.

sort: string entity_type, event_date, change_type, user_name event_date
in query

The field used to sort the query results arranged by the type of entity, event date, change type, or user name.

sort_direction: string asc, desc desc
in query

The field used to sort the query results set in the ascending or descending order.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 100 20
in query

The number of results per page that can be returned. The maximum number is 100.

200 OK

Success

type
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "entity_id": "string",
    "root_entity_id": "string",
    "event_date": "string (date-time)",
    "change_type": "string",
    "description": "string",
    "user_name": "string",
    "entity_type": "string"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Tiers

Get list of Dunning tiers

GET /plans/{plan-id}/tiers

Retrieves a list of tiers associated with the Dunning Plan with the specified ID.

plan-id: string
in path

The ID of the Dunning Plan.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "priority_order": "integer",
    "id": "string",
    "plan_id": "string",
    "code": "string",
    "name": "string",
    "description": "string",
    "minimum_days_past_due": "integer (int32)",
    "minimum_invoice_due": "number"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. It is used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. It is used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. It is used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Create Dunning tier

POST /plans/{plan-id}/tiers

Creates a Dunning tier within the Dunning Plan with the specified ID.

The Dunning Tier as JSON.

plan-id: string
in path

The ID of the Dunning Plan.

insert_at: integer 1 ≤ x ≤ 100
in query

The priority of this Dunning tier. The minimum value is 1, and the maximum is 100.

Request Content-Types: application/json
Request Example
{
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "priority_order": "integer",
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get Dunning tier by ID

GET /plans/{plan-id}/tiers/{tier-id}

Retrieves a Dunning tier associated with the specified tier's and plan's IDs.

plan-id: string
in path

The ID of the Dunning Plan.

tier-id: string
in path

The ID of the Dunning tier.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "priority_order": "integer",
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Update Dunning tier

PUT /plans/{plan-id}/tiers/{tier-id}

Updates the existing Dunning tier associated with the specified tier's and plan's IDs.

The Dunning tier as JSON.

plan-id: string
in path

The ID of the Dunning Plan.

tier-id: string
in path

The ID of the Dunning tier.

Request Content-Types: application/json
Request Example
{
  "id": "string",
  "plan_id": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "priority_order": "integer",
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Delete Dunning tier

DELETE /plans/{plan-id}/tiers/{tier-id}

Deletes a Dunning tier associated with the specified tier's and plan's IDs.

plan-id: string
in path

The ID of the Dunning Plan.

tier-id: string
in path

The ID of the Dunning tier.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Change priority

PUT /plans/{plan-id}/tiers/{tier-id}/prioritize

Modifies the priority of the Dunning tier.

plan-id: string
in path

The ID for the Dunning Plan.

tier-id: string
in path

The ID of the Dunning tier.

priority_order: integer 1 ≤ x ≤ 100
in query

The priority of this Dunning tier. The minimum value is 1, and maximum is 100.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "priority_order": "integer",
    "id": "string",
    "plan_id": "string",
    "code": "string",
    "name": "string",
    "description": "string",
    "minimum_days_past_due": "integer (int32)",
    "minimum_invoice_due": "number"
  }
]
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get Dunning tier history

GET /plans/{plan-id}/tiers/{tier-id}/history

Retrieves a history of the Dunning tier changes with the specified tier and Plan IDs.

plan-id: string
in path

The ID of the Dunning Plan.

tier-id: string
in path

The ID of the Dunning tier.

sort: string entity_type, event_date, change_type, user_name event_date
in query

The field used to sort the query results arranged by the type of entity, event date, change type, or user name.

sort_direction: string asc, desc desc
in query

The field used to sort the query results set in the ascending or descending order.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 100 20
in query

The number of results per page that can be returned. The maximum number is 100.

200 OK

Success

type
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "entity_id": "string",
    "root_entity_id": "string",
    "event_date": "string (date-time)",
    "change_type": "string",
    "description": "string",
    "user_name": "string",
    "entity_type": "string"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Evaluation

Evaluate billing account for dunning

POST /account/{billing-account-id}/evaluate

Evaluates the specified billing account against the Dunning Plan.

The billing account and open invoices that need to be evaluated.

billing-account-id: string
in path

The ID of the billing account to evaluate.

as_of: string (date-time)
in query

If dunning should be evaluated based upon an as-of date, then the date that should be used instead of now.

save_new_status: boolean false
in query

Specifies whether a new status is saved automatically.

Request Content-Types: application/json
Request Example
{
  "past_due_invoices": [
    {
      "invoice_id": "string",
      "due_date": "string (date-time)",
      "original_amount": "number",
      "remaining_amount": "number",
      "invoice_number": "string"
    }
  ],
  "billing_account_id": "string",
  "dunning_plan_code": "string",
  "dunning_tier_code": "string",
  "dunning_status_date": "string (date-time)",
  "dunning_as_of": "string (date-time)"
}
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "billing_account_id": "string",
  "dunning_plan_code": "string",
  "dunning_tier_code": "string",
  "dunning_status_date": "string (date-time)",
  "dunning_as_of": "string (date-time)"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get dunning status

GET /account/{billing-account-id}/dunning-status

Retrieves a list of dunning states for the specified billing account.

billing-account-id: string
in path

The ID of the billing account to be evaluated against the Dunning Plan.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

sort: string dunning_status_date, dunning_as_of dunning_status_date
in query

The field used to sort the query results arranged by the type of entity, event date, change type, or user name.

sort_direction: string asc, desc desc
in query

The field used to sort the query results set in the ascending or descending order.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "billing_account_id": "string",
    "dunning_plan_code": "string",
    "dunning_tier_code": "string",
    "dunning_status_date": "string (date-time)",
    "dunning_as_of": "string (date-time)"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Add dunning status

POST /account/{billing-account-id}/dunning-status

Adds a dunning status to the specified billing account.

The Dunning status to be added to the billing account.

billing-account-id: string
in path

The ID of the billing account to be evaluated against the Dunning Plan.

Request Content-Types: application/json
Request Example
{
  "billing_account_id": "string",
  "dunning_plan_code": "string",
  "dunning_tier_code": "string",
  "dunning_status_date": "string (date-time)",
  "dunning_as_of": "string (date-time)"
}
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "billing_account_id": "string",
  "dunning_plan_code": "string",
  "dunning_tier_code": "string",
  "dunning_status_date": "string (date-time)",
  "dunning_as_of": "string (date-time)"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Payment Processor Management

Get payment processors

GET /processors

Retrieves a list of payment processors for the configuration.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "key": "string",
    "name": "string",
    "description": "string",
    "class_name": "string"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}

Create payment processor

POST /processors

Adds a new payment processor to the configuration.

The payment processor to be added.

Request Content-Types: application/json
Request Example
{
  "key": "string",
  "name": "string",
  "description": "string",
  "class_name": "string"
}
200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

409 Conflict

Duplicate entity.

422 Unprocessable Entity

Unprocessable entity.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Update payment processor

PUT /processors/{processor-key}

Updates a payment processor. Note that you cannot update the Code once created.

The updated payment processor.

processor-key: string
in path

The code of the payment processor.

Request Content-Types: application/json
Request Example
{
  "key": "string",
  "name": "string",
  "description": "string",
  "class_name": "string"
}

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

409 Conflict

Duplicate entity.

Response Content-Types: application/json
Response Example (200 OK)
{
  "key": "string",
  "name": "string",
  "description": "string",
  "class_name": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}

Delete payment processor

DELETE /processors/{processor-key}

Deletes a payment processor.

processor-key: string
in path

The code of the payment processor.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Reason Code Management

Get payment processor failure reasons

GET /processors/{processor-key}/reasons

Retrieves a list of processor failure reasons for the configuration.

processor-key: string
in path

The code of the payment processor.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "code": "string",
    "name": "string",
    "description": "string"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Create payment processor failure reason

POST /processors/{processor-key}/reasons

Adds a new payment processor failure reason to the configuration.

The payment processor failure reason that you need to add.

processor-key: string
in path

The code of the payment processor.

Request Content-Types: application/json
Request Example
{
  "code": "string",
  "name": "string",
  "description": "string"
}

Success.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

409 Conflict

Duplicate entity.

422 Unprocessable Entity

Unprocessable entity.

Response Content-Types: application/json
Response Example (200 OK)
{
  "code": "string",
  "name": "string",
  "description": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Update a payment processor failure reason

PUT /processors/{processor-key}/reasons/{reason-code}

Updates a payment processor failure reason. Note that you cannot update the Code once created.

The updated payment processor failure reason.

processor-key: string
in path

The code of the payment processor.

reason-code: string
in path

The code of the failure reason.

Request Content-Types: application/json
Request Example
{
  "code": "string",
  "name": "string",
  "description": "string"
}

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

409 Conflict

Duplicate entity.

Response Content-Types: application/json
Response Example (200 OK)
{
  "code": "string",
  "name": "string",
  "description": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}

Delete processor reason

DELETE /processors/{processor-key}/reasons/{reason-code}

Deletes a payment processor reason.

processor-key: string
in path

The code of the payment processor.

reason-code: string
in path

The code of the failure reason.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get generic payment failure reasons

GET /generic-reasons

Retrieves a list of generic payment failure reasons for the configuration.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "code": "string",
    "name": "string",
    "description": "string"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}

Create generic payment failure reason

POST /generic-reasons

Adds a new generic payment failure reason to the configuration.

The generic payment failure reason to add.

Request Content-Types: application/json
Request Example
{
  "code": "string",
  "name": "string",
  "description": "string"
}
200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

409 Conflict

Duplicate entity.

422 Unprocessable Entity

Unprocessable entity.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Update generic payment failure reason

PUT /generic-reasons/{generic-code}

Updates the existing generic payment failure reason. Note that you cannot update the Code once created.

The updated generic payment failure reason.

generic-code: string
in path

The generic payment failure reason code.

Request Content-Types: application/json
Request Example
{
  "code": "string",
  "name": "string",
  "description": "string"
}
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

409 Conflict

Duplicate entity.

Response Content-Types: application/json
Response Example (200 OK)
{
  "code": "string",
  "name": "string",
  "description": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}

Delete generic payment failure reason

DELETE /generic-reasons/{generic-code}

Deletes a generic payment failure reason.

generic-code: string
in path

The generic payment failure reason code.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Get payment processor failure reasons by generic reasons

GET /generic-reasons/{generic-code}/processor-reasons

Retrieves a list of payment processor failure reasons mapped to the generic payment failure reason.

generic-code: string
in path

The generic payment failure reason code.

processor_key: string
in query

The key of the payment processor.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "processor_key": "string",
    "processor_name": "string",
    "code": "string",
    "name": "string",
    "description": "string"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Create failure reason mapping

POST /generic-reasons/{generic-code}/processor-reasons

Adds a mapping for payment processor failure reason and generic payment failure reason.

The payment processor failure reason reference.

generic-code: string
in path

The generic payment failure reason code.

Request Content-Types: application/json
Request Example
{
  "code": "string",
  "processor_key": "string"
}
200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Delete failure reason mapping

DELETE /generic-reasons/{generic-code}/processor-reasons

Deletes mapping between payment processor failure reason and generic payment failure reason.

The payment processor failure reason reference.

generic-code: string
in path

The generic payment failure reason code.

Request Content-Types: application/json
Request Example
{
  "code": "string",
  "processor_key": "string"
}
200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Retry Schedules

Get Retry Schedules

GET /retry-schedules

Retrieves a list of available Payment Retry Schedules.

status: string DRAFT, ACTIVE, INACTIVE
in query

Indicates the status of the Retry Schedule.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "generic_reasons": [
      {
        "code": "string",
        "name": "string",
        "description": "string"
      }
    ],
    "code": "string",
    "name": "string",
    "description": "string",
    "status": "string",
    "minimum_amount": "number",
    "max_retries": "integer (int32)",
    "retry_interval_days": "integer (int32)",
    "account_category_id": "integer (int64)",
    "payment_methods": [
      {
        "method": "string"
      }
    ]
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. Used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. Used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. Used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}

Create Retry Schedule

POST /retry-schedules

Creates a new Payment Retry Schedule.

The payload for adding a new Retry Schedule.

Request Content-Types: application/json
Request Example
{
  "generic_reasons": [
    {
      "code": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

409 Conflict

Duplicate entity.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
{
  "generic_reasons": [
    {
      "code": "string",
      "name": "string",
      "description": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Get Retry Schedule by code

GET /retry-schedules/{code}

Retrieves the specified Retry Schedule by the associated code.

code: string
in path

The code of the Retry Schedule.

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

Response Content-Types: application/json
Response Example (200 OK)
{
  "generic_reasons": [
    {
      "code": "string",
      "name": "string",
      "description": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}

Update Retry Schedule

PUT /retry-schedules/{code}

Updates the existing Payment Retry Schedule associated with the specified code.

The payload for updating the existing Retry Schedule.

code: string
in path

The code of the Retry Schedule.

Request Content-Types: application/json
Request Example
{
  "generic_reasons": [
    {
      "code": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

409 Conflict

Duplicate entity.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
{
  "generic_reasons": [
    {
      "code": "string",
      "name": "string",
      "description": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Delete Retry Schedule

DELETE /retry-schedules/{code}

Deletes a Payment Retry Schedule associated with the specified code.

code: string
in path

The code of the Retry Schedule.

200 OK

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

409 Conflict

Already in use.

Response Content-Types: application/json
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (409 Conflict)
{
  "code": "string",
  "message": "string"
}

Retry Series

Get payments

GET /retry-series/{series-id}/payments

Retrieves a list of payments by the specified retry series ID.

series-id: string
in path

The ID of the retry series.

page_number: integer x ≥ 1 1
in query

A number of the page. By default, the number is '1.' You can find records from this page of results, using the page_size to define the size of the pages.

page_size: integer 1 ≤ x ≤ 500 500
in query

The number of results per page that can be returned. The maximum number is 500.

200 OK

Success

type
401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "payment_id": "integer (int64)",
    "amount": "number",
    "occurred_on": "string (date-time)",
    "payment_status": "string",
    "status_date": "string (date-time)",
    "reason_code": "string",
    "reason": "string",
    "retry_series_id": "string",
    "retry_count": "integer",
    "previous_id": "integer (int64)",
    "original_id": "integer (int64)"
  }
]
Response Headers (200 OK)
X-Total-Count

The total results for the particular query. It is used to drive paging requests.

integer (int64)
X-Elements-Count

The total results returned in this request. It is used to drive paging requests.

integer (int64)
X-Total-Pages

The total pages available for the particular query. It is used to drive paging requests.

integer (int64)
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Get Retry Series

GET /retry-series

Retrieves a Retry Series for the specified payment ID.

payment_id: integer (int64)
in query

The payment ID.

Success

401 Unauthorized

Authentication failed.

403 Forbidden

Access denied.

404 Not Found

Entity not found.

422 Unprocessable Entity

Validation failure.

Response Content-Types: application/json
Response Example (200 OK)
{
  "retry_series_id": "string",
  "series_status": "string",
  "series_status_reason": "string",
  "series_status_date": "string (date-time)",
  "retry_count": "integer",
  "retry_batch_id": "integer (int64)",
  "retry_schedule_code": "string"
}
Response Example (401 Unauthorized)
{
  "code": "string",
  "message": "string"
}
Response Example (403 Forbidden)
{
  "code": "string",
  "message": "string"
}
Response Example (404 Not Found)
{
  "code": "string",
  "message": "string"
}
Response Example (422 Unprocessable Entity)
{
  "code": "string",
  "message": "string"
}

Schema Definitions

Message: object

level: string INFO, WARN, DEBUG

A level for the specific message.

message: string

A message providing additional detail for message.

Example
{
  "level": "string",
  "message": "string"
}

Error: object

code: string

A code for the specific error. Used to help in determining possible root causes of an error.

message: string

A message providing additional detail for an error.

Example
{
  "code": "string",
  "message": "string"
}

DunningConfiguration: object

Dunning Configuration includes properties related to configuration only.

id: string

The UUID of the configuration.

name: string (up to 255 chars)

The name of this configuration.

description: string (up to 255 chars)

The description of this configuration.

is_active: boolean false

Specifies whether this configuration is active. If set to true, this is an active configuration.

Example
{
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}

DunningConfigurationWithPlans:

Dunning Configuration includes Dunning Plans with Dunning tiers.

Example
{
  "plans": [
    {
      "tiers": [
        {
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}

DunningConfigurationWithPlansRead:

Example
{
  "plans": [
    {
      "tiers": [
        {
          "priority_order": "integer",
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "description": "string",
  "is_active": "boolean"
}

DunningPlan: object

A Dunning Plan is a container of dunning tiers.

id: string

The internal ID of the Dunning Plan that is automatically generated by the service.

name: string (up to 255 chars)

The name of this Dunning Plan.

code: string (up to 50 chars)

The code for identifying the Dunning Plan, you can't change it once created.

description: string (up to 255 chars)

The description of this Dunning Plan.

status: string DRAFT, ACTIVE, INACTIVE

The status of this Dunning Plan.

strategy: string OLDEST_OPEN_INVOICE, WORSE_CASE_INVOICE

The strategy of applying the Dunning Plan.

minimum_account_due: number 0.01 ≤ x ≤ 1000000

The minimum overall account balance required to trigger an account to be evaluated for Dunning.

Example
{
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}

UpdateDunningPlan: object

The entity for updating a Dunning Plan.

id: string

The internal ID of the Dunning Plan that is automatically generated by the service.

name: string (up to 255 chars)

The name of this Dunning Plan.

code: string (up to 50 chars)

The code for identifying the Dunning Plan, you can't change it once created.

description: string (up to 255 chars)

The description of this Dunning Plan.

status: string DRAFT, ACTIVE, INACTIVE

The status of this Dunning Plan.

strategy: string OLDEST_OPEN_INVOICE, WORSE_CASE_INVOICE

The strategy of applying the Dunning Plan.

minimum_account_due: number 0.01 ≤ x ≤ 1000000

The minimum overall account balance required to trigger an account to be evaluated for Dunning.

Example
{
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}

AuditEvent: object

A representation of the object change.

entity_id: string

The entity UUID.

root_entity_id: string

The UUID of the root entity.

event_date: string (date-time)

The date when the audit event occurs.

change_type: ChangeTypeEnum
description: string

The description of the audit event. It includes all information about the object change.

user_name: string

The name of the user who made the audit event.

entity_type: string PLAN, TIER, RETRY_SCHEDULE, PAYMENT_PROCESSOR, GENERIC_PAYMENT_FAILURE_REASON, PAYMENT_PROCESSOR_FAILURE_REASON, FAILURE_REASON_MAPPING

The type of entity which change was recorded.

Example
{
  "entity_id": "string",
  "root_entity_id": "string",
  "event_date": "string (date-time)",
  "change_type": "string",
  "description": "string",
  "user_name": "string",
  "entity_type": "string"
}

DunningTierRead:

priority_order: integer

The priority of this tier.

Example
{
  "priority_order": "integer",
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}

DunningTier: object

A Dunning Plan Tier is a level that prompts customers to pay issued billing account invoices that have passed the invoice due date. Multiple tiers compose a dunning plan. Each dunning tier has a trigger indicating exactly when it starts.

id: string

The internal ID of the Dunning Plan tier that is automatically generated by the service.

plan_id: string

The ID of the associated Dunning Plan ID.

code: string (up to 255 chars)

The code of the Dunning Plan tier user for identification, you can't change it once created.

name: string (up to 255 chars)

The name of this Dunning Plan tier.

description: string (up to 255 chars)

The description of this Dunning Plan tier.

minimum_days_past_due: integer (int32) 1 ≤ x ≤ 1000000

The minimum number of days past due to trigger this Dunning Plan tier.

minimum_invoice_due: number 0.01 ≤ x ≤ 1000000

The minimum amount of delinquent funds due in order to trigger this tier.

Example
{
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}

UpdateDunningTier: object

The entity used for updating the Dunning Plan tiers.

id: string

The internal ID of the Dunning Plan tier that is automatically generated by the service.

plan_id: string

The ID of the associated Dunning Plan.

code: string (up to 255 chars)

The code of the Dunning Plan tier user for identification, you can't change it once created.

name: string (up to 255 chars)

The name of this Dunning Plan tier.

description: string (up to 255 chars)

The description of this Dunning Plan tier.

minimum_days_past_due: integer (int32) 1 ≤ x ≤ 1000000

The minimum number of days past due to trigger this tier.

minimum_invoice_due: number 0.01 ≤ x ≤ 1000000

The minimum amount of delinquent funds due in order to trigger this tier.

Example
{
  "id": "string",
  "plan_id": "string",
  "code": "string",
  "name": "string",
  "description": "string",
  "minimum_days_past_due": "integer (int32)",
  "minimum_invoice_due": "number"
}

DunableBillingAccount:

The billing account information used for Dunning assessment.

Example
{
  "past_due_invoices": [
    {
      "invoice_id": "string",
      "due_date": "string (date-time)",
      "original_amount": "number",
      "remaining_amount": "number",
      "invoice_number": "string"
    }
  ],
  "billing_account_id": "string",
  "dunning_plan_code": "string",
  "dunning_tier_code": "string",
  "dunning_status_date": "string (date-time)",
  "dunning_as_of": "string (date-time)"
}

BillingAccountDunningStatus: object

The Dunning Plan and tier associated with the billing account.

billing_account_id: string

The ID of the associated billing account.

dunning_plan_code: string (up to 255 chars)

The dunning code of the associated billing account.

dunning_tier_code: string (up to 255 chars)

The code of the Dunning Plan tier.

dunning_status_date: string (date-time)

The date and time when this dunning determination was made.

dunning_as_of: string (date-time)

The date and time used as the context of the dunning determination.

Example
{
  "billing_account_id": "string",
  "dunning_plan_code": "string",
  "dunning_tier_code": "string",
  "dunning_status_date": "string (date-time)",
  "dunning_as_of": "string (date-time)"
}

PaymentProcessor: object

The representation of the Payment Processor.

key: string (up to 50 chars)

The key of the payment processor.

name: string (up to 255 chars)

The name of the payment processor.

description: string (up to 255 chars)

The description of the payment processor.

class_name: string (up to 255 chars)

The class name of the TRACT payment processor.

Example
{
  "key": "string",
  "name": "string",
  "description": "string",
  "class_name": "string"
}

PaymentFailureReason: object

Indicates the reason why the payment failed.

code: string (up to 50 chars)

The failure reason code.

name: string (up to 255 chars)

The user friendly name of the failure reason.

description: string (up to 255 chars)

The description of the failure reason.

Example
{
  "code": "string",
  "name": "string",
  "description": "string"
}

GenericPaymentFailureReason:

The Generic Payment Failure Reason.

Example
{
  "code": "string",
  "name": "string",
  "description": "string"
}

PaymentProcessorFailureReason:

The Payment Processor Failure Reason.

processor_key: string (up to 50 chars)

The key of the payment processor to which this reason belongs.

processor_name: string (up to 255 chars)

The name of the payment processor to which this reason belongs.

Example
{
  "processor_key": "string",
  "processor_name": "string",
  "code": "string",
  "name": "string",
  "description": "string"
}

PaymentProcessorFailureReasonRef: object

A reference to the Payment Processor Failure Reason TRACT entity.

code: string (up to 50 chars)

The code of the payment processor failure reason.

processor_key: string (up to 50 chars)

The key of the payment processor to which this reason belongs.

Example
{
  "code": "string",
  "processor_key": "string"
}

RetryScheduleWithGenericReasonsRead:

Example
{
  "generic_reasons": [
    {
      "code": "string",
      "name": "string",
      "description": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}

RetryScheduleWithGenericReasons:

Example
{
  "generic_reasons": [
    {
      "code": "string"
    }
  ],
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}

Payment: object

A representation of the Payment.

payment_id: integer (int64)

The ID of the payment.

amount: number 0.01 ≤ x ≤ 1000000

The amount of the payment.

occurred_on: string (date-time)

The date when the payment failed (if it has never been retried earlier) OR when the payment retry occurred.

payment_status: string

Indicates the status of the payment.

status_date: string (date-time)

The payment status date.

reason_code: string (up to 50 chars)

The payment processor failure reason code.

reason: string (up to 1000 chars)

The complete payment processor failure reason.

retry_series_id: string

The ID of the retry series.

retry_count: integer

Indicates how many times the failed payment has been retried.

previous_id: integer (int64)

The ID of the previous payment.

original_id: integer (int64)

The ID of the original payment.

Example
{
  "payment_id": "integer (int64)",
  "amount": "number",
  "occurred_on": "string (date-time)",
  "payment_status": "string",
  "status_date": "string (date-time)",
  "reason_code": "string",
  "reason": "string",
  "retry_series_id": "string",
  "retry_count": "integer",
  "previous_id": "integer (int64)",
  "original_id": "integer (int64)"
}

PaymentWithRetrySeries: object

A representation of the Payment Retry Series. It is a group of payments which includes the original payment and all following payments that were created after each retry attempt.

retry_series_id: string

The ID of the Retry Series.

series_status: string

The status of the Retry Series.

series_status_reason: string

The reason of the Retry Series status change.

series_status_date: string (date-time)

The date and time when the Retry Series has been created.

retry_count: integer

Indicates how many times the failed payment has been retried.

retry_batch_id: integer (int64)

The ID of the Retry batch.

retry_schedule_code: string

The code of the associated Retry Schedule.

Example
{
  "retry_series_id": "string",
  "series_status": "string",
  "series_status_reason": "string",
  "series_status_date": "string (date-time)",
  "retry_count": "integer",
  "retry_batch_id": "integer (int64)",
  "retry_schedule_code": "string"
}

DunningPlans: object

An array of Dunning Plans with Dunning Plan tiers.

plans: DunningPlanWithTiers

An array of the Dunning Plans with Dunning tiers that are a part of the configuration.

DunningPlanWithTiers
Example
{
  "plans": [
    {
      "tiers": [
        {
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ]
}

DunningPlansRead: object

plans: DunningPlanWithTiersRead

Dunning Plans that are a part of this configuration.

DunningPlanWithTiersRead
Example
{
  "plans": [
    {
      "tiers": [
        {
          "priority_order": "integer",
          "id": "string",
          "plan_id": "string",
          "code": "string",
          "name": "string",
          "description": "string",
          "minimum_days_past_due": "integer (int32)",
          "minimum_invoice_due": "number"
        }
      ],
      "id": "string",
      "name": "string",
      "code": "string",
      "description": "string",
      "status": "string",
      "strategy": "string",
      "minimum_account_due": "number"
    }
  ]
}

ChangeTypeEnum: string

string INSERT, UPDATE, DELETE

PastDueInvoices: object

An array of the invoices that have not been paid as of their due date used for Dunning evaluation process.

past_due_invoices: PastDueInvoice
PastDueInvoice
Example
{
  "past_due_invoices": [
    {
      "invoice_id": "string",
      "due_date": "string (date-time)",
      "original_amount": "number",
      "remaining_amount": "number",
      "invoice_number": "string"
    }
  ]
}

RetrySchedule: object

A representation of the Payment Retry Schedule which specifies the minimum overall payment balance required to trigger the payment to be evaluated for the retry process, the maximum amount of attempts the failed payment will be retried, and the interval between the payment retry attempts.

code: string (up to 255 chars)

The code of the Retry Schedule, you can't change it once created.

name: string (up to 255 chars)

The user friendly name of this Retry Schedule.

description: string (up to 255 chars)

The description of this Retry Schedule.

status: string DRAFT, ACTIVE, INACTIVE

Indicates the status of the Retry Schedule. In case you haven't specified it while creating a new Retry Schedule, the DRAFT status is set.

minimum_amount: number 0.01 ≤ x ≤ 1000000

The minimum overall payment balance required to trigger the payment to be evaluated for the retry process.

max_retries: integer (int32) 1 ≤ x ≤ 1000000

The maximum amount of attempts the failed payment will be retried.

retry_interval_days: integer (int32) 0 ≤ x ≤ 1000000

The interval between the payment retry attempts.

account_category_id: integer (int64)

The ID of the associated account category.

payment_methods: PaymentMethod

The payment methods of this Retry Schedule.

PaymentMethod
Example
{
  "code": "string",
  "name": "string",
  "description": "string",
  "status": "string",
  "minimum_amount": "number",
  "max_retries": "integer (int32)",
  "retry_interval_days": "integer (int32)",
  "account_category_id": "integer (int64)",
  "payment_methods": [
    {
      "method": "string"
    }
  ]
}

GenericPaymentFailureReasonRef: object

A reference to the Generic Payment Failure Reason TRACT entity.

code: string (up to 50 chars)

The code of the generic payment failure reason.

Example
{
  "code": "string"
}

DunningPlanWithTiers:

A Dunning Plan with tiers.

Example
{
  "tiers": [
    {
      "id": "string",
      "plan_id": "string",
      "code": "string",
      "name": "string",
      "description": "string",
      "minimum_days_past_due": "integer (int32)",
      "minimum_invoice_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}

DunningPlanWithTiersRead:

Example
{
  "tiers": [
    {
      "priority_order": "integer",
      "id": "string",
      "plan_id": "string",
      "code": "string",
      "name": "string",
      "description": "string",
      "minimum_days_past_due": "integer (int32)",
      "minimum_invoice_due": "number"
    }
  ],
  "id": "string",
  "name": "string",
  "code": "string",
  "description": "string",
  "status": "string",
  "strategy": "string",
  "minimum_account_due": "number"
}

PastDueInvoice: object

An invoice that has not been paid as of its due date.

invoice_id: string

The ID of the invoice.

due_date: string (date-time)

The due date for the invoice.

original_amount: number

The original amount of the invoice.

remaining_amount: number

The remaining amount of the invoice.

invoice_number: string

The invoice number.

Example
{
  "invoice_id": "string",
  "due_date": "string (date-time)",
  "original_amount": "number",
  "remaining_amount": "number",
  "invoice_number": "string"
}

PaymentMethod: object

Indicates the payment method.

method: string PAY_PAL, CREDIT_CARD
Example
{
  "method": "string"
}

DunningTiers: object

An array of Dunning Plan tiers.

tiers: DunningTier

The associated Dunning Plan tiers.

DunningTier
Example
{
  "tiers": [
    {
      "id": "string",
      "plan_id": "string",
      "code": "string",
      "name": "string",
      "description": "string",
      "minimum_days_past_due": "integer (int32)",
      "minimum_invoice_due": "number"
    }
  ]
}

DunningTiersRead: object

Example
{
  "tiers": [
    {
      "priority_order": "integer",
      "id": "string",
      "plan_id": "string",
      "code": "string",
      "name": "string",
      "description": "string",
      "minimum_days_past_due": "integer (int32)",
      "minimum_invoice_due": "number"
    }
  ]
}