Neighborly Software Logo
Neighborly Software - OpenAPI 3.0

Draws

Endpoint:https://api.neighborlysoftware.com

Draws represent requests for funds within Neighborly Software programs.

The Draws API allows customers to programmatically retrieve, review, approve, and track draw requests as part of an external payment or ERP workflow.

This API is commonly used to integrate Neighborly Software with financial systems that execute payments outside of Neighborly Software while maintaining Neighborly Software as the system of record.

Common Use Cases

  • Retrieve Draws for Review — Fetch draws pending approval for external validation, reconciliation, or compliance checks.
  • Approve Draws Programmatically — Approve draws once required checks are complete, supporting batched or automated approval logic.
  • Retrieve Approved Draws for Payment — Access approved draws to generate payment files or initiate ACH/check disbursements in an external system.
  • Report Payment Status Back — Update draw records once payment is executed externally, ensuring accurate status tracking and audit trails.

Typical Integration Flow

  1. Retrieve draws pending approval
  2. Approve draws programmatically
  3. Retrieve approved draws
  4. Execute payments in an external system
  5. Report payment status back to Neighborly Software (mark as disbursed)

List draws

GET
https://api.neighborlysoftware.com
/caseBudgets/draws

Get a paginated list of draws. Results can be filtered by any property of the resource using query parameters.

Filtering conventions:

  • String properties:

    • property=value — exact match
    • property[contains]=value — substring
    • property[startsWith]=value — prefix
    • property[endsWith]=value — suffix
  • Numeric and date properties:

    • property=value — exact
    • property[gt]=value — greater than
    • property[gte]=value — greater than or equal
    • property[lt]=value — less than
    • property[lte]=value — less than or equal
  • Boolean and integer properties:

    • property=value — exact match

Multiple filters can be combined: GET /items?name[contains]=John&amount[gt]=100&active=true

List drawsquery Parameters

  • pageNumberinteger

    The page number to retrieve

    Example: 1
  • pageSizeinteger

    The number of items per page

    Example: 10
  • sortBystring

    The field to sort by

    Example: ModifiedDate
  • sortOrderstring · enum

    The order to sort by

    Enum values:
    asc
    desc
    Example: desc

List drawsResponses

OK response with a list of draws

  • pageNumberinteger

    The current page number

    Example: 1
  • pageSizeinteger

    The number of items per page

    Example: 100
  • pageCountinteger

    The total number of pages

    Example: 5
  • totalRecordCountinteger

    Total number of records available

    Example: 500
  • recordsobject[]

    List of draws


Get draw by ID

GET
https://api.neighborlysoftware.com
/caseBudgets/draws/{id}

Retrieves an individual draw by id.

Get draw by IDpath Parameters

  • idinteger · required

    The id of the draw.

    Example: 123

Get draw by IDResponses

OK response with the requested draw

  • idinteger
    Example: 12345
  • caseIdinteger | null
    Example: 12345
  • caseNamestring | null
    Example: John Doe
  • statusinteger · enum

    Status of the draw. Allowed values: 0 = Not Submitted 1 = Submitted 2 = Cancelled 3 = Pending Approval 4 = Approved 5 = Disbursed

    Enum values:
    0
    1
    2
    3
    4
    5
    Example: 0
  • requestedBystring
    Example: example@cityofniceneighbors.gov
  • requestedDatestring · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • amountRequestednumber | null · double
    Example: 1000
  • approvedBystring | null
    Example: example@cityofniceneighbors.gov
  • approvedDatestring | null · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • amountApprovednumber | null · double
    Example: 1000
  • disbursedBystring | null
    Example: example@cityofniceneighbors.gov
  • disbursedDatestring | null · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • amountDisbursednumber | null · double
    Example: 1000
  • descriptionstring | null
    Example: Some description
  • modifiedBystring
    Example: example@cityofniceneighbors.gov
  • modifiedDatestring · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • fieldAstring | null
    Example: Field A value
  • fieldBstring | null
    Example: Field B value
  • fieldCstring | null
    Example: Field C value
  • fieldDstring | null
    Example: Field D value
  • fieldEstring | null
    Example: Field E value
  • configDrawApproverGroupIdinteger

    Approver group to which this draw belongs. Approvers for a draw’s approval workflow are determined by the draws approver group.

    Example: 123
  • workflowIdinteger

    The id of the program(workflow) to which this draw's case belongs.

    Example: 123

Update a draw

PATCH
https://api.neighborlysoftware.com
/caseBudgets/draws/{id}

Updates an existing Draw resource by ID.

  • Only the fields you include in the request body will be modified.
  • Fields may be rejected with a 409 Conflict if the workflow configuration does not permit changes (e.g., admin description or manual disbursement date).
  • Attempting to update the disbursement date before the draw is marked as disbursed will also result in a 409 Conflict.

Update a drawpath Parameters

  • idinteger · required

    The id of the draw.

    Example: 123

Update a drawRequest Body

  • descriptionstring

    Optional. Updates the draw description visible to participants.

  • participant_FieldAstring | null

    Participant-facing custom field A. Optionally configurable field visible on draws in participant portal.

  • participant_FieldBstring | null

    Participant-facing custom field B. Optionally configurable field visible on draws in participant portal.

  • participant_FieldCstring | null

    Participant-facing custom field C. Optionally configurable field visible on draws in participant portal.

  • fieldAstring | null

    Administrator-facing custom field A. Optionally configurable field visible on draws in administrator portal.

  • fieldBstring | null

    Administrator-facing custom field B. Optionally configurable field visible on draws in administrator portal.

  • fieldCstring | null

    Administrator-facing custom field C. Optionally configurable field visible on draws in administrator portal.

  • fieldDstring | null

    Administrator-facing custom field D. Optionally configurable field visible on draws in administrator portal.

  • fieldEstring | null

    Administrator-facing custom field E. Optionally configurable field visible on draws in administrator portal.

  • disbursedDatestring · date-time

    Manually set the date the draw was disbursed. Rules:

    • Only permitted if the workflow allows manual disbursement date updates.
    • The draw must already be marked as "Disbursed"(status = 5).
      All times are in UTC.
    Example: 2023-10-04T12:00:00
  • admin_Descriptionstring | null

    Admin-facing description.
    Rule: Only permitted if the workflow is configured to allow an admin description field.

Update a drawResponses

OK response with the updated draw

  • idinteger
    Example: 12345
  • caseIdinteger | null
    Example: 12345
  • caseNamestring | null
    Example: John Doe
  • statusinteger · enum

    Status of the draw. Allowed values: 0 = Not Submitted 1 = Submitted 2 = Cancelled 3 = Pending Approval 4 = Approved 5 = Disbursed

    Enum values:
    0
    1
    2
    3
    4
    5
    Example: 0
  • requestedBystring
    Example: example@cityofniceneighbors.gov
  • requestedDatestring · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • amountRequestednumber | null · double
    Example: 1000
  • approvedBystring | null
    Example: example@cityofniceneighbors.gov
  • approvedDatestring | null · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • amountApprovednumber | null · double
    Example: 1000
  • disbursedBystring | null
    Example: example@cityofniceneighbors.gov
  • disbursedDatestring | null · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • amountDisbursednumber | null · double
    Example: 1000
  • descriptionstring | null
    Example: Some description
  • modifiedBystring
    Example: example@cityofniceneighbors.gov
  • modifiedDatestring · date-time

    All times UTC

    Example: 0001-01-01T00:00:00
  • fieldAstring | null
    Example: Field A value
  • fieldBstring | null
    Example: Field B value
  • fieldCstring | null
    Example: Field C value
  • fieldDstring | null
    Example: Field D value
  • fieldEstring | null
    Example: Field E value
  • configDrawApproverGroupIdinteger

    Approver group to which this draw belongs. Approvers for a draw’s approval workflow are determined by the draws approver group.

    Example: 123
  • workflowIdinteger

    The id of the program(workflow) to which this draw's case belongs.

    Example: 123

Bulk Approve Draws

POST
https://api.neighborlysoftware.com
/caseBudgets/draws/approve

Accepts an array of draw approval objects and returns a list of results indicating success or failure per draw. Limit of 500 draws.

Bulk Approve DrawsRequest Body

  • idinteger · required
  • approverIdinteger · required

    The ID of the draw approver. A list of available draw approvers can be retrieved via API(see developers.neighborlysoftware.com/api/configuration#list-draw-approvers), or viewed in the Neighborly portal under Configuration > Program Settings > Draw Approvers.

    Example: 123
  • notesstring

    Notes regarding the approval. Will be included in the audit log.

    Example: Approved via NBLY API
  • notificationsEmailsstring[]

    List of email addresses to notify upon approval.

    Example: ["user1@cityofniceneighbors.com","user2@cityofniceneighbors.com"]

Bulk Approve DrawsResponses

  • drawIdinteger

    The unique identifier of the draw.

  • errorobject
  • drawobject