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
- Retrieve draws pending approval
- Approve draws programmatically
- Retrieve approved draws
- Execute payments in an external system
- Report payment status back to Neighborly Software (mark as disbursed)
List 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 matchproperty[contains]=value— substringproperty[startsWith]=value— prefixproperty[endsWith]=value— suffix
-
Numeric and date properties:
property=value— exactproperty[gt]=value— greater thanproperty[gte]=value— greater than or equalproperty[lt]=value— less thanproperty[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
query Parameters
pageNumberintegerThe page number to retrieve
Example: 1pageSizeintegerThe number of items per page
Example: 10sortBystringThe field to sort by
Example: ModifiedDatesortOrderstring · enumThe order to sort by
Enum values:ascdescExample: desc
Responses
OK response with a list of draws
pageNumberintegerThe current page number
Example: 1pageSizeintegerThe number of items per page
Example: 100pageCountintegerThe total number of pages
Example: 5totalRecordCountintegerTotal number of records available
Example: 500recordsobject[]List of draws
Get draw by ID
Retrieves an individual draw by id.
path Parameters
idinteger · requiredThe id of the draw.
Example: 123
Responses
OK response with the requested draw
idintegerExample: 12345caseIdinteger | nullExample: 12345caseNamestring | nullExample: John Doestatusinteger · enumStatus of the draw. Allowed values: 0 = Not Submitted 1 = Submitted 2 = Cancelled 3 = Pending Approval 4 = Approved 5 = Disbursed
Enum values:012345Example: 0requestedBystringExample: example@cityofniceneighbors.govrequestedDatestring · date-timeAll times UTC
Example: 0001-01-01T00:00:00amountRequestednumber | null · doubleExample: 1000approvedBystring | nullExample: example@cityofniceneighbors.govapprovedDatestring | null · date-timeAll times UTC
Example: 0001-01-01T00:00:00amountApprovednumber | null · doubleExample: 1000disbursedBystring | nullExample: example@cityofniceneighbors.govdisbursedDatestring | null · date-timeAll times UTC
Example: 0001-01-01T00:00:00amountDisbursednumber | null · doubleExample: 1000descriptionstring | nullExample: Some descriptionmodifiedBystringExample: example@cityofniceneighbors.govmodifiedDatestring · date-timeAll times UTC
Example: 0001-01-01T00:00:00fieldAstring | nullExample: Field A valuefieldBstring | nullExample: Field B valuefieldCstring | nullExample: Field C valuefieldDstring | nullExample: Field D valuefieldEstring | nullExample: Field E valueconfigDrawApproverGroupIdintegerApprover group to which this draw belongs. Approvers for a draw’s approval workflow are determined by the draws approver group.
Example: 123workflowIdintegerThe id of the program(workflow) to which this draw's case belongs.
Example: 123
Update a draw
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 Conflictif 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.
path Parameters
idinteger · requiredThe id of the draw.
Example: 123
Request Body
descriptionstringOptional. Updates the draw description visible to participants.
participant_FieldAstring | nullParticipant-facing custom field A. Optionally configurable field visible on draws in participant portal.
participant_FieldBstring | nullParticipant-facing custom field B. Optionally configurable field visible on draws in participant portal.
participant_FieldCstring | nullParticipant-facing custom field C. Optionally configurable field visible on draws in participant portal.
fieldAstring | nullAdministrator-facing custom field A. Optionally configurable field visible on draws in administrator portal.
fieldBstring | nullAdministrator-facing custom field B. Optionally configurable field visible on draws in administrator portal.
fieldCstring | nullAdministrator-facing custom field C. Optionally configurable field visible on draws in administrator portal.
fieldDstring | nullAdministrator-facing custom field D. Optionally configurable field visible on draws in administrator portal.
fieldEstring | nullAdministrator-facing custom field E. Optionally configurable field visible on draws in administrator portal.
disbursedDatestring · date-timeManually 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:00admin_Descriptionstring | nullAdmin-facing description.
Rule: Only permitted if the workflow is configured to allow an admin description field.
Responses
OK response with the updated draw
idintegerExample: 12345caseIdinteger | nullExample: 12345caseNamestring | nullExample: John Doestatusinteger · enumStatus of the draw. Allowed values: 0 = Not Submitted 1 = Submitted 2 = Cancelled 3 = Pending Approval 4 = Approved 5 = Disbursed
Enum values:012345Example: 0requestedBystringExample: example@cityofniceneighbors.govrequestedDatestring · date-timeAll times UTC
Example: 0001-01-01T00:00:00amountRequestednumber | null · doubleExample: 1000approvedBystring | nullExample: example@cityofniceneighbors.govapprovedDatestring | null · date-timeAll times UTC
Example: 0001-01-01T00:00:00amountApprovednumber | null · doubleExample: 1000disbursedBystring | nullExample: example@cityofniceneighbors.govdisbursedDatestring | null · date-timeAll times UTC
Example: 0001-01-01T00:00:00amountDisbursednumber | null · doubleExample: 1000descriptionstring | nullExample: Some descriptionmodifiedBystringExample: example@cityofniceneighbors.govmodifiedDatestring · date-timeAll times UTC
Example: 0001-01-01T00:00:00fieldAstring | nullExample: Field A valuefieldBstring | nullExample: Field B valuefieldCstring | nullExample: Field C valuefieldDstring | nullExample: Field D valuefieldEstring | nullExample: Field E valueconfigDrawApproverGroupIdintegerApprover group to which this draw belongs. Approvers for a draw’s approval workflow are determined by the draws approver group.
Example: 123workflowIdintegerThe id of the program(workflow) to which this draw's case belongs.
Example: 123
Bulk Approve Draws
Accepts an array of draw approval objects and returns a list of results indicating success or failure per draw. Limit of 500 draws.
Request Body
idinteger · requiredapproverIdinteger · requiredThe 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
notesstringNotes regarding the approval. Will be included in the audit log.
Example: Approved via NBLY APInotificationsEmailsstring[]List of email addresses to notify upon approval.
Example: ["user1@cityofniceneighbors.com","user2@cityofniceneighbors.com"]
Responses
drawIdintegerThe unique identifier of the draw.
errorobjectdrawobject
