Upload a file of a specified type to the Netevia platform, with optional association to a transaction or subprofile.
Upload File by FileType in Request
The POST /Files/UploadFile endpoint allows partners to upload files of specific types to the Netevia platform using multipart form-data. Files can represent user avatars, identity documents, business registration materials, tax forms, insurance documents, and more. Optionally, a file can be associated with a specific transaction or a business subprofile authorized user.
Endpoint
POST /Files/UploadFile
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when a customer or partner needs to attach supporting documents to their account or to a specific transaction — for example, uploading a government-issued ID during KYC verification, submitting a business license for underwriting, or attaching a receipt image to a transaction record. This endpoint is also used to set profile and card icon images. For business customers, files can be scoped to a specific authorized user (subprofile) by including SubProfileId.
Request Body
Content-Type: multipart/form-data
| Field | Type | Required | Description |
|---|---|---|---|
| File | binary | Yes | The file to upload (e.g., image, PDF). |
| FileType | string (enum) | Yes | The category of document being uploaded. See supported values below. |
| TransactionId | string | No | The ID of a transaction to associate this file with. Required only for TransactionIcon file type. |
| SubProfileId | integer (int32) | No | The ID of a business subprofile (authorized user) to associate this file with. |
Supported FileType values:
| Value | Description |
|---|---|
UserIcon | Avatar image for user profile |
TransactionIcon | File linked to a specific transaction |
DriverLicense | Driver's license |
SocialSecurityNumber | Social Security Number document |
TaxFiling | Schedule C of tax filing |
OperatingAgreement | Business operating agreement |
ArticlesOfIncorporation | Articles of Incorporation |
BusinessRegistration | Business registration document |
BusinessLicense | Business license |
TaxId_application | Tax ID application |
Passport | Passport |
RewardIntegrationImage | Image for reward integration |
Lease_Agreement | Lease agreement |
Utility_Bill | Utility bill |
Other | Any other document type |
CardIconSmall | Small card icon image |
CardIconLarge | Large card icon image |
CardIconLargeBackSide | Large card icon back-side image |
BurnerCardIconSmall | Small burner card icon image |
BurnerCardIconLarge | Large burner card icon image |
BurnerCardIconLargeBackSide | Large burner card icon back-side image |
UsMilitaryRecordOfService | U.S. Military record of service |
StateUsMilitaryArmedForcesId | U.S. Armed Forces ID |
UsTaxForm | U.S. Tax form |
W2 | W-2 form |
Form1099 | 1099 tax form |
Form5498 | 5498 tax form |
Form1098 | 1098 tax form |
PhoneBill | Phone bill |
CableBill | Cable bill |
InternetBill | Internet bill |
BankStatement | Bank statement |
Statement401k | 401(k) statement |
Statement | General account statement |
BrokerageStatement | Brokerage statement |
LifeInsurance | Life insurance document |
HealthInsurance | Health insurance document |
AutoInsurance | Auto insurance document |
MunicipalId | Municipal ID |
StateIssuedId | State-issued ID |
CertificateOfCitizenship | Certificate of citizenship |
CourtOrderForLegalNameChange | Court order for legal name change |
StateUsPermanentResidentCard | U.S. Permanent Resident Card |
StateConsularIdentificationCard | Consular identification card |
StateUsBorderCrossingCard | U.S. Border Crossing Card |
StateUsEmploymentAuthorizationCard | U.S. Employment Authorization Card |
StateTribalId | Tribal ID |
BirthCertificate | Birth certificate |
PayStub | Pay stub |
MedicareCard | Medicare card |
SubscriptionIcon | Subscription icon image |
Response
200 OK
Returns a boolean true when the file was uploaded successfully.
| Field | Type | Description |
|---|---|---|
| (body) | boolean | true if the file was successfully uploaded. |
true400 Bad Request
Returns a problem details object when the file could not be uploaded due to a validation error.
| Field | Type | Description |
|---|---|---|
| type | string | A URI reference identifying the problem type. |
| title | string | A short, human-readable summary of the problem. |
| status | integer | The HTTP status code. |
| detail | string | A human-readable explanation specific to this occurrence. |
| instance | string | A URI reference identifying the specific occurrence. |
| errors | object | (Validation errors only) Map of field names to arrays of error messages. |
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"detail": "The FileType field is required.",
"instance": "/Files/UploadFile"
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields (File or FileType), invalid FileType value, or TransactionId is malformed or does not exist |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to upload files for the specified account or subprofile |
| 404 | Referenced TransactionId or SubProfileId not found |
| 500 | Internal error — file could not be uploaded or a previously uploaded file could not be replaced |
Common Mistakes
- Omitting the
FileTypefield — it is required and must exactly match one of the supported enum string values (case-sensitive). - Sending the request as
application/jsoninstead ofmultipart/form-data— theFilebinary field requires multipart encoding. - Including
TransactionIdwithout an actual matching transaction in the system, which results in a 400 or 404 error. - Using
SubProfileIdfor personal customer accounts — subprofiles are only available for business customers. - Sending
FileType: TransactionIconwithout providing a validTransactionId— the transaction association is required for that file type.
Related Endpoints
POST /api/auth/v2— Obtain a Bearer token for authenticationPOST /api/auth/refresh— Refresh an expiring Bearer tokenGET /Files/{fileId}— Retrieve a previously uploaded file by its IDPOST /Customers/Business— Create a business customer whose documents may be uploaded via this endpointPOST /Customers/Personal— Create a personal customer whose identity documents may be uploaded via this endpoint
Example
curl -X POST https://api.banking.netevia.dev/Files/UploadFile \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "File=@/path/to/drivers_license.pdf" \
-F "FileType=DriverLicense"Upload a transaction receipt associated with a specific transaction:
curl -X POST https://api.banking.netevia.dev/Files/UploadFile \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "File=@/path/to/receipt.jpg" \
-F "FileType=TransactionIcon" \
-F "TransactionId=txn_abc123def456"Upload a business license for a subprofile authorized user:
curl -X POST https://api.banking.netevia.dev/Files/UploadFile \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "File=@/path/to/business_license.pdf" \
-F "FileType=BusinessLicense" \
-F "SubProfileId=42" 500Can't upload new or delete previous file due to internal error
