{"openapi":"3.0.0","info":{"version":"1.0.0","title":"Benefits Intake","description":"The Benefits Intake API enables authorized third-party systems, such as those used by Veteran Service Organizations (VSOs), agencies, and Veterans, to digitally submit documents for VA benefits claims directly to the claims intake process of the Veterans Benefits Administration (VBA). This API handles documents related to the following benefit claim types:\n* Compensation\n* Pension/Survivors Benefits\n* Education\n* Fiduciary\n* Insurance\n* Veteran Readiness & Employment (VRE)\n* Board of Veteran Appeals (BVA)\n\nAdditionally, the API offers real-time status updates on document submissions until they've been successfully accepted by VBA or another VA system for claims processing.\n\n**Important**: This API **may not** be used for Veterans Health Administration (VHA) benefits forms, including the Instructions and Enrollment Application for Health Benefits form (10-10EZ) and the application for CHAMPVA benefits form (10-10d).\n\n## Technical overview\nThe Benefits Intake API first provides an upload location and unique submission identifier, and then accepts a payload consisting of a PDF document, other optional PDF attachments, and JSON metadata. The metadata describes the PDF attachments and identifies the Veteran who the benefits are related to.\n\n### Authentication and Authorization\nAPI requests are authorized through a symmetric API token, provided in an HTTP header with name `apikey`. [Get access to sandbox](https://developer.va.gov/explore/api/benefits-intake/sandbox-access).\n\n### Test data\nSince the primary purpose of this API is to accept user submissions, it doesn't have mock test data available. In the sandbox environment, data submitted to the API is not sent downstream. This API can return data that has been previously submitted by a consumer.\n\n### Document Submission Statuses\n\nAfter a successful upload, a submission status can be tracked using the GET /uploads/{id} endpoint. If multiple uploads have been made, the POST /uploads/report endpoint can be used to track the status of multiple submissions. For more information, please see steps 5 and 6 in the **How to Upload** section of this documentation or check out the example curl and response sections for these endpoints.\n\nDetailed descriptions of what each status means are found in this table.\n| Status | What it means |\n| --- | --- |\n| **Pending** | - This is the initial status. Indicates no document submission has been uploaded yet.

- Date of Receipt is not yet established with this status. |\n| **Uploaded** | - Indicates document submission has been successfully uploaded (PUT) to the API server.

- Submission has not yet been validated.

- Date of Receipt is not yet established with this status.

- Any errors with the document submission, such as having an unreadable PDF, may cause an Error status. |\n| **Received** | - Indicates document submission has been received downstream of the API and is awaiting processing.

- The VA Date of Receipt is set when this status is achieved.

- Any errors with the document submission, such as having an unreadable PDF, may cause an Error status.

- This is the final status in the sandbox environment unless further progress is simulated by the user. |\n| **Processing**| - Indicates the document package is being validated, processed, and made ready to route and work.

- Any errors with the document submission, such as having an unreadable PDF, may cause an Error status.|\n| **Success** | - Indicates the document submission has been successfully received within VA's mail handling system.

- Success is the final status for a small percentage of submissions with claim types, Veteran types, or exception processes that are not worked in VBMS. A true value in the final_status attribute will indicate this.

- Most submissions reach a Success status within 1 business day.

- A small portion will take longer. However, some submissions may take up to 2 weeks to reach a Success status.|\n| **VBMS** | - Indicates the document submission was successfully uploaded into a Veteran's eFolder within VBMS.

- On average, submissions reach VBMS status within 3 business days. However, processing times vary and some submissions may remain in a Success status for several weeks before reaching a VBMS status.

- Some document packages are worked in VA systems other than VBMS. For these submissions, Success is the final status. |\n| **Error** | - Indicates that there was an error. Refer to the error code and detail for further information. |\n| **Expired** | - After a POST request, there is a 15-minute window during which documents must be uploaded via a PUT request.

- An Expired status means the documents were not successfully uploaded within this 15-minute window.

- We recommend coding to retry unsuccessful uploads within 15 minutes using the same submission in case of connection issues. |\n\nIn the sandbox environment:\n* The final status of a submission is `received` since submissions do not actually progress to the Central Mail repository or VBMS.\n* Progress beyond the `received` status can be simulated for testing. A `Status-Override` header can be passed on the `/uploads/{id}` endpoint to change the status of a submission to simulate the various status scenarios.\n\nIn the production environment:\n* The date that the Benefits Intake API submits the documents downstream (indicated by the `received` status) is used as the official VA date of receipt. This is usually the same day as when the documents are submitted by users, but not always.\n* If the document's final destination is VBMS, it can fall into an `error` state until the status of VBMS is returned.\n* If the document's final destination is another VA system besides VBMS, it can fall into an `error` state until the status of `success` is returned.\n\n\n### How to avoid submission errors\nThe Benefits Intake API returns three different categories of errors:\n* HTTP errors relating to the client request. These errors will be immediate.\n* Metadata and PDF validation errors run by the system before passing the submission downstream to subsequent services. These errors will be asynchronous but generally come within minutes of submission.\n* Downstream errors returned by subsequent services, usually relating to the content of the PDFs or metadata. These errors will be asynchronous and can take minutes to hours or longer to receive.\n\nTo prevent submission delays and errors:\n* Ensure that submitted PDFs are not locked by user passwords and that they are within the file and page size limits before submitting your payload.\n* Be sure to validate all metadata fields against their data requirements as defined in the DocumentUploadMetadata schema before submitting your payload.\n* The businessLine field is optional, but when included, it will ensure the fastest possible processing. If not specified, businessLine will default to CMP, the business line for Compensation requests.\n* The POST /uploads/validate_document endpoint can be used to ensure individual PDF documents meet system requirements prior to submission.\n\nFor information on how to monitor the status of submissions, please see Steps 5 and 6 of the **How to Upload** section of this documentation.\n\n### Attachment & file size limits\nThere is no limit on the number of files a payload can contain, but file size and page dimension limits do apply.\n* Uploaded PDFs can't be larger than 78\" x 101\".\n* Uploaded PDFs can't exceed 100 MB.\n* The entire payload can't exceed 5 GB.\n\n### How to Upload\nThe Upload operation lets a client upload a multi-part document submission, specifically PDFs and metadata. Uploading is detailed below.\n1. Client Request: POST https://sandbox-api.va.gov/services/vba_documents/v1/\n * No request body or parameters required.\n2. Service Response: A JSON API object with the following attributes:\n * `guid`: An identifier used for subsequent status requests.\n * `location`: A URL to which the actual document submission payload can be submitted in the next step. The URL is specific to this upload request, and should not be re-used for subsequent uploads. The URL is valid for 15 minutes (900 seconds) from the time of this response. If the location is not used within 15 minutes, the GUID will expire. Once expired, status checks on the GUID will return a status of `expired`.\n * **Note**: If the status hasn't changed to uploaded within 15 minutes of submission, retry the POST request in step 1 to generate a new location URL.\n3. Client Request: PUT to the location URL returned in step 2.\n * The request body should use the binary multipart/form-data format . The body can optionally be encoded as Base64.\n * No `apikey` authorization header is required for this request, as authorization is embedded in the signed location URL.\n4. Service Response: The HTTP status indicates whether the upload was submitted.\n * Additionally, the response includes an ETag header containing an MD5 hash of the submitted payload. This can be compared to the submitted payload to ensure data integrity of the upload.\n * **Note**: A successful document submission **_does not_** mean it was successfully received by VA. Successful document submissions can fail later, as discussed above in the \"How to avoid submission errors\" section.\n5. Client Request: GET https://sandbox-api.va.gov/services/vba_documents/v2/uploads/{id}\n * `id`: An identifier (`guid`) returned in step 2 by the previous submission.\n6. Service Response: A JSON API object with the following attributes:\n * `guid`: The identifier of the submission for which a status was requested.\n * `status`: The current status of the submission. See the previous \"Document Submission Statuses\" section for more information about the specific statuses.\n * `code`: Only present if `status` is `error`. An error code specifying why the submission is in an error state. For a list of the error codes, see the schema for the GET /uploads/{id} 200 response.\n * `detail`: Only present if `status` is `error`. Plain language detailing of the error corresponding to the error code and the specific submission.\n * `final_status`: Indicates whether the status of the submission is final. Submissions with a `final_status` of `true` will no longer update to a new status.\n * `updated_at`: The last time the submission status was updated.\n\n\nIf submissions to the API are made frequently, the bulk status endpoint should be used in place of the above Step 5 to request updates for multiple submissions:\n\n5. Client Request: POST https://sandbox-api.va.gov/services/vba_documents/v1/uploads/report\n * `ids`: A list of identifiers ( guid) returned in step 2 by the previous submissions.\n6. Service Response: A JSON API object with the following attributes for each `id`:\n * `guid`: The identifier of the submission for which a status was requested.\n * `status`: The current status of the submission. See the previous \"Document Submission Statuses\" section for more information about the specific statuses.\n * `code`: Only present if `status` is `error`. An error code specifying why the submission is in an error state. For a list of the error codes, see the schema for the GET /uploads/{id} 200 response.\n * `detail`: Only present if `status` is `error`. Plain language detailing of the error corresponding to the error code and the specific submission.\n * `final_status`: Indicates whether the status of the submission is final. Submissions with a `final_status` of `true` will no longer update to a new status.\n * `updated_at`: The last time the submission status was updated.\n * Due to current system limitations, data for the /uploads/report endpoint is cached for one hour. The /uploads/{id} endpoint isn't cached.\n\n\n### Optional Base64 encoding\nBase64 is an encoding scheme that converts binary data into text format, so that encoded textual data can be easily transported over networks uncorrupted and without data loss.\n\nBase64 can be used to encode binary multipart/form-data in its entirety. Note that the whole payload must be encoded, not individual parts/attachments.\n\nAfter encoding the payload, the base64 string must be prefaced with `data:multipart/form-data;base64` in order to allow the system to distinguish the file type.\n\nThe final string payload will look something like this: `data:multipart/form-data;base64,(encryption string)==`, and close with the standard == marker. Note that the multipart boundaries, that is,\\\n-----WebKitFormBoundaryVfOwzCyvug0JmWYo and ending in\\\n------WebKitFormBoundaryVfOwzCyvug0JmWYo- must also be included.\n","contact":{"name":"va.gov"}},"tags":[{"name":["VBA Documents"],"description":"VA Benefits document upload functionality"}],"servers":[{"url":"https://sandbox-api.va.gov/services/vba_documents/{version}","description":"Sandbox","variables":{"version":{"default":"v1"}}},{"url":"https://api.va.gov/services/vba_documents/{version}","description":"Production","variables":{"version":{"default":"v1"}}}],"basePath":"/services/vba_documents/v1","consumes":["application/json"],"produces":["application/json"],"paths":{"/uploads":{"post":{"tags":[["VBA Documents"]],"responses":{"202":{"description":"Accepted. Location generated","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DocumentUploadPath"}}}}}},"401":{"description":"Authorization information not provided","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"No API key found in request"}}}}},"403":{"description":"Invalid authorization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"You cannot consume this service"}}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorModel"}}}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Internal server error"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Internal server error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"The server took too long to respond"}}}}}},"summary":"Get a location for subsequent document upload PUT request","operationId":"POST:/uploads","security":[{"apikey":[]}]}},"/path":{"put":{"tags":[["VBA Documents"]],"responses":{"200":{"description":"Document upload staged"},"401":{"description":"Authorization information not provided","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"No API key found in request"}}}}},"403":{"description":"Invalid authorization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"You cannot consume this service"}}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorModel"}}}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Internal server error"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Internal server error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"The server took too long to respond"}}}}}},"summary":"Accepts document upload.","description":"Accepts document metadata, document binary, and attachment binaries. Full URL, including\nquery parameters, provided from POST `/document_uploads`.\n\n## Example Payload\n\nThe following demonstrates a (redacted) multipart payload suitable for submitting to the PUT\nendpoint. Most programming languages should have provisions for assembling a multipart\npayload like this without having to do so manually.\n\n```\n--17de1ed8f01442b2a2d7a93506314b76\nContent-Disposition: form-data; name=\"metadata\"\nContent-Type: application/json\n\n{\"veteranFirstName\": \"Jane\",\n\"veteranLastName\": \"Doe\",\n\"fileNumber\": \"012345678\",\n\"zipCode\": \"97202\",\n\"source\": \"MyVSO\",\n\"docType\": \"21-22\"\n\"businessLine\": \"CMP\"}\n--17de1ed8f01442b2a2d7a93506314b76\nContent-Disposition: form-data; name=\"content\"\nContent-Type: application/pdf\n\n\n--17de1ed8f01442b2a2d7a93506314b76\nContent-Disposition: form-data; name=\"attachment1\"\nContent-Type: application/pdf\n\n\n--17de1ed8f01442b2a2d7a93506314b76--\n```\n\nThis PUT request would have an overall HTTP Content-Type header:\n\n```\nContent-Type: multipart/form-data; boundary=17de1ed8f01442b2a2d7a93506314b76\n```\n\nNote that the Content-Disposition parameter \"name\" in each part must be the expected values\n\"metadata\", \"content\", \"attachment1\"...\"attachmentN\". The attachment attributes must be named \nexactly as they are listed here (case sensitive), for example: \"attachment_1\" or \"Attachment2\"\nare invalid.\n\nThis is an example curl command:\n\n```\ncurl -v -L -X PUT '' -F 'metadata=\"{\\\"veteranFirstName\\\": \\\"Jane\\\",\\\"veteranLastName\\\": \\\"Doe\\\",\\\"fileNumber\\\": \\\"012345678\\\",\\\"zipCode\\\": \\\"97202\\\",\\\"source\\\": \\\"MyVSO\\\",\\\"docType\\\": \\\"21-22\\\",\\\"businessLine\\\": \\\"CMP\\\"}\";type=application/json' -F 'content=@\"content.pdf\"' -F 'attachment1=@\"file1.pdf\"' -F 'attachment2=@\"another_file.pdf\"'\n```\n","operationId":"PUT:/path","parameters":[{"name":"Content-MD5","in":"header","description":"Base64-encoded 128-bit MD5 digest of the message. Use for integrity control","required":false,"schema":{"type":"string","format":"md5"}}]}},"/uploads/{id}":{"get":{"tags":[["VBA Documents"]],"responses":{"200":{"description":"Upload status retrieved successfully","content":{"application/json":{"schema":{"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DocumentUploadStatus"}}}}}},"401":{"description":"Authorization information not provided","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"No API key found in request"}}}}},"403":{"description":"Invalid authorization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"You cannot consume this service"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Record not found"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"The record identified by {{id}} could not be found"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":404},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":404}}}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Internal server error"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Internal server error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"The server took too long to respond"}}}}}},"summary":"Get status for a previous benefits document upload","operationId":"GET:/uploads/{id}","description":"A request to the `/uploads/{id}` endpoint will return a real-time status for that GUID, and update its status in `/uploads/report`.\\n\\nThe `updated_at` field indicates the last time the status for a given GUID was updated.","security":[{"apikey":[]}],"parameters":[{"name":"id","in":"path","description":"ID as returned by a previous create upload request","required":true,"example":"6d8433c1-cd55-4c24-affd-f592287a7572","schema":{"type":"string","format":"uuid"}}]}},"/uploads/{id}/download":{"get":{"tags":[["VBA Documents"]],"responses":{"200":{"description":"Zip file with the contents of your payload as parsed by our server","content":{"application/zip":{"schema":{"type":"string","format":"binary","example":"Binary File"}}}},"401":{"description":"Authorization information not provided","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"No API key found in request"}}}}},"403":{"description":"Invalid authorization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"You cannot consume this service"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Record not found"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"The record identified by {{id}} could not be found"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":404},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":404}}}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Internal server error"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Internal server error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"The server took too long to respond"}}}}}},"summary":"Download zip of \"what the server sees\"","description":"An endpoint that will allow you to see exactly what the server sees. We split apart all submitted docs and metadata and zip the file to make it available to you to help with debugging purposes. Files are deleted after 10 days. Only available in testing environments, not production.","operationId":"GET:/uploads/{id}/download","security":[{"apikey":[]}],"parameters":[{"name":"id","in":"path","description":"ID as returned by a previous create upload request","required":true,"example":"6d8433c1-cd55-4c24-affd-f592287a7572","schema":{"type":"string","format":"uuid"}}]}},"/uploads/report":{"post":{"tags":[["VBA Documents"]],"responses":{"200":{"description":"Upload status report retrieved successfully","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DocumentUploadStatusReport"}}}}}},"400":{"description":"Bad Request - invalid, missing, or oversized list of guids (max 1000)","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/UploadsReportBadRequestErrorModel"}}}}}}},"401":{"description":"Authorization information not provided","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"No API key found in request"}}}}},"403":{"description":"Invalid authorization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"You cannot consume this service"}}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorModel"}}}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Internal server error"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Internal server error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"The server took too long to respond"}}}}}},"summary":"Get a bulk status report for a list of previous uploads","operationId":"POST:/uploads/report","description":"Due to current system limitations, data for the `/uploads/report` endpoint is cached for one hour.\\n\\nA request to the `/uploads/{id}` endpoint will return a real-time status for that GUID, and update its status in `/uploads/report`.\\n\\nThe `updated_at` field indicates the last time the status for a given GUID was updated.","security":[{"apikey":[]}],"requestBody":{"description":"List of GUIDs for which to retrieve current status","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUploadStatusGuidList"}}}}}},"/uploads/validate_document":{"post":{"tags":[["VBA Documents"]],"responses":{"200":{"description":"Document passed system requirements","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"properties":{"type":{"type":"string","example":"documentValidation","description":"schema type"},"attributes":{"type":"object","properties":{"status":{"type":"string","example":"valid"}}}}}}}}}},"401":{"description":"Authorization information not provided","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"No API key found in request"}}}}},"403":{"description":"Invalid authorization","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"You cannot consume this service"}}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"422":{"description":"Document did NOT pass system requirements","content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/DocumentValidationErrorModel"}}}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"title":{"description":"Human readable title description.","type":"string","example":"Internal server error"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Internal server error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500},"status":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":500}}}}}},"504":{"description":"Gateway Timeout","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"The server took too long to respond"}}}}}},"summary":"Validate an individual document against system file requirements","description":"Using this endpoint will decrease the likelihood of errors associated with individual documents during\nthe submission process. Validations performed:\n* Document is a valid PDF (Note: `Content-Type` header value must be \"application/pdf\")\n* Document does not have a user password (an owner password is acceptable)\n* File size does not exceed 100 MB\n* Page size does not exceed 78\" x 101\"\n\nEach PDF document is sent as a direct file upload. The request body should contain nothing other than the document in\nbinary format. Binary multipart/form-data encoding is not supported. This endpoint does NOT validate metadata in JSON\nformat.\n\nThis endpoint does NOT initiate the claims intake process or submit data to that process. After using this endpoint,\nindividual PDF documents can be combined and submitted as a payload using PUT `/path`.\n\nA `200` response confirms that the individual document provided passes the system requirements.\n\nA `422` response indicates one or more problems with the document that should be resolved before submitting it in the\nfull document submission payload.\n","operationId":"POST:/uploads/validate_document"}}},"components":{"schemas":{"DocumentUploadFailure":{"type":"object","description":"Document upload failed","xml":{"name":"Error"},"properties":{"Code":{"type":"string","description":"Error code","example":"SignatureDoesNotMatch"},"Message":{"type":"string","description":"Error detail","example":"The request signature we calculated does not match the signature you provided. Check your key and signing method."}}},"DocumentUploadMetadata":{"type":"object","description":"Identifying properties about the document payload being submitted","required":["veteranFirstName","veteranLastName","fileNumber","zipCode"],"properties":{"veteranFirstName":{"type":"string","description":"Veteran first name. Cannot be missing or empty or longer than 50 characters. Only upper/lower case letters, hyphens(-), spaces and forward-slash(/) allowed.","pattern":"^[a-zA-Z\\-\\/\\s]{1,50}$","example":"Jane"},"veteranLastName":{"type":"string","description":"Veteran last name. Cannot be missing or empty or longer than 50 characters. Only upper/lower case letters, hyphens(-), spaces and forward-slash(/) allowed.","pattern":"^[a-zA-Z\\-\\/\\s]{1,50}$","example":"Doe-Smith"},"fileNumber":{"description":"The Veteran's file number is exactly 9 digits with no alpha characters, hyphens, spaces or punctuation. In most cases, this is the Veteran's SSN but may also be an 8 digit BIRL number. If no file number has been established or if it is unknown, the application should use the Veteran's SSN and the file number will be associated with the submission later in the process. Incorrect file numbers can cause delays.","pattern":"^\\d{8,9}$","example":"999887777","type":"string"},"zipCode":{"type":"string","example":"20571","description":"Veteran zip code. Either five digits (XXXXX) or five digits then four digits separated by a hyphen (XXXXX-XXXX). Use '00000' for Veterans with non-US addresses."},"source":{"type":"string","example":"MyVSO","description":"System, installation, or entity submitting the document"},"docType":{"type":"string","example":"21-22","description":"VBA form number of the document"},"businessLine":{"type":"string","example":"CMP","enum":["CMP","PMC","INS","EDU","VRE","BVA","FID","NCA","OTH"],"description":"Optional parameter (can be missing or empty). The values are:

\nCMP - Compensation requests such as those related to disability, unemployment, and pandemic claims

\nPMC - Pension requests including survivor’s pension

\nINS - Insurance such as life insurance, disability insurance, and other health insurance

\nEDU - Education benefits, programs, and affiliations

\nVRE - Veteran Readiness & Employment such as employment questionnaires, employment discrimination, employment verification

\nBVA - Board of Veteran Appeals

\nFID - Fiduciary / financial appointee, including family member benefits

\nNCA - National Cemetery Administration

\nOTH - Other (this value if used, will be treated as CMP)
\n"}}},"DocumentUploadStatus":{"description":"Status record for a previously initiated document submission.","required":["id","type","attributes"],"properties":{"id":{"description":"JSON API identifier","type":"string","format":"uuid","example":"6d8433c1-cd55-4c24-affd-f592287a7572"},"type":{"description":"JSON API type specification","type":"string","example":"document_upload"},"attributes":{"$ref":"#/components/schemas/DocumentUploadStatusAttributes"}}},"DocumentUploadStatusReport":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUploadStatus"}},"DocumentUploadStatusGuidList":{"type":"object","required":["ids"],"properties":{"ids":{"description":"List of IDs for previous document upload submissions (max 1000)","type":"array","items":{"type":"string","format":"uuid","example":"6d8433c1-cd55-4c24-affd-f592287a7572"},"minItems":1,"maxItems":1000}}},"DocumentUploadSubmission":{"description":"Record of requested document submission. Includes the location to which the document payload is to be uploaded","required":["id","type","attributes"],"properties":{"id":{"description":"JSON API Identifier","type":"string","format":"uuid","example":"6d8433c1-cd55-4c24-affd-f592287a7572"},"type":{"description":"JSON API type specification","type":"string","example":"document_upload"},"attributes":{"$ref":"#/components/schemas/DocumentUploadSubmissionAttributes"}}},"DocumentUploadSubmissionAttributes":{"allOf":[{"type":"object","required":["location"]},{"$ref":"#/components/schemas/DocumentUploadStatusAttributes","properties":{"location":{"description":"Location to which to PUT document Payload","type":"string","format":"uri","example":"https://sandbox-api.va.gov/services_user_content/vba_documents/{idpath}"}}}]},"DocumentUploadPath":{"description":"Status record for a previously initiated document submission.","required":["id","type","attributes"],"properties":{"id":{"description":"JSON API identifier","type":"string","format":"uuid","example":"6d8433c1-cd55-4c24-affd-f592287a7572"},"type":{"description":"JSON API type specification","type":"string","example":"document_upload"},"attributes":{"$ref":"#/components/schemas/DocumentUploadAttributes"}}},"DocumentValidationErrorModel":{"type":"object","description":"Error returned from the document validation endpoint.","required":["title","detail","status"],"properties":{"title":{"type":"string","example":"Document failed validation","description":"Error title"},"detail":{"type":"string","description":"Error detail\n\nPossible values:\n* Document was not provided\n* Document is not a PDF\n* Document exceeds the file size limit of 100 MB\n* Document exceeds the page size limit of 78 in. x 101 in.\n* Document is locked with a user password\n* Document is not a valid PDF\n","example":"Document is locked with a user password"},"status":{"type":"string","example":"422","description":"HTTP error code"}}},"PdfUploadAttributes":{"required":["total_documents","total_pages","content","dimensions","attachments"],"properties":{"total_documents":{"description":"The total number of documents contained in this upload","type":"integer","example":"2"},"total_pages":{"description":"The total number of pages contained in this upload","type":"integer","example":"3"},"content":{"properties":{"page_count":{"description":"The total number of pages solely in this PDF document","type":"integer","example":"1"},"dimensions":{"$ref":"#/components/schemas/PdfDimensionAttributes"},"attachments":{"type":"array","items":{"properties":{"page_count":{"description":"The number of pages in this attachment","type":"integer","example":"2"},"dimensions":{"$ref":"#/components/schemas/PdfDimensionAttributes"}}}}}}}},"PdfDimensionAttributes":{"required":["height","width","oversized_pdf"],"properties":{"height":{"description":"The document height","type":"integer","example":"11.0"},"width":{"description":"The document width","type":"integer","example":"8.5"},"oversized_pdf":{"description":"Indicates if this is an oversized PDF (greater than 78x101)","type":"boolean","example":"false"}}},"DocumentUploadStatusAttributes":{"required":["guid","status"],"properties":{"guid":{"description":"The document upload identifier","type":"string","format":"uuid","example":"6d8433c1-cd55-4c24-affd-f592287a7572"},"status":{"description":"Document upload status.\n","type":"string","enum":["pending","uploaded","received","processing","success","vbms","error"],"example":"error"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":"DOC108"},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":"Maximum page size exceeded. Limit is 78 in x 101 in."},"final_status":{"description":"Indicates whether the status of the submission is final. Submissions with a final_status of true will no longer update to a new status.","type":"boolean","example":true},"updated_at":{"description":"The last time the submission was updated","type":"string","format":"date-time","example":"2018-07-30T17:31:15.958Z"},"uploaded_pdf":{"$ref":"#/components/schemas/PdfUploadAttributes"}}},"DocumentUploadAttributes":{"required":["guid","status"],"properties":{"guid":{"description":"The document upload identifier","type":"string","format":"uuid","example":"6d8433c1-cd55-4c24-affd-f592287a7572"},"status":{"description":"Document upload status.\n","type":"string","enum":["pending","uploaded","received","processing","success","vbms","error"],"example":"pending"},"code":{"description":"Unambiguous status code. Only present if status = \"error\"\n\n* `DOC101` - Invalid multipart payload provided - not a multipart, or missing one or more required parts.\n* `DOC102` - Invalid metadata - not parseable as JSON, incorrect fields, etc.\n* `DOC103` - Invalid content - not parseable as PDF. Detail field will indicate which document or attachment part was affected.\n* `DOC104` - Upload rejected by upstream system. Processing failed and upload must be resubmitted. Detail field will indicate nature of rejection.\n* `DOC105` - Invalid or unknown id\n* `DOC106` - File size limit exceeded. Each document may be a maximum of 100MB.\n* `DOC107` - Empty payload.\n* `DOC108` - Maximum dimensions exceeded. Height and width must be less than 78 in x 101 in.\n* `DOC201` - Upload server error.\n* `DOC202` - Error during processing by upstream system. Processing failed and upload must be resubmitted. Detail field will provide additional details where available.\n","type":"string","example":null},"detail":{"description":"Human readable error detail. Only present if status = \"error\"","type":"string","example":""},"final_status":{"description":"Indicates whether the status of the submission is final. Submissions with a final_status of true will no longer update to a new status.","type":"boolean","example":false},"location":{"description":"Location to which to PUT document Payload","type":"string","format":"uri","example":"https://sandbox-api.va.gov/services_user_content/vba_documents/{idpath}"},"updated_at":{"description":"The last time the submission was updated","type":"string","format":"date-time","example":"2018-07-30T17:31:15.958Z"},"uploaded_pdf":{"description":"Only populated after submission starts processing","example":"null"}}},"ErrorModel":{"description":"Errors with some details for the given request","required":["status","detail"],"properties":{"status":{"type":"integer","format":"int32","example":"422","description":"Standard HTTP Status returned with Error"},"detail":{"type":"string","example":"DOC104 - Upload rejected by upstream system. Processing failed and upload must be resubmitted","description":"A more detailed message about why an error occurred"}}},"UploadsReportBadRequestErrorModel":{"description":"Validation error for uploads/report request payload","required":["title","detail","code","status"],"properties":{"title":{"type":"string","example":"Too many items submitted"},"detail":{"type":"string","example":"\"ids\" cannot exceed 1000 items (submitted 1001)"},"code":{"type":"string","example":"111"},"status":{"type":"string","example":"400"}}}},"examples":{},"links":{},"parameters":{},"requestBodies":{},"responses":{},"securitySchemes":{"apikey":{"type":"apiKey","name":"apikey","in":"header"}}}}