{"openapi":"3.1.0","info":{"title":"Payiz — API v1","version":"1.0.0","description":"Une API REST en JSON. Les montants sont des entiers dans l’unité mineure de la devise, les identifiants sont préfixés, les dates sont des secondes depuis 1970, et chaque erreur se lit."},"servers":[{"url":"https://api.payiz.app"}],"components":{"schemas":{"Payment":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"client_secret":{"description":"Le secret du client, rendu une seule fois à la création : il ouvre le suivi de ce paiement-là depuis le navigateur, sans clé secrète.","type":"string"},"object":{"type":"string","const":"payment","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui est demandé au payeur."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"status":{"type":"string","enum":["requires_payment","processing","succeeded","expired","canceled","partially_refunded","refunded"],"description":"Où en est le paiement."},"description":{"description":"Ce que le payeur lit sur sa page.","type":["string","null"]},"reference":{"description":"Votre propre référence, telle que vous l’avez posée.","type":["string","null"]},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Ce que vous y avez rangé ; jamais lu par Payiz."},"fees_paid_by":{"type":"string","enum":["merchant","customer"],"description":"Qui porte la commission : le marchand, ou le payeur en plus du montant."},"amount_paid":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Ce que le payeur a réellement versé, frais compris."},"fee":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"La commission de Payiz."},"net":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Ce qui revient au marchand, commission prise."},"amount_refunded":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui a déjà été rendu sur ce paiement."},"payment_url":{"type":"string","format":"uri","description":"La page à partager avec le payeur."},"return_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Où renvoyer le payeur une fois qu’il a payé."},"expires_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"paid_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"available_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Quand l’argent devient retirable. Null tant qu’il attend."},"latest_attempt":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"payment_attempt","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « tnt_ », par exemple tnt_01j9x4a2b7c5d8e3f6g1h0jk."},"payment":{"type":"string","description":"Le paiement qu’elle cherche à régler."},"status":{"type":"string","enum":["pending","succeeded","failed","expired"],"description":"« pending » tant que le payeur n’a pas validé ; puis réussie, échouée ou expirée."},"source":{"type":"string","enum":["payer","dashboard","api"],"description":"Qui l’a lancée : le payeur sur la page de paiement, votre espace, ou votre serveur par l’API."},"phone":{"type":"string","description":"Masqué : un numéro ne sort jamais en clair."},"country":{"type":"string","description":"Le pays du payeur, en ISO 3166-1 alpha-3."},"operator":{"type":"string","description":"Le code public de l’opérateur, par exemple « mtn »."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui est demandé au payeur, dans sa monnaie, frais compris quand il les paie."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"La monnaie du payeur, celle de son pays."},"failure_code":{"anyOf":[{"type":"string","enum":["insufficient_funds","payer_declined","timeout","invalid_phone","operator_limit","operator_unavailable","declined","unknown"]},{"type":"null"}],"description":"La raison d’un échec ou d’une expiration ; null sinon."},"payer_message":{"description":"La phrase à montrer au payeur : la consigne tant qu’il doit valider, la raison si la demande échoue. Réglée par Payiz, dans la langue de « Accept-Language » ; null s’il n’y en a pas.","type":["string","null"]},"operator_reference":{"description":"La référence que l’opérateur a donnée au payeur, quand il la donne.","type":["string","null"]},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"completed_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Quand elle s’est conclue ; null tant qu’elle attend."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","payment","status","source","phone","country","operator","amount","currency","failure_code","payer_message","operator_reference","created","completed_at","livemode"],"additionalProperties":false,"description":"Une demande envoyée au téléphone du payeur, qu’il valide avec son code."},{"type":"null"}],"description":"La dernière demande envoyée au téléphone du payeur, ou null."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","amount","currency","status","description","reference","metadata","fees_paid_by","amount_paid","fee","net","amount_refunded","payment_url","return_url","expires_at","paid_at","available_at","latest_attempt","created","livemode"],"additionalProperties":false,"description":"Un paiement : ce que vous demandez, et ce qu’il devient."},"PaymentAttempt":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"payment_attempt","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « tnt_ », par exemple tnt_01j9x4a2b7c5d8e3f6g1h0jk."},"payment":{"type":"string","description":"Le paiement qu’elle cherche à régler."},"status":{"type":"string","enum":["pending","succeeded","failed","expired"],"description":"« pending » tant que le payeur n’a pas validé ; puis réussie, échouée ou expirée."},"source":{"type":"string","enum":["payer","dashboard","api"],"description":"Qui l’a lancée : le payeur sur la page de paiement, votre espace, ou votre serveur par l’API."},"phone":{"type":"string","description":"Masqué : un numéro ne sort jamais en clair."},"country":{"type":"string","description":"Le pays du payeur, en ISO 3166-1 alpha-3."},"operator":{"type":"string","description":"Le code public de l’opérateur, par exemple « mtn »."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui est demandé au payeur, dans sa monnaie, frais compris quand il les paie."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"La monnaie du payeur, celle de son pays."},"failure_code":{"anyOf":[{"type":"string","enum":["insufficient_funds","payer_declined","timeout","invalid_phone","operator_limit","operator_unavailable","declined","unknown"]},{"type":"null"}],"description":"La raison d’un échec ou d’une expiration ; null sinon."},"payer_message":{"description":"La phrase à montrer au payeur : la consigne tant qu’il doit valider, la raison si la demande échoue. Réglée par Payiz, dans la langue de « Accept-Language » ; null s’il n’y en a pas.","type":["string","null"]},"operator_reference":{"description":"La référence que l’opérateur a donnée au payeur, quand il la donne.","type":["string","null"]},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"completed_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Quand elle s’est conclue ; null tant qu’elle attend."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","payment","status","source","phone","country","operator","amount","currency","failure_code","payer_message","operator_reference","created","completed_at","livemode"],"additionalProperties":false,"description":"Une demande envoyée au téléphone du payeur, qu’il valide avec son code."},"PaymentMethod":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"payment_method","description":"Le genre de l’objet rendu : il ne change jamais."},"country":{"type":"string","description":"Le pays, en ISO 3166-1 alpha-3."},"dial_code":{"type":"string","description":"L’indicatif, avec le « + »."},"operator":{"type":"object","properties":{"code":{"type":"string","description":"Le code à passer dans « operator »."},"name":{"type":"string","description":"Le nom à montrer au payeur."},"logo_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}],"description":"Son logo, servi par Payiz."}},"required":["code","name","logo_url"],"additionalProperties":false},"phone_prefixes":{"type":"array","items":{"type":"string"},"description":"Les premiers chiffres de ses numéros, sans l’indicatif. Vide : Payiz ne sait pas reconnaître ses numéros, passez « operator »."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"La monnaie du pays : celle où le payeur paie."},"min_amount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Le plus petit montant qu’il prend, dans « currency »."},"max_amount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Le plus grand montant qu’il prend, dans « currency »."},"fee":{"description":"Avec « amount » : la commission de Payiz, dans la monnaie du paiement.","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}]},"amount_to_pay":{"description":"Avec « amount » : ce que le payeur paiera par cet opérateur, dans « currency », frais compris s’il les paie.","anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}]}},"required":["object","country","dial_code","operator","phone_prefixes","currency","min_amount","max_amount"],"additionalProperties":false,"description":"Un pays et un opérateur par lesquels un payeur peut régler."},"PaymentPublic":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"payment","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"status":{"type":"string","enum":["requires_payment","processing","succeeded","expired","canceled","partially_refunded","refunded"],"description":"Où en est le paiement."},"description":{"description":"Ce que le payeur lit sur sa page.","type":["string","null"]},"amount_paid":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Ce que le payeur a versé, frais compris."},"paid_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","amount","currency","status","description","amount_paid","paid_at","created","livemode"],"additionalProperties":false,"description":"Ce que le widget voit d’un paiement avec le seul secret de son client : de quoi dire si c’est payé, et rien de plus."},"Refund":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"refund","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « rem_ », par exemple rem_01j9x3kq7m4tzv8qhw2n."},"payment":{"type":"string","description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui repart chez le payeur."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"status":{"type":"string","enum":["pending","processing","succeeded","failed"],"description":"Où en est le remboursement."},"reason":{"type":"string","description":"Le motif, choisi parmi ceux que Payiz accepte."},"fee":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Les frais du remboursement."},"fee_returned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"La commission d’encaissement rendue au marchand."},"amount_debited":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce que l’opération coûte en tout au marchand."},"failure_message":{"description":"Ce que l’opérateur a répondu, quand ça a échoué.","type":["string","null"]},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","payment","amount","currency","status","reason","fee","fee_returned","amount_debited","failure_message","created","livemode"],"additionalProperties":false,"description":"Un remboursement, total ou partiel."},"Payout":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"payout","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « ret_ », par exemple ret_01j9x3kq7m4tzv8qhw2n."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce que le bénéficiaire reçoit."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"status":{"type":"string","enum":["pending","in_review","processing","paid","failed","refused","canceled"],"description":"Où en est le retrait."},"fee":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Les frais du retrait."},"amount_debited":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui sort du solde, frais compris."},"recipient":{"type":"object","properties":{"id":{"type":"string","description":"Un identifiant préfixé « ben_ », par exemple ben_01j9x3kq7m4tzv8qhw2n."},"name":{"type":"string","description":"Le nom du bénéficiaire."},"phone":{"type":"string","description":"Masqué : les derniers chiffres seulement."},"operator":{"type":"string","description":"Le code de l’opérateur dans son pays, par exemple « mtn »."},"country":{"type":"string","description":"Le code ISO 3166-1 alpha-3."}},"required":["id","name","phone","operator","country"],"additionalProperties":false,"description":"Vers qui l’argent part."},"failure_message":{"description":"Ce que l’opérateur a répondu, quand ça a échoué.","type":["string","null"]},"paid_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","amount","currency","status","fee","amount_debited","recipient","failure_message","paid_at","created","livemode"],"additionalProperties":false,"description":"Un retrait vers un bénéficiaire enregistré."},"PaymentLink":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"payment_link","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « lnk_ », par exemple lnk_01j9x3kq7m4tzv8qhw2n."},"url":{"type":"string","format":"uri","description":"L’adresse à partager, et son QR code."},"title":{"type":"string","description":"Le titre que le payeur lit en haut de la page."},"description":{"description":"Ce que le payeur lit sous le titre.","type":["string","null"]},"type":{"type":"string","enum":["fixed","open"],"description":"« open » : le payeur choisit le montant."},"amount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Le prix, quand il est fixe."},"min_amount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Le plancher, quand le payeur choisit son montant."},"max_amount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Un entier, dans l’unité mineure de la devise."},{"type":"null"}],"description":"Le plafond, quand le payeur choisit son montant."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"reusable":{"type":"boolean","description":"Faux : le lien se ferme au premier paiement réussi."},"fees_paid_by":{"type":"string","enum":["merchant","customer"],"description":"Qui porte la commission sur les paiements de ce lien."},"collect":{"type":"array","items":{"type":"string","enum":["name","email","address"]},"description":"Ce qu’on demande au payeur, l’e-mail toujours compris."},"active":{"type":"boolean","description":"Faux : le lien est fermé, sa page ne prend plus rien."},"payments_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Combien de paiements réussis ce lien a portés."},"amount_collected":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce que ce lien a encaissé en tout."},"expires_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","url","title","description","type","amount","min_amount","max_amount","currency","reusable","fees_paid_by","collect","active","payments_count","amount_collected","expires_at","created","livemode"],"additionalProperties":false,"description":"Un lien de paiement : une adresse qui encaisse, autant de fois qu’on veut."},"Recipient":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"recipient","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « ben_ », par exemple ben_01j9x3kq7m4tzv8qhw2n."},"name":{"type":"string","description":"Le nom du bénéficiaire, tel qu’il a été enregistré."},"phone":{"type":"string","description":"Masqué : un numéro ne sort jamais en clair."},"operator":{"type":"string","description":"Le code de l’opérateur dans son pays, par exemple « mtn »."},"country":{"type":"string","description":"Le code ISO 3166-1 alpha-3."},"default":{"type":"boolean","description":"Le bénéficiaire proposé d’office pour un retrait."},"usable_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Un bénéficiaire neuf attend sa carence avant le premier retrait."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","name","phone","operator","country","default","usable_at","created","livemode"],"additionalProperties":false,"description":"Un bénéficiaire de retrait. Il s’ajoute à l’écran, confirmé par le code de l’application : une clé volée ne doit pas ouvrir de porte de sortie."},"Balance":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"balance","description":"Le genre de l’objet rendu : il ne change jamais."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."},"balances":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"available":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Retirable tout de suite."},"pending":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Encaissé, en attente de sa date."},"reserved":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Gardé de côté : litiges, réserve réglée."},"in_transit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Déjà parti en retrait."},"owed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Les remboursements avancés sur les fonds en attente : la prochaine libération les règle avant de créditer le disponible."}},"required":["currency","available","pending","reserved","in_transit","owed"],"additionalProperties":false},"description":"Une ligne par monnaie encaissée."}},"required":["object","livemode","balances"],"additionalProperties":false,"description":"Les soldes du marchand, poche par poche."},"Account":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"account","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"L’identifiant de l’espace marchand."},"name":{"type":"string","description":"Le nom commercial de l’espace."},"country":{"type":"string","description":"Le code ISO 3166-1 alpha-3."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."},"key":{"type":"object","properties":{"permissions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Ce que cette clé a le droit de faire, ressource par ressource."}},"required":["permissions"],"additionalProperties":false,"description":"La clé qui a servi : ce qu’elle ouvre."}},"required":["object","id","name","country","currency","livemode","key"],"additionalProperties":false,"description":"Le compte que votre clé ouvre. Le seul appel qui ne demande rien d’autre."},"RefundReason":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"refund_reason","description":"Le genre de l’objet rendu : il ne change jamais."},"reason":{"type":"string","description":"Le motif, tel qu’il doit être envoyé à POST /v1/refunds."}},"required":["object","reason"],"additionalProperties":false,"description":"Un motif de remboursement que la plateforme accepte. Ils se règlent : ne les écrivez pas en dur."},"Dispute":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"dispute","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « dp_ », par exemple dp_01j9x3kq7m4tzv8qhw2n."},"payment":{"type":"string","description":"Le paiement contesté."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"La somme contestée, retenue sur votre solde le temps du litige."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Le code ISO 4217, en majuscules."},"status":{"type":"string","enum":["needs_response","evidence_submitted","under_review","won","lost"],"description":"« needs_response » : votre dossier est attendu avant « evidence_due_by » ; « under_review » : la banque du payeur tranche."},"reason":{"type":"string","description":"Le motif donné par le payeur ou sa banque."},"evidence_due_by":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Le dossier doit partir avant cette date."},"evidence_submitted_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Quand votre dossier est parti."},"closed_at":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Quand l’issue est tombée."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","payment","amount","currency","status","reason","evidence_due_by","evidence_submitted_at","closed_at","created","livemode"],"additionalProperties":false,"description":"Un litige : un payeur conteste un paiement. Le dossier se dépose dans votre espace."},"Conversion":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"conversion","description":"Le genre de l’objet rendu : il ne change jamais."},"id":{"type":"string","description":"Un identifiant préfixé « cnv_ », par exemple cnv_01j9x3kq7m4tzv8qhw2n."},"from_currency":{"type":"string","minLength":3,"maxLength":3,"description":"La monnaie vendue."},"to_currency":{"type":"string","minLength":3,"maxLength":3,"description":"La monnaie reçue."},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui a quitté le portefeuille de départ."},"amount_received":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Ce qui est arrivé dans l’autre portefeuille."},"rate":{"type":"number","description":"Le taux appliqué : combien d’unités reçues pour une vendue."},"fee":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Les frais de change, dans la monnaie vendue."},"created":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Des secondes depuis 1970, ou null."},"livemode":{"type":"boolean","description":"Faux en mode test : aucun argent ne circule."}},"required":["object","id","from_currency","to_currency","amount","amount_received","rate","fee","created","livemode"],"additionalProperties":false,"description":"Une conversion entre deux portefeuilles de votre espace."},"WebhookTest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"message":{"type":"string","description":"Une phrase pour vérifier que la destination reçoit bien."}},"required":["message"],"additionalProperties":false,"description":"L’objet de l’essai envoyé depuis votre espace."},"Error":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","invalid_request_error","rate_limit_error","api_error"],"description":"La famille : qui doit corriger."},"code":{"type":"string","enum":["missing_api_key","invalid_api_key","insufficient_permissions","parameter_missing","parameter_invalid","resource_missing","payload_too_large","idempotency_key_reuse","rate_limited","merchant_inactive","live_mode_not_enabled","currency_unavailable","limit_exceeded","balance_insufficient","payment_closed","attempt_in_progress","phone_invalid","operator_required","operator_unavailable","country_unavailable","exchange_rate_unavailable","amount_out_of_range","idempotency_key_required","payment_declined","direct_not_enabled","too_many_attempts","payment_disputed","refund_amount_too_high","refund_reason_invalid","payment_not_refundable","recipient_not_ready","payout_unavailable","conflict","not_permitted","setting_missing","service_unavailable","internal_error"],"description":"Le cas précis, stable, fait pour être testé. La liste : la page « Les erreurs »."},"message":{"type":"string","description":"Une phrase déjà écrite pour être montrée, en français ou en anglais selon Accept-Language."},"param":{"description":"Le champ fautif, quand il y en a un.","type":"string"},"details":{"description":"Ce qui aide à corriger, selon le code : par exemple « remaining » pour un remboursement trop gros.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"request_id":{"description":"L’identifiant de l’appel, aussi dans l’en-tête Request-Id : à citer quand vous nous écrivez.","type":"string"}},"required":["type","code","message"],"additionalProperties":false,"description":"Ce qu’il y a dans le corps, quel que soit le statut."}},"required":["error"],"additionalProperties":false,"description":"Le format d’erreur, le même pour toutes les ressources."}},"securitySchemes":{"cle":{"type":"http","scheme":"bearer","description":"Votre clé secrète : « Authorization: Bearer sk_live_… ». Les clés de test commencent par sk_test_."}}},"paths":{"/v1/payments":{"post":{"summary":"Créer un paiement","description":"Crée un paiement, et rend la page à partager avec le payeur.\n\nLe paiement naît « requires_payment » : rien n’est prélevé tant que le payeur n’a pas validé sur son téléphone. Envoyez-lui « payment_url », et attendez le webhook — c’est lui qui dit que l’argent est arrivé. Avec « payer », la demande part aussitôt sur son téléphone : le paiement direct.","operationId":"v1_payments_post","security":[{"cle":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Obligatoire avec « payer » : la même clé rend le même paiement, sans relancer le téléphone. Conseillée sinon.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Ce qu’on demande au payeur."},"currency":{"description":"Sans précision : la monnaie de l’espace.","type":"string","minLength":3,"maxLength":3},"description":{"description":"Ce que le payeur lira sur sa page : dites-lui ce qu’il paie.","type":"string","maxLength":500},"reference":{"description":"Votre référence, rendue telle quelle.","type":"string","maxLength":120},"return_url":{"description":"Où renvoyer le payeur une fois qu’il a payé.","type":"string","format":"uri"},"expires_at":{"description":"En secondes depuis 1970.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fees_paid_by":{"description":"« customer » : les frais s’ajoutent à ce qu’on lui demande.","type":"string","enum":["merchant","customer"]},"metadata":{"description":"Vos propres clés, rendues telles quelles ; jamais lues par Payiz.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"payer":{"description":"Le paiement direct : la demande part aussitôt sur son téléphone. Exige le geste « Paiements · lancer » et un en-tête Idempotency-Key.","type":"object","properties":{"phone":{"type":"string","maxLength":24,"description":"Le numéro du payeur, au format international (+2290197000000)."},"country":{"description":"Son pays, quand le numéro est écrit sans indicatif.","type":"string","minLength":3,"maxLength":3},"operator":{"description":"Son opérateur, quand le numéro ne suffit pas à le reconnaître : un code de GET /v1/payment_methods.","type":"string","maxLength":40}},"required":["phone"],"additionalProperties":false}},"required":["amount"],"additionalProperties":false,"description":"Créer un paiement."}}}},"responses":{"201":{"description":"Créer un paiement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Lister les paiements","description":"Les paiements de votre espace, du plus récent au plus ancien.","operationId":"v1_payments_get","security":[{"cle":[]}],"parameters":[{"name":"status","in":"query","required":false,"description":"Ne rendre que les paiements dans cet état.","schema":{"type":"string","enum":["requires_payment","processing","succeeded","expired","canceled","partially_refunded","refunded"]}},{"name":"reference","in":"query","required":false,"description":"Votre référence, exactement.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les paiements","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/Payment"},"description":"Les paiements de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de paiements, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payments/{id}/attempts":{"post":{"summary":"Lancer une demande","description":"Envoie la demande sur le téléphone du payeur, ou la relance après un échec.\n\nLe paiement doit attendre d’être payé : une demande en cours répond « attempt_in_progress ». La réponse dit « pending » ; l’issue arrive par webhook. Exige le geste « Paiements · lancer » et un en-tête Idempotency-Key.","operationId":"v1_payments__id__attempts_post","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Obligatoire ici : la même clé rend la même demande, sans relancer le téléphone. Tirez-la de votre commande.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"phone":{"type":"string","maxLength":24,"description":"Le numéro du payeur, au format international (+2290197000000)."},"country":{"description":"Son pays, quand le numéro est écrit sans indicatif.","type":"string","minLength":3,"maxLength":3},"operator":{"description":"Son opérateur, quand le numéro ne suffit pas à le reconnaître : un code de GET /v1/payment_methods.","type":"string","maxLength":40}},"required":["phone"],"additionalProperties":false,"description":"Lancer, ou relancer après un échec, la demande sur le téléphone du payeur."}}}},"responses":{"201":{"description":"Lancer une demande","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentAttempt"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Lister les demandes d’un paiement","description":"Les demandes envoyées au payeur pour ce paiement, la plus récente d’abord.","operationId":"v1_payments__id__attempts_get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les demandes d’un paiement","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentAttempt"},"description":"Les demandes de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de demandes, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payment_methods":{"get":{"summary":"Lister les moyens de paiement","description":"Les pays et opérateurs par lesquels vos payeurs peuvent régler.\n\nDe quoi construire votre écran : l’indicatif, les préfixes et les bornes de chaque opérateur. Avec « amount », la commission et ce que le payeur paiera ; avec « phone », les seuls opérateurs de ce numéro.","operationId":"v1_payment_methods_get","security":[{"cle":[]}],"parameters":[{"name":"amount","in":"query","required":false,"description":"Un montant, dans la monnaie du paiement : chaque moyen dit alors ses frais et ce que le payeur paiera.","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},{"name":"currency","in":"query","required":false,"description":"La monnaie du paiement ; sans précision, celle de votre espace.","schema":{"type":"string","minLength":3,"maxLength":3}},{"name":"phone","in":"query","required":false,"description":"Un numéro : seuls les opérateurs qui peuvent le prendre sont rendus.","schema":{"type":"string","maxLength":24}},{"name":"country","in":"query","required":false,"description":"Un pays, en ISO 3166-1 alpha-3.","schema":{"type":"string","minLength":3,"maxLength":3}}],"responses":{"200":{"description":"Lister les moyens de paiement","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentMethod"},"description":"Les moyens de paiement de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de moyens de paiement, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payments/{id}":{"get":{"summary":"Lire un paiement","description":"Un paiement, avec ce qu’il a déjà rendu.","operationId":"v1_payments__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire un paiement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payments/{id}/cancel":{"post":{"summary":"Annuler un paiement","description":"Ferme un paiement encore à payer.\n\nUn paiement déjà réussi ne s’annule pas : il se rembourse.","operationId":"v1_payments__id__cancel_post","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Conseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.","schema":{"type":"string","maxLength":255}}],"responses":{"200":{"description":"Annuler un paiement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/widget/payments/{id}":{"get":{"summary":"Suivre un paiement depuis le navigateur","description":"Le seul appel sans clé : le secret du client ouvre ce paiement-là, et rien d’autre.\n\nPosez « client_secret », rendu une seule fois à la création. La réponse dit si c’est payé — ni métadonnées, ni référence, ni frais. Ne livrez jamais sur la seule foi du navigateur : le webhook fait foi.","operationId":"v1_widget_payments__id__get","security":[],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « pay_ », par exemple pay_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}},{"name":"client_secret","in":"query","required":true,"description":"Le secret rendu à la création du paiement.","schema":{"type":"string"}}],"responses":{"200":{"description":"Suivre un paiement depuis le navigateur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentPublic"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/refunds":{"post":{"summary":"Rembourser","description":"Rend tout ou partie d’un paiement.\n\nSans « amount », Payiz rend tout ce qui reste. Le motif est obligatoire et doit être un de ceux que la plateforme accepte : GET /v1/refund_reasons les donne.","operationId":"v1_refunds_post","security":[{"cle":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Conseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"payment":{"type":"string","description":"Le paiement à rendre."},"amount":{"description":"Sans montant, Payiz rend tout ce qui reste sur le paiement.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"reason":{"type":"string","description":"Pris parmi GET /v1/refund_reasons. Ne les écrivez pas en dur."}},"required":["payment","reason"],"additionalProperties":false,"description":"Rendre tout ou partie d’un paiement."}}}},"responses":{"201":{"description":"Rembourser","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Refund"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Lister les remboursements","description":"Filtrable par paiement et par statut.","operationId":"v1_refunds_get","security":[{"cle":[]}],"parameters":[{"name":"payment","in":"query","required":false,"description":"Les remboursements de ce paiement-là.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Ne rendre que ceux dans cet état.","schema":{"type":"string","enum":["pending","processing","succeeded","failed"]}},{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les remboursements","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/Refund"},"description":"Les remboursements de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de remboursements, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/refunds/{id}":{"get":{"summary":"Lire un remboursement","description":"Un remboursement, et ce qu’il a coûté.","operationId":"v1_refunds__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « rem_ », par exemple rem_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire un remboursement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Refund"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/refund_reasons":{"get":{"summary":"Les motifs de remboursement","description":"Les motifs que la plateforme accepte aujourd’hui.\n\nIls se règlent dans la tour de contrôle : lisez-les, ne les écrivez pas en dur. Cette liste n’est pas paginée.","operationId":"v1_refund_reasons_get","security":[{"cle":[]}],"responses":{"200":{"description":"Les motifs de remboursement","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/RefundReason"},"description":"Les motifs de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de motifs, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payment_links":{"post":{"summary":"Créer un lien de paiement","description":"Une adresse qui encaisse, à prix fixe ou libre.","operationId":"v1_payment_links_post","security":[{"cle":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Conseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","maxLength":80,"description":"Ce que le payeur lit en grand sur sa page."},"description":{"description":"Ce que le payeur lit sous le titre.","type":"string","maxLength":300},"type":{"description":"« open » : le payeur choisit le montant, entre les bornes. Par défaut « fixed ».","type":"string","enum":["fixed","open"]},"amount":{"description":"Le prix, quand il est fixe.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"min_amount":{"description":"Pour un prix libre.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"max_amount":{"description":"Pour un prix libre.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"description":"Sans précision : la monnaie de l’espace.","type":"string","minLength":3,"maxLength":3},"reusable":{"description":"Faux : le lien se ferme au premier paiement réussi. Par défaut vrai.","type":"boolean"},"fees_paid_by":{"description":"« customer » : les frais s’ajoutent à ce qu’on demande au payeur.","type":"string","enum":["merchant","customer"]},"collect":{"description":"Ce qu’on demande au payeur en plus de son numéro. L’e-mail est toujours demandé.","type":"array","items":{"type":"string","enum":["name","email","address"]}},"expires_at":{"description":"Quand le lien se ferme, en secondes depuis 1970.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["title"],"additionalProperties":false,"description":"Créer un lien de paiement."}}}},"responses":{"201":{"description":"Créer un lien de paiement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Lister les liens","description":"Filtrable par lien ouvert ou fermé.","operationId":"v1_payment_links_get","security":[{"cle":[]}],"parameters":[{"name":"active","in":"query","required":false,"description":"Les liens ouverts, ou fermés.","schema":{"type":"string","enum":["true","false"]}},{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les liens","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/PaymentLink"},"description":"Les liens de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de liens, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payment_links/{id}":{"get":{"summary":"Lire un lien","description":"Un lien, avec ce qu’il a encaissé.","operationId":"v1_payment_links__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « lnk_ », par exemple lnk_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire un lien","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payment_links/{id}/deactivate":{"post":{"summary":"Fermer un lien","description":"Le lien cesse d’encaisser ; les paiements déjà faits ne bougent pas.","operationId":"v1_payment_links__id__deactivate_post","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « lnk_ », par exemple lnk_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Conseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.","schema":{"type":"string","maxLength":255}}],"responses":{"200":{"description":"Fermer un lien","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/balance":{"get":{"summary":"Le solde","description":"Disponible, en attente, réserve, en transit, dette — par monnaie.","operationId":"v1_balance_get","security":[{"cle":[]}],"responses":{"200":{"description":"Le solde","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Balance"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/recipients":{"get":{"summary":"Lister les bénéficiaires","description":"Vers qui vous pouvez retirer.\n\nUn bénéficiaire s’ajoute à l’écran, confirmé par le code de votre application : une clé volée ne doit pas ouvrir de porte de sortie. Cette liste n’est pas paginée.","operationId":"v1_recipients_get","security":[{"cle":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les bénéficiaires","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/Recipient"},"description":"Les bénéficiaires de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de bénéficiaires, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/recipients/{id}":{"get":{"summary":"Lire un bénéficiaire","description":"Un bénéficiaire, et quand il devient utilisable.","operationId":"v1_recipients__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « ben_ », par exemple ben_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire un bénéficiaire","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Recipient"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payouts":{"post":{"summary":"Retirer","description":"Envoie de l’argent vers un bénéficiaire enregistré.\n\nSelon le régime réglé pour votre compte, le retrait peut attendre une approbation : son « status » le dit.","operationId":"v1_payouts_post","security":[{"cle":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Conseillée : rejouée, la même clé rend la première réponse au lieu de refaire le geste.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amount":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Ce que le bénéficiaire reçoit."},"recipient":{"type":"string","description":"Vers qui l’argent part."},"currency":{"description":"Sans précision : la monnaie de l’espace.","type":"string","minLength":3,"maxLength":3}},"required":["amount","recipient"],"additionalProperties":false,"description":"Retirer vers un bénéficiaire déjà enregistré."}}}},"responses":{"201":{"description":"Retirer","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payout"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Lister les retraits","description":"Filtrable par statut.","operationId":"v1_payouts_get","security":[{"cle":[]}],"parameters":[{"name":"status","in":"query","required":false,"description":"Ne rendre que les retraits dans cet état.","schema":{"type":"string","enum":["pending","in_review","processing","paid","failed","refused","canceled"]}},{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les retraits","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/Payout"},"description":"Les retraits de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de retraits, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payouts/{id}":{"get":{"summary":"Lire un retrait","description":"Un retrait, et ce qu’il est devenu.","operationId":"v1_payouts__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « ret_ », par exemple ret_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire un retrait","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payout"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/disputes":{"get":{"summary":"Lister les litiges","description":"Les litiges de votre espace, du plus récent au plus ancien.\n\nLe dossier se dépose dans votre espace, pièces à l’appui : l’API le lit, elle ne le remplit pas.","operationId":"v1_disputes_get","security":[{"cle":[]}],"parameters":[{"name":"status","in":"query","required":false,"description":"Ne rendre que les litiges dans cet état.","schema":{"type":"string","enum":["needs_response","evidence_submitted","under_review","won","lost"]}},{"name":"payment","in":"query","required":false,"description":"Le litige d’un paiement.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les litiges","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/Dispute"},"description":"Les litiges de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de litiges, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/disputes/{id}":{"get":{"summary":"Lire un litige","description":"Un litige, et où il en est.","operationId":"v1_disputes__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « dp_ », par exemple dp_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire un litige","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dispute"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversions":{"get":{"summary":"Lister les conversions","description":"Les conversions entre vos portefeuilles, de la plus récente à la plus ancienne.","operationId":"v1_conversions_get","security":[{"cle":[]}],"parameters":[{"name":"currency","in":"query","required":false,"description":"Les conversions qui vendent ou reçoivent cette monnaie.","schema":{"type":"string","minLength":3,"maxLength":3}},{"name":"limit","in":"query","required":false,"description":"De 1 à 100. Par défaut 20.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"starting_after","in":"query","required":false,"description":"L’identifiant de la dernière ligne lue : la page suivante commence après.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lister les conversions","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"object":{"type":"string","const":"list","description":"Le genre de l’objet rendu : il ne change jamais."},"data":{"type":"array","items":{"$ref":"#/components/schemas/Conversion"},"description":"Les conversions de la page, du plus récent au plus ancien."},"has_more":{"type":"boolean","description":"Vrai : il en reste. Rappelez avec starting_after sur la dernière ligne lue."},"url":{"type":"string","description":"L’adresse qui a servi, sans les filtres."}},"required":["object","data","has_more","url"],"additionalProperties":false,"description":"Une page de conversions, du plus récent au plus ancien."}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversions/{id}":{"get":{"summary":"Lire une conversion","description":"Une conversion, et le taux qu’elle a pris.","operationId":"v1_conversions__id__get","security":[{"cle":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Un identifiant préfixé « cnv_ », par exemple cnv_01j9x3kq7m4tzv8qhw2n.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lire une conversion","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Conversion"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/account":{"get":{"summary":"Vérifier une clé","description":"Le compte que la clé ouvre, et ce qu’elle a le droit de faire.\n\nLe premier appel à essayer : il ne demande rien d’autre que votre clé.","operationId":"v1_account_get","security":[],"responses":{"200":{"description":"Vérifier une clé","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"400":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Une erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{"payment.succeeded":{"post":{"summary":"payment.succeeded","description":"L’argent est arrivé. C’est lui qui dit de livrer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Payment"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"payment.attempt_failed":{"post":{"summary":"payment.attempt_failed","description":"Une demande n’a pas abouti chez le payeur. Le paiement reste payable jusqu’à son échéance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Payment"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"payment.expired":{"post":{"summary":"payment.expired","description":"L’échéance est passée sans paiement.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Payment"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"payment.canceled":{"post":{"summary":"payment.canceled","description":"Le paiement a été annulé avant d’être payé.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Payment"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"refund.succeeded":{"post":{"summary":"refund.succeeded","description":"Le remboursement est arrivé chez le payeur.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Refund"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"refund.failed":{"post":{"summary":"refund.failed","description":"Le remboursement n’a pas pu partir ; la somme revient sur votre solde.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Refund"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"payout.paid":{"post":{"summary":"payout.paid","description":"Le retrait est arrivé chez le bénéficiaire.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Payout"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"payout.failed":{"post":{"summary":"payout.failed","description":"Le retrait n’a pas pu partir ; la somme revient sur votre solde.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Payout"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"dispute.created":{"post":{"summary":"dispute.created","description":"Un payeur conteste un paiement : la somme est retenue, votre dossier est attendu.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Dispute"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"dispute.closed":{"post":{"summary":"dispute.closed","description":"L’issue du litige est tombée : gagné, la somme revient ; perdu, elle part.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Dispute"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"conversion.completed":{"post":{"summary":"conversion.completed","description":"Une conversion entre deux de vos portefeuilles est faite.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/Conversion"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}},"webhook.test":{"post":{"summary":"webhook.test","description":"L’essai envoyé depuis votre espace, pour vérifier une destination.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","description":"L’identifiant de l’événement, préfixé « evt_ » : dédoublonnez sur lui."},"type":{"type":"string","enum":["payment.succeeded","payment.attempt_failed","payment.expired","payment.canceled","refund.succeeded","refund.failed","payout.paid","payout.failed","dispute.created","dispute.closed","conversion.completed","webhook.test"]},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Des secondes depuis 1970."},"livemode":{"type":"boolean","description":"Faux en mode test."},"data":{"type":"object","properties":{"object":{"$ref":"#/components/schemas/WebhookTest"}},"required":["object"]}},"required":["id","type","created","livemode","data"],"additionalProperties":false,"description":"Un webhook : signé dans l’en-tête Payiz-Signature, rejoué tant qu’il n’est pas reçu."}}}},"responses":{"200":{"description":"Reçu : répondez 2xx au plus vite."}}}}}}