# Guide de chargement de fichiers Utilisez l'API File Upload pour envoyer en toute sécurité des preuves relatives à un litige ou des documents d'identification à Stripe. Nous prenons en charge l’envoi de fichiers vers Stripe directement depuis le navigateur. Écrivez du JavaScript qui appelle l’endpoint approprié et inclut votre clé API *publishable*. Si vous devez générer un *file link* pour un fichier envoyé, vous devez plutôt appeler l’API d’envoi depuis le back-end de votre intégration, en suivant les [bonnes pratiques](https://docs.stripe.com/keys-best-practices.md) et en utilisant une [clé API limitée](https://docs.stripe.com/keys/restricted-api-keys.md) avec l’autorisation **Files: Write** (autorisation d’écriture pour les fichiers) ou une clé API secrète correctement sécurisée. Lorsque vous chargez un fichier dans Stripe à l’aide d’une API, un token de fichier et d’autres informations sur le fichier sont renvoyés. Le token peut alors être utilisé dans d’autres appels à l’API. Ce guide vous accompagne tout au long de ce processus. ## Chargement d’un fichier Pour charger un fichier, envoyez une requête `multipart/form-data` à **https://files.stripe.com/v1/files**. Notez que le sous-domaine **files.stripe.com** est différent de la plupart des endpoints d’API de Stripe. La requête doit spécifier un `purpose` et un `file`. L’exemple suivant charge un fichier situé sous **/path/to/a/file.jpg** dans votre système de fichiers local avec l’objectif `dispute_evidence` : #### curl ```bash curl https://files.stripe.com/v1/files \ -u <>: \ -F "file"="@/path/to/a/file.jpg" \ -F "purpose"="dispute_evidence" ``` L’exemple suivant charge un fichier à l’aide de notre SDK Android avec l’objectif `dispute_evidence` : #### Kotlin ```kotlin class CheckoutActivity : AppCompatActivity() { private val stripe: Stripe by lazy { Stripe(this, "<>") } private fun uploadFile(file: File) { stripe.createFile( StripeFileParams( file, StripeFilePurpose.DisputeEvidence ), callback = object : ApiResultCallback { override fun onSuccess(result: StripeFile) { // File upload succeeded } override fun onError(e: Exception) { // File upload failed } } ) } } ``` Il existe des valeurs [d’objectif valides multiples](https://docs.stripe.com/api.md#create_file-purpose), chacune aux exigences de taille et de format de fichier. > Les images `identity_document` ont aussi besoin d’être plus petites que 8 000 px par 8 000 px. Le type MIME du fichier à charger doit correspondre à son format de fichier. > Tout document Microsoft Office contenant des macros VBA sera rejeté pour des raisons de sécurité. Une requête réussie renvoie un objet de [fichier](https://docs.stripe.com/api/files/object.md). ## Récupération d’une ressource d’API de fichier Pour récupérer la ressource d’API pour un fichier, envoyez une requête GET au endpoint **/v1/files** du sous-domaine **files.stripe.com** fournissant l’ID de chargement du fichier : #### curl ```bash curl https://files.stripe.com/v1/files/{{FILE_ID}} \ -u <> ``` Lorsque vous utilisez des clés API limitées, vous devez bénéficier d’un accès préalable à la ressource `Files`. ## Téléchargement du contenu du fichier Si l’objectif du fichier permet de télécharger le contenu du fichier, alors le [fichier](https://docs.stripe.com/api/files/object.md) inclut un champ `url` non nul indiquant comment accéder au contenu. Cette URL nécessite une authentification avec vos clés API Stripe. ```bash curl https://files.stripe.com/v1/files/{{FILE_ID}}/contents -u <> ``` Si vous voulez un accès non authentifié au fichier dont l’objectif permet le téléchargement, alors vous pouvez générer des liens de téléchargement anonyme en créant un [file_link](https://docs.stripe.com/api.md#file_links). #### curl ```bash curl https://api.stripe.com/v1/file_links \ -u <> -d file={{FILE_ID}} ``` La ressource file_link a un champ `url` qui permet un accès non authentifié au contenu du fichier. ## Utilisation d’un fichier Après avoir chargé un fichier, l’ID de chargement de fichier peut être utilisé dans d’autres requêtes d’API. Par exemple, pour joindre un fichier chargé à un litige comme preuve : #### curl ```bash curl https://api.stripe.com/v1/disputes/{{DISPUTE_ID}} -u <> -d "evidence[receipt]"={{FILE_ID}} ``` Notez que vous ne pouvez utiliser un fichier chargé que dans une seule requête d’API. ## Gestion des erreurs de chargement Lorsque vous utilisez l’API File pour télécharger un document PDF, nous effectuons une série de vérifications pour confirmer qu’il est correctement formaté et répond aux spécifications de PDF. Nous renvoyons une erreur pour les téléchargements qui ne satisfont pas nos vérifications. Essayez ce qui suit pour corriger les erreurs que nous détectons : - Supprimez les annotations ou les médias supplémentaires ajoutés au document. - Si vous ne pouvez pas supprimer vos annotations ou médias, ou si vous avez combiné plusieurs PDF en un, essayez d’utiliser la fonction Imprimer au format PDF de votre ordinateur pour créer un nouveau document. - [Imprimer au format PDF avec macOS](https://support.apple.com/guide/mac-help/save-a-document-as-a-pdf-on-mac-mchlp1531/mac) - [Imprimer au format PDF avec Adobe Acrobat](https://helpx.adobe.com/acrobat/using/print-to-pdf.html)