# Guide de chargement de fichiers Utilisez l’API File Upload pour envoyer des fichiers de manière sécurisée à Stripe, comme des justificatifs de litige, des documents d’identité, etc. Nous prenons en charge l’envoi de fichiers vers Stripe directement depuis le navigateur. Écrivez du JavaScript qui appelle l’endpoint approprié en incluant votre clé API *publishable*. Si vous devez générer un *file link* pour un fichier importé, vous devez 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** ou une clé API secrète correctement sécurisée. Lorsque vous importez un fichier vers Stripe via l’API, celle-ci renvoie un token de fichier ainsi que d’autres informations associées. Vous pouvez ensuite utiliser ce token dans d’autres appels à l’API. Ce guide décrit ce processus. ## Importer un fichier Pour importer un fichier, envoyez une requête `multipart/form-data` vers **https://files.stripe.com/v1/files**. Le sous-domaine **files.stripe.com** est différent de la plupart des endpoints de l’API Stripe. Indiquez un `purpose` et un `file` dans la requête. L’exemple suivant importe un fichier situé à **/path/to/a/file.jpg** sur votre système local avec le purpose `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 que vous souhaitez importer doit correspondre à son format. > Tous les documents Microsoft Office contenant des macros VBA seront refusés pour des raisons de sécurité. Une requête réussie renvoie un objet [File](https://docs.stripe.com/api/files/object.md). ## Récupération d’une ressource d’API de fichier Pour récupérer la ressource API d’un fichier, effectuez une requête GET vers l’endpoint **/v1/files** du sous-domaine **files.stripe.com**, en fournissant l’ID du fichier importé : #### 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écharger le 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 comporte un champ `url` permettant un accès non authentifié au contenu du fichier. ## Utilisation d’un fichier Une fois le fichier importé, vous pouvez utiliser son ID dans d’autres requêtes API. Par exemple, pour joindre un fichier importé à un litige spécifique en tant que justificatif : #### curl ```bash curl https://api.stripe.com/v1/disputes/{{DISPUTE_ID}} -u <> -d "evidence[receipt]"={{FILE_ID}} ``` Vous ne pouvez utiliser un fichier importé que dans une seule requête API. ## Gérer les erreurs d’import 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 parvenez pas à supprimer vos annotations ou vos éléments multimédias, ou si vous avez fusionné plusieurs PDF en un seul, essayez d’utiliser la fonction « Imprimer en 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)