Upload file | Moov Documentation
Upload file
Upload a file and link it to the specified Moov account.
The maximum file size is 20MB. Each account is allowed a maximum of 50 files. Acceptable file types include csv, jpg, pdf, and png.
To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/files.write scope.
Request
Endpoint:
POST /accounts/{accountID}/files
cURL Example
curl -X POST "https://api.moov.io/accounts/{accountID}/files" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.07.00" \
-F "file=@/path/to/file" \
-F "filePurpose=representative_verification" \
-F 'metadata={}''
Go Example
mc, _ := moov.NewClient()
var accountID string
file, _ := os.Open("/path/to/file.csv")
mc.UploadFile(ctx, accountID, moov.UploadFile{
FilePurpose: moov.FilePurpose_MerchantUnderwriting,
Metadata: map[string]string{
"requirement_id": "business.underwriting-documents-tier-one",
"other_keys": "for customer use",
},
Filename: "file.csv",
File: file,
})
TypeScript Example
import { Moov } from "@moovio/sdk";
import { openAsBlob } from "node:fs";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.files.upload({
accountID: "221c30bd-2551-4ae4-9a14-07bf6599b728",
fileUploadRequestMultiPart: {
file: await openAsBlob("example.file"),
filePurpose: "representative_verification",
},
});
console.log(result);
}
run();
PHP Example
declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\