| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Upload File (Merchant Attachment)
Uploads a document to a merchant application as a Base64-encoded attachment. Each upload must specify the attachment type, which categorizes the document within the underwriting and compliance workflow. Supported types cover a wide range of documents including void checks, bank statements, driver's licenses, processing statements, tax returns, PCI certificates, MPA confirmations, and more.
Endpoint
POST /api/v1/merchant/attachment
Authentication
Basic HTTP Authentication required.
Encode username:password in Base64 and pass in the Authorization header:
Authorization: Basic {base64(username:password)}
When to use
Call this endpoint whenever an underwriter requests supporting documentation, or when proactively submitting documents as part of the boarding workflow. Documents uploaded here are visible to underwriters in the merchant's application record. Upload a voided check or bank account proof before advancing to underwriting review, and upload the driver's license or other ID document for all owners with 25% or greater ownership.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| id | integer (int32) | Yes | Merchant profile ID to attach the document to. |
| attachmentType | string | Yes | Category of the document. See enum values below. |
| data | string (byte) | Yes | Base64-encoded file content. |
| fileName | string | Yes | Original file name including extension (e.g., voided_check.pdf). |
| comment | string | No | Optional note to accompany the attachment (visible to underwriters). |
| riskDocument | boolean | No | Set to true if this document is a risk-related document; affects routing in the workflow. |
Supported attachmentType values:
| Value | Description |
|---|---|
VoidCheck | Voided check for bank account verification |
BankAccountProof | Alternative bank account proof |
BusinessBankStatements | Business checking account bank statements |
PersonalBankStatements | Owner's personal bank statements |
DriversLicense | Government-issued photo ID for owners |
MerchantApplication | Signed merchant application document |
ConfirmMpa | Confirmed / executed MPA |
ProcessingStatements | Prior processor statements |
CorporateTaxReturns | Corporate tax returns |
PersonalTaxReturns | Owner's personal tax returns |
FinancialStatements | Financial statements (P&L, balance sheet) |
ACHInformation | ACH authorization form |
PCICertificates | PCI DSS compliance certificate |
CancellationLetter | Cancellation letter from prior processor |
SiteInspectionValidation | Site inspection photos or validation documents |
RiskDocuments | Risk-related compliance documents |
CreditReport | Merchant or owner credit report |
Miscellaneous | Other documents not covered by specific types |
AdditionalDocuments | Supplemental documents requested by underwriters |
CForm501 | C-501 form |
CloverAddendum | Clover equipment addendum |
CloverGoAddendum | Clover Go equipment addendum |
ReserveForm | Rolling reserve form |
CMSForm | CMS subscription form |
BusinessLicense | Business operating license |
Invoice | Equipment or service invoice |
CCAuthorizationForm | Credit card authorization form |
PlacementAgreement | Equipment placement agreement |
Checklist | Boarding checklist |
ApplicationSignCertificate | Digital signature certificate for application |
AutomatedGiact | Automated GIACT bank verification result |
AutomatedMATCH | Automated MATCH list check result |
AutomatedGoogleSearch | Automated Google search result |
AutomatedClear | Automated CLEAR identity check result |
AutomatedWhois | Automated WHOIS domain lookup result |
AutomatedOfac | Automated OFAC sanctions check result |
WebSnapshot | Website screenshot |
Whois | Manual WHOIS domain lookup |
MarketingMaterials | Marketing materials or brochures |
PimsDocuments | PIMS-related documents |
DigitalSignatureChange | Digital signature change documentation |
UnderwritingMerchantInformation | UW-specific merchant information |
CreditProfile | Credit profile report |
AddendumForm | General addendum form |
PosPurchaseForm | POS equipment purchase form |
{
"id": 10482,
"attachmentType": "VoidCheck",
"data": "JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PAovQ3JlYXRpb25EYXRlKEQ6MjAyNjA1...",
"fileName": "voided_check_green_tree_cafe.pdf",
"comment": "Voided check for Bank of America account ending in 9012.",
"riskDocument": false
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| data | object | Contains the success flag. |
| data.success | boolean | true if the file was uploaded successfully. |
| status | string | HTTP status name (e.g., "OK"). |
| error | string | Error message if the upload failed; otherwise null. |
| warning | string | Non-fatal warning, if any. |
| validationResults | array | Validation errors, if any. |
| requestId | integer | Internal request tracking ID. |
{
"data": {
"success": true
},
"status": "OK",
"error": null,
"warning": null,
"validationResults": [],
"requestId": 92018
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Required fields (id, attachmentType, data, or fileName) are missing; attachmentType is not a valid enum value; or the Base64 data is malformed. |
| 401 | Invalid or missing Basic Auth credentials. |
| 403 | User does not have permission to upload attachments to this merchant application. |
| 404 | No merchant application found with the given ID. |
| 413 | File size exceeds the server's maximum allowed payload size. |
| 500 | Internal server error. |
Common Mistakes
- Sending raw binary file content instead of Base64-encoded content — the
datafield must be a Base64 string. - Omitting the file extension in
fileName— underwriters rely on the file name to identify document type. - Using an
attachmentTypevalue not in the allowed enum (e.g.,"BankStatements"instead of"BusinessBankStatements") returns a 400 validation error. - Uploading very large files (e.g., multi-page scanned PDFs) without compressing them first — reduce file size to avoid 413 errors.
- Not including a
commentwhen uploading a document in response to an underwriting note — always reference the note so the underwriter knows which item is addressed.
Related Endpoints
GET /api/v1/merchant/underwritingNotes— Retrieve underwriting notes that identify which documents are needed.POST /api/v1/merchant/underwritingPending— Set the application to "Pending" after uploading requested documents.POST /api/v1/merchant/underwritingReview— Advance to "Pending Review" once all documents are uploaded.
Example
curl -X POST https://hq.staging.netevia.dev/api/v1/merchant/attachment \
-H "Authorization: Basic $(echo -n 'username:password' | base64)" \
-H "Content-Type: application/json" \
-d '{
"id": 10482,
"attachmentType": "VoidCheck",
"data": "'"$(base64 -w 0 voided_check.pdf)"'",
"fileName": "voided_check_green_tree_cafe.pdf",
"comment": "Voided check for Bank of America account ending in 9012.",
"riskDocument": false
}'