Upload File by FileType in Request

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

FieldTypeRequiredDescription
FilebinaryYesThe file to upload (e.g., image, PDF).
FileTypestring (enum)YesThe category of document being uploaded. See supported values below.
TransactionIdstringNoThe ID of a transaction to associate this file with. Required only for TransactionIcon file type.
SubProfileIdinteger (int32)NoThe ID of a business subprofile (authorized user) to associate this file with.

Supported FileType values:

ValueDescription
UserIconAvatar image for user profile
TransactionIconFile linked to a specific transaction
DriverLicenseDriver's license
SocialSecurityNumberSocial Security Number document
TaxFilingSchedule C of tax filing
OperatingAgreementBusiness operating agreement
ArticlesOfIncorporationArticles of Incorporation
BusinessRegistrationBusiness registration document
BusinessLicenseBusiness license
TaxId_applicationTax ID application
PassportPassport
RewardIntegrationImageImage for reward integration
Lease_AgreementLease agreement
Utility_BillUtility bill
OtherAny other document type
CardIconSmallSmall card icon image
CardIconLargeLarge card icon image
CardIconLargeBackSideLarge card icon back-side image
BurnerCardIconSmallSmall burner card icon image
BurnerCardIconLargeLarge burner card icon image
BurnerCardIconLargeBackSideLarge burner card icon back-side image
UsMilitaryRecordOfServiceU.S. Military record of service
StateUsMilitaryArmedForcesIdU.S. Armed Forces ID
UsTaxFormU.S. Tax form
W2W-2 form
Form10991099 tax form
Form54985498 tax form
Form10981098 tax form
PhoneBillPhone bill
CableBillCable bill
InternetBillInternet bill
BankStatementBank statement
Statement401k401(k) statement
StatementGeneral account statement
BrokerageStatementBrokerage statement
LifeInsuranceLife insurance document
HealthInsuranceHealth insurance document
AutoInsuranceAuto insurance document
MunicipalIdMunicipal ID
StateIssuedIdState-issued ID
CertificateOfCitizenshipCertificate of citizenship
CourtOrderForLegalNameChangeCourt order for legal name change
StateUsPermanentResidentCardU.S. Permanent Resident Card
StateConsularIdentificationCardConsular identification card
StateUsBorderCrossingCardU.S. Border Crossing Card
StateUsEmploymentAuthorizationCardU.S. Employment Authorization Card
StateTribalIdTribal ID
BirthCertificateBirth certificate
PayStubPay stub
MedicareCardMedicare card
SubscriptionIconSubscription icon image

Response

200 OK

Returns a boolean true when the file was uploaded successfully.

FieldTypeDescription
(body)booleantrue if the file was successfully uploaded.
true

400 Bad Request

Returns a problem details object when the file could not be uploaded due to a validation error.

FieldTypeDescription
typestringA URI reference identifying the problem type.
titlestringA short, human-readable summary of the problem.
statusintegerThe HTTP status code.
detailstringA human-readable explanation specific to this occurrence.
instancestringA URI reference identifying the specific occurrence.
errorsobject(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

CodeWhen it happens
400Missing required fields (File or FileType), invalid FileType value, or TransactionId is malformed or does not exist
401Token missing, expired, or invalid
403Insufficient permissions to upload files for the specified account or subprofile
404Referenced TransactionId or SubProfileId not found
500Internal error — file could not be uploaded or a previously uploaded file could not be replaced

Common Mistakes

  • Omitting the FileType field — it is required and must exactly match one of the supported enum string values (case-sensitive).
  • Sending the request as application/json instead of multipart/form-data — the File binary field requires multipart encoding.
  • Including TransactionId without an actual matching transaction in the system, which results in a 400 or 404 error.
  • Using SubProfileId for personal customer accounts — subprofiles are only available for business customers.
  • Sending FileType: TransactionIcon without providing a valid TransactionId — the transaction association is required for that file type.

Related Endpoints

  • POST /api/auth/v2 — Obtain a Bearer token for authentication
  • POST /api/auth/refresh — Refresh an expiring Bearer token
  • GET /Files/{fileId} — Retrieve a previously uploaded file by its ID
  • POST /Customers/Business — Create a business customer whose documents may be uploaded via this endpoint
  • POST /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"
Body Params
string
int32
string
enum
required
file
required
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

500

Can't upload new or delete previous file due to internal error

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json