Exemples d'appels de l'API Paiements de factures

Paiements facture MIS

Ce qui suit décrit comment vous pouvez utiliser l'API Coupa pour mettre à jour une facture avec des informations de paiement

Notre API de paiement de facture vous permet de faire deux choses :

  1. Mettre à jour une facture avec trois attributs : Payé, date de paiement et notes de paiement.À l'origine,
    Coupa vous permettait de renseigner ces champs Facture. Si vous avez plusieurs paiements, vous devrez ajouter ces deuxièmes informations de paiement dans les notes de paiement.
  2. Vous pouvez maintenant le faire et mettre à jour une facture avec un tableau d'informations de paiement : Date de paiement, Notes (numéro de chèque) et Montant payé.  Cela vous permet d'attribuer plusieurs dates de paiement, numéros de chèque et montants payés à une seule facture.

Les commentaires des clients nous ont aidés à voir l'intérêt d'ajouter plus d'ensembles de données de paiement pour une seule facture. Étant donné que certains clients utilisent encore la méthode originale de mise à jour des factures, nous avons décidé de prendre en charge les deux méthodes de mise à jour des factures avec les informations de paiement.

Il s'agit de l'URL à laquelle vous pouvez METTRE ces informations :

  • <your_instance_URL>/api/factures/<invoice id>
  • En règle générale, vous utilisez le numéro de facture et le fournisseur pour trouver l'identifiant de facture correct afin de l'utiliser dans le PUT

Vous pouvez publier des paiements sur une facture existante à l'aide de l'API Paiements de facture (../invoices/<invoice_id>endpoint) à l'aide d'un appel PUT. La charge utile du PUT peut être formatée en XML ou JSON avec l'un des plusieurs formats acceptés. 

Nous l'avons posté sur l'URL :  METTEZ https ://<instance>.coupahost.com/api/invoices/<invoice id> 

Exemple : Ajouter des renseignements sur le paiement à une facture existante

Dans ces exemples, nous ajoutons des informations de paiement à une facture existante à l'aide des champs : Payé, indicateur, notes de paiement et date de paiement.

Nous avons posté une charge utile en XML ou JSON à l'URL : https ://<instance>.coupahost.com/api/invoices/<invoice id>

La charge utile peut être dans l'un des plusieurs formats pris en charge utilisés pour enregistrer par programmation les paiements à l'aide de cette interface. Voici plus de quelques exemples.

Exemples de charge utile XML

Et voici un exemple de schéma de charge utile XML qui continue d'être pris en charge.

<?xml version="1.0" encoding="UTF-8"?>

<invoice-header>

	 <paid type="boolean">true</paid>

	 <payment-date type="datetime">23/06/2009T00:00:00-08:00:00</payment-date>

	 <payment-notes>CHÈQUE|#1003|USD|989,00|ENTIÈREMENT PAYÉ|</payment-notes>

	 <payments type="array">

			<payment>

				 <amount-paid>989,00</amount-paid>

				 <notes>1003</notes>

				 <payment-date>23/06/2009</payment-date>

			</payment>

	 </payments>

</invoice-header>

Voici un autre exemple de charge utile XML : 

<?xml version="1.0" encoding="UTF-8"?>

<invoice-header>

	 <invoice-date type="datetime">"22/10/2019 00:00:00 -0900"</invoice-date>

	 <invoice-number>Invoice_Number_1571292051.310760975</invoice-number>

	 <payments type="array">

			<payment>

				 <amount-paid>5,00</amount-paid>

				 <notes>1003</notes>

				 <payment-date>22/10/2019</payment-date>

			</payment>

	 </payments>

</invoice-header>

Et voici ci-dessous un exemple de paiements multiples à l'aide de XML :

<?xml version="1.0" encoding="UTF-8"?>

<invoice-header>

	 <payments type="array">

			<payment>

				 <amount-paid>4,00</amount-paid>

				 <notes>1003</notes>

				 <payment-date>23/06/2009</payment-date>

			</payment>

			<payment>

				 <amount-paid>5,00</amount-paid>

				 <notes>1004</notes>

				 <payment-date>23/06/2009</payment-date>

			</payment>

	 </payments>

</invoice-header>

Et un ancien exemple de charge utile XML (toujours pris en charge) qui met à jour une facture existante avec plusieurs numéros de chèque à l'aide de notes de paiement.  Il s'agit d'utiliser les champs : Payé, numéro de chèque et date de paiement.

<?xml version="1.0" encoding="UTF-8"?>

<invoice-header>

	 <paid type="boolean">true</paid>

	 <payment-date type="datetime">23/06/2009T00:00:00-08:00:00</payment-date>

	 <payment-notes>CHÈQUE|#1003|USD|989,00|ENTIÈREMENT PAYÉ|</payment-notes>

	 <payments type="array">

			<payment>

				 <amount-paid type="decimal" nil="true">100,23</amount-paid>

				 <notes nil="true">232</notes>

				 <payment-date type="datetime" nil="true">25/09/2010T02:22:11Z</payment-date>

			</payment>

			<payment>

				 <amount-paid type="decimal" nil="true">9032,32</amount-paid>

				 <notes nil="true">233</notes>

				 <payment-date type="datetime" nil="true">25/09/2010T02:22:11Z</payment-date>

			</payment>

	 </payments>

</invoice-header>

Exemples de charge utile JSON

Pour utiliser une charge utile JSON, vous pouvez utiliser l'un des exemples suivants comme modèle de format.

Format de données 1 :

{

	"paiements" : 

	{

		"paiement" :

			{ "check_number" : "1234567", "amount_paid" : "199.98", "notes" : "Chaîne", "payment_date" : "12/09/2019" }

	},

	"paid" : "faux",

	"payment_date" : "11/09/2019",

	"payment_notes" : "Paiement partiel avec un chèque de paiement."

}

 Format de données 2 :

{

	"paiements" : 

	{

		"paiement" : [

			{ "check_number" : "test_check_number", "amount_paid" : "510", "notes" : "Une note de paiement", "payment_date" : "12/09/2019" },

			{ "check_number" : "test_check_number", "amount_paid" : "53", "notes" : "Une note de paiement", "payment_date" : "11/09/2019" }]

	},

	"paid" : "faux",

	"payment_date" : "11/09/2019",

	"payment_notes" : « Un paiement partiel avec deux chèques. »

}

Format de données 3 : 

{

	"paiements" : [

		{ "check_number" : "test_check_number", "amount_paid" : "510", "notes" : "payment_note", "payment_date" : "12/09/2019" },

		{ "check_number" : "test_check_number", "amount_paid" : "53", "notes" : "payment_note", "payment_date" : "11/09/2019" }

	],

	"paid" : "faux",

	"payment_date" : "11/09/2019",

	"payment_notes" : « Deux paiements avec deux chèques. »

}

Format de données 4 : 

{

	"paid" : "vrai",

	"date-de-paiement" : "2019-08-13T00:00:00Z",

	"payment-notes" : "Bon eProc n °TRM-19-0009584-PV/THB",

	"paiements" : {

		 "paiement" :	[

			 {

				 "payable-type" : "InvoiceHeader",

				 "payable-id" : "4835",

				 "amount-paid" : "49,00",

				 "notes" : "TRM-19-0009584-PV",

				 "date-de-paiement" : "13-08-2019T00:00:00Z"

			 },

			{

				 "payable-type" : "InvoiceHeader",

				 "payable-id" : "4835",

				 "amount-paid" : "51,00",

				 "notes" : "TRM-19-0009584-PV",

				 "date-de-paiement" : "13-08-2019T00:00:00Z"

			 }

		]

	}

}

Retours

Les demandes retenues seront renvoyées : HTTP 200 créé. Le corps de la réponse comprendra les informations de paiement et la facture qui a été mise à jour.

Les demandes infructueuses retourneront : Requête HTTP 400 incorrecte. Le corps de la réponse comprendra des erreurs de validation formatées en XML.

Définition du champ

Intitulé Obligatoire ? Type Valeurs admissibles Description
payé non boolean vrai ou faux Il s'agit du champ payé sur l'en-tête de la facture. Il est défini sur une valeur vraie ou fausse.
date-de-paiement non datetime AAAA-MM-JJFHH :MM :SS+HH :MM Date et heure du paiement
notes-de-paiement non texte description ou notes s'il y a lieu Ce sont des notes que vous pouvez ajouter dans le cadre des informations de paiement.
<payments>       tableau de paiement commence
<payment>       versement de paiement
montant-payé non décimale Nombre à 2 décimales Il s'agit du montant payé dans le cadre du tableau de paiement.
notes ou
numéro de chèque
non Chaîne données transactionnelles Chèque ou informations de transaction ou de paiement capturées pour le paiement. Ce champ a été remplacé <check-number>. Toutes les données envoyées à la balise obsolète seront stockées dans le champ Notes. Le chèque # tag sera renseigné dans l'instance Coupa. (<check-number>peut également être utilisé).
date-de-paiement non texte AAAA-MM-JJFHH :MM :SS+HH :MM Date et heure du paiement
</payment>        
</payments>       la matrice de paiement se termine

Articles associés


API Coupa Core

Notre API RESTful fournit un accès fiable pour lire, modifier ou intégrer vos données à la plateforme Coupa.

Démarrez avec l'API

Informations générales sur l'utilisation de l'API Coupa et quand vous devez envisager d'utiliser CSV.

Transition vers OAuth 2.0 et OIDC

Coupa désapprouve les API Keys héritées et nécessite l'utilisation d'OAuth 2.0 / OIDC. À partir de R34, aucune nouvelle clé API ne sera émise et les clés API ne seront plus prises en charge avec R35.

Ressources

Nous avons organisé nos points de terminaison API par type d'objet : données de référence, données transactionnelles et ressources partagées.