HomeGuidesAPI ReferenceChangelogDiscussions
GuidesAPI ReferenceDiscussions

Managing a Document Package

Updating a Package

You can use the PATCH /packages/:id to update an existing package.

Cancel a Package

You can use the PATCH API to update the package status to CANCELLED. This will remove any open tasks for the recipients. A package can be cancelled at any time.

Mark a Package as Papered Out

You can use the PATCH API to set a paperedAt date for a package. This will not cancel the package. The package will still remain available for the borrower in their Blend follow-ups list, providing them the option to complete it electronically.

Change or Set the Due Date

For packages of type DOCUMENT_PACKAGE you can change the dueDate. This field simply shows the recipient when the task should be completed. There is no logic behind this field.

Track Package Status

Status Breakdown

There are three levels of statuses to pay attention to.

Package

The package's status is derived from the status of it's envelopes.

StatusCondition
CreatedThe package has been issued but no borrowers have provided e-consent.
DeliveredThe package has been issued in Blend and a borrower has e-consented.
ViewedA borrower has viewed the package.
SignedA borrower has signed the package. This is only applicable if an envelope on the package requires signatures.
CompletedAll recipients have completed all their actions.
DeclinedA recipient has declined the package.
CancelledThe package has been cancelled by the lender.
Failed to CreateThe package was never issued due to an error.

Envelope

The envelope's status is derived from the status of it's recipients.

StatusCondition
Has Not ViewedNo borrower has viewed the envelope.
ViewedA borrower has viewed the envelope.
SignedA borrower has signed the envelope. This is only applicable if the envelope requires signatures.
CompletedAll recipients have completed all their actions.
DeclinedA recipient has declined the envelope.

Envelope Recipient

StatusCondition
Has Not ViewedThe recipient has not viewed the envelope.
ViewedThe recipient has viewed the envelope.
SignedThe recipient has signed the envelope. This is only applicable if the envelope requires signatures.
DeclinedThe recipient has declined the envelope.

Events

Blend offers events to keep you up to date on the latest status of your package. Please see the Package Events for details.

APIs

You can use the GET /packages/:id to get all the status information for a package. You can also use GET /packages to get all the packages for a given application.

Metadata in GET /packages

For each different kind of envelope created for a package, the contents of the metadata in the envelope will follow a different schema. The schema for this metadata is based on the providerType.

ESIGN

E-sign envelopes contain documents that need to be electronically viewed and signed through Blend's esign provider.

In order to create an envelope of this type, document IDs and their corresponding tabs are expected to passed in via https://developers.blend.com/blend/reference#post-a-package. That information will be store in the metadata field and then can be retrieved via GET requests (https://developers.blend.com/blend/reference#retrieve-all-packages-for-an-application and https://developers.blend.com/blend/reference#retrieve-a-package).

{
  // ...Rest of POST /packages fields
  envelopes: [
    {
      providerType: "ESIGN" // provider type
      recipients: [
        {
          partyId: string
          // Metadata used for ESIGN provider type.
          // Same for both POST /packages and GET /packages
          metadata: {
            loanId: string
            documents: [
              {
                documentId: string
                tabs: [
                  // Example of tabs that may be used
                  {
                    type: "approveTabs"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      font?: string
                      fontColor?: string
                      fontSize?: string
                      bold?: boolean
                      height?: number
                      width?: number
                      buttonText?: string
                    }
                  },
                  {
                    type: "signHereTabs"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      scaleValue?: number
                      required?: boolean
                      status?: string
                    }
                  },
                  {
                    type: "dateSignedTabs"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      font?: string
                      fontColor?: string
                      fontSize?: string
                      bold?: boolean
                      value?: string
                    }
                  },
                  {
                    type: "checkboxTabs"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      selected?: boolean
                    }
                  },
                  {
                    type: "textTabs"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      font?: string
                      fontColor?: string
                      fontSize?: string
                      bold?: boolean
                      required?: boolean
                      height?: number
                      width?: number
                      maxLength?: number
                    }
                  },
                  {
                    type: "list"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      value?: string
                    }
                  },
                  {
                    type: "radioGroupTabs"
                    attributes: {
                      groupName?: string
                      radios: [
                        {
                          tabId?: string
                          xPosition: number
                          yPosition: number
                          pageNumber: number
                          value?: string
                          selected?: boolean
                          required?: boolean
                        }
                      ]
                    }
                  },
                  {
                    type: "initialHere"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      scaleValue?: number
                      required?: boolean
                    }
                  },
                  {
                    type: "date"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      font?: string
                      fontColor?: string
                      fontSize?: string
                      bold?: boolean
                      required?: boolean
                    }
                  },
                  {
                    type: "note"
                    attributes: {
                      xPosition: number
                      yPosition: number
                      pageNumber: number
                      tabLabel?: string
                      name?: string
                      conditionalParentLabel?: string
                      conditionalParentValue?: string
                      font?: string
                      fontColor?: string
                      fontSize?: string
                      bold?: boolean
                      height?: number
                      width?: number
                      value?: string
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  ]
}

Wetsign

Wet-sign envelopes contain documents that recipients need to physically sign and then re-upload.

Similar to other envelopes, the WETSIGN envelope contains metadata created via https://developers.blend.com/blend/reference#post-a-package and can be retrieved via GET requests (https://developers.blend.com/blend/reference#retrieve-all-packages-for-an-application and https://developers.blend.com/blend/reference#retrieve-a-package)

{
  // ...Rest of POST /packages fields
  envelopes: [
    {
      providerType: "WETSIGN" // provider type
      recipients: [
        {
          partyId: string
          // Metadata used for WETSIGN provider type.
          // Same for both POST /packages and GET /packages
          metadata: {
            documentIds: string[]
            viewedAt?: string // ISO date string
            viewedIP?: string
            signedAt?: string // ISO date string
            signedIP?: string
          }
        }
      ]
    }
  ]
}

Review

Review envelopes contain documents for recipients where recipients need to only view electronically.

Similar to other envelopes, the REVIEW envelope contains metadata created via https://developers.blend.com/blend/reference#post-a-package and can be retrieved via GET requests (https://developers.blend.com/blend/reference#retrieve-all-packages-for-an-application and https://developers.blend.com/blend/reference#retrieve-a-package)

{
  // ...Rest of POST /packages fields
  envelopes: [
    {
      providerType: "REVIEW" // provider type
      recipients: [
        {
          partyId: string
          // Metadata used for REVIEW provider type.
          // Same for both POST /packages and GET /packages
          metadata: {
            documents: [
              {
                documentId: string
                type?: string
                name?: string
                description?: string
                reviewTracking?: {
                  ip: string
                  timestamp: number // unix timestamp
                }
              }
            ]
          }
        }
      ]
    }
  ];
}