C# Stripe: Create a File Upload

Back to Index

Uploads a file to Stripe.

Documentation: https://stripe.com/docs/api/curl#create_file_upload

CURL Command

curl https://files.stripe.com/v1/files \
   -u STRIPE_SECRET_KEY: \
   -F purpose=dispute_evidence \
   -F file="@/path/to/a/file.jpg"

C# Example

Chilkat.Rest rest = new Chilkat.Rest();
bool success;

//  URL: https://files.stripe.com/v1/files
bool bTls = true;
int port = 443;
bool bAutoReconnect = true;
success = rest.Connect("files.stripe.com",port,bTls,bAutoReconnect);
if (success != true) {
    Debug.WriteLine("ConnectFailReason: " + Convert.ToString(rest.ConnectFailReason));
    Debug.WriteLine(rest.LastErrorText);
    return;
}

rest.SetAuthBasic("STRIPE_SECRET_KEY","");

rest.PartSelector = "1";
rest.AddHeader("Content-Disposition","form-data; name=\"purpose\"");
rest.SetMultipartBodyString("dispute_evidence");

rest.PartSelector = "2";
Chilkat.Stream fileStream2 = new Chilkat.Stream();
fileStream2.SourceFile = "/path/to/a/file.jpg";
rest.AddHeader("Content-Disposition","form-data; name=\"/path/to/a/file.jpg\"; filename=\"/path/to/a/file.jpg\"");
rest.AddHeader("Content-Type","image/jpeg");
rest.SetMultipartBodyStream(fileStream2);

rest.PartSelector = "0";

rest.AddHeader("Expect","100-continue");

string strResponseBody = rest.FullRequestMultipart("POST","/v1/files");
if (rest.LastMethodSuccess != true) {
    Debug.WriteLine(rest.LastErrorText);
    return;
}

Chilkat.JsonObject jsonResponse = new Chilkat.JsonObject();
jsonResponse.Load(strResponseBody);

string id;
string object;
int created;
string filename;
string purpose;
int size;
string type;
string url;

id = jsonResponse.StringOf("id");
object = jsonResponse.StringOf("object");
created = jsonResponse.IntOf("created");
filename = jsonResponse.StringOf("filename");
purpose = jsonResponse.StringOf("purpose");
size = jsonResponse.IntOf("size");
type = jsonResponse.StringOf("type");
url = jsonResponse.StringOf("url");

Sample JSON Response Body

{
  "id": "file_1BnEEuGswQrCoh0XqB3XkqAg",
  "object": "file_upload",
  "created": 1516661888,
  "filename": "path",
  "purpose": "sigma_scheduled_query",
  "size": 500,
  "type": "csv",
  "url": "https://stripe-upload-api.s3.amazonaws.com/uploads/file_1BnEEuGswQrCoh0XqB3XkqAg?AWSAccessKeyId=KEY_ID\u0026Expires=TIMESTAMP\u0026Signature=SIGNATURE"
}