Closed MZK91 closed 2 years ago
Bonjour, Sans voir le code que tu fais c'est délicat mais il est vrai que les erreurs de type invalid fields sont très peu explicite sur l'api piste. Si ça t'intéresse j'ai forké le projet pour le structurer d'avantage : https://github.com/Gizmo091/piste-gouv-fr ( et surtout j'avais besoin d'une compatibilité >= php7.0 ).
Bonjour Sylvain,
Merci pour ta réponse, je te copie mon code, je me suis inspiré de ton travail et voici ce qu'il en est:
La fonction d'envoi:
public function postFluxFacture( $template, $avecSignature = false, $syntaxeFlux = 'IN_DP_E2_UBL_INVOICE', $nomFichier = 'DepotFactureUBLE2V21.xml' ) {
$url = 'https://sandbox-api.piste.gouv.fr/cpro/factures/v1/deposer/flux';
$postsValues =
[
'idUtilisateurCourant' => 0,
'fichierFlux' => base64_encode($template),
'nomFichier' => $nomFichier . '.xml',
'syntaxeFlux' => $syntaxeFlux,
'avecSignature' => $avecSignature
];
$headers =
[
'Authorization: Bearer ' . $this->token,
'cpro-account: '.$this->cProAccount,
'Content-Type: application/json;charset=utf-8',
'Accept: application/json;charset=utf-8'
];
$post = json_encode($postsValues);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
dump($response);
die;
}
Les parametres:
Comme j'avais constamment le même retour, j'ai utilisé un exemple fourni dans la documentation.
$xml = <<<EOT
<?xml-stylesheet type="text/xsl" href="FSO1110A.xsl" ?>
EOT;
$clientChorus->postFluxFacture($xml, false, 'IN_DP_E2_UBL_INVOICE', 'FSO1110-P30.xml ');
Je récupère bien en amont le token, j'ai bien vérifié que cela ne vienne pas de là, car quand je ne le transmet pas j'ai bien une erreur spécifique qui me précise que le token n'a pas été récupéré par l'API.
Merci par avance de tes conseils.
le token vient bien d'un environnement sandbox egalement ?
En revanche dans la doc je n'avais pas vu IN_DP_E2_UBL_INVOICE , en revanche IN_DP_E1_UBL_INVOICE existe.
Voir ici : https://communaute.chorus-pro.gouv.fr/documentation/exemples-de-flux/
Voir aussi ici pour les exemple de IN_DP_E1_UBL_INVOICE : https://communaute.chorus-pro.gouv.fr/wp-content/uploads/2018/12/201812_FSO1100A_Exemples.tar et ici pour les exemple de IN_DP_E2_UBL_INVOICE_MIN : https://communaute.chorus-pro.gouv.fr/wp-content/uploads/2017/08/FSO1110A_CPP.tar.zip
Le token provient bien de l'environnement de dev, j'ai également effectué les changements de format au niveau de la facture, voici le code mis à jour:
$xml = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="FSO1100A.xsl" ?>
<Invoice xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2"
xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2"
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
xmlns:aife="urn:AIFE:Facture:Extension">
<!-- FSO1100A_P02 -->
<cec:UBLExtensions>
<cec:UBLExtension>
<cec:ExtensionContent>
<CategoryCode>A9</CategoryCode>
</cec:ExtensionContent>
</cec:UBLExtension>
</cec:UBLExtensions>
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:ID>FSO1100A_P02</cbc:ID>
<cbc:IssueDate>2018-01-01</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:Note>Facture avec plusieurs lignes de facturation et TVA - Cas de sous-traitance à destination d'un service exécutant de l'Etat</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cac:InvoicePeriod>
<cbc:StartDate>2017-01-01</cbc:StartDate>
<cbc:EndDate>2017-12-31</cbc:EndDate>
<cbc:Description>Description de la periode</cbc:Description>
</cac:InvoicePeriod>
<cac:OrderReference>
<cbc:ID>0000131745</cbc:ID>
<cbc:IssueDate>2018-01-31</cbc:IssueDate>
</cac:OrderReference>
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>FAC001</cbc:ID>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
<cac:ContractDocumentReference>
<cbc:ID>MP1234567890</cbc:ID>
<cbc:IssueDate>2018-01-21</cbc:IssueDate>
<cbc:DocumentTypeCode>Marché public</cbc:DocumentTypeCode>
</cac:ContractDocumentReference>
<cac:ContractDocumentReference>
<cbc:ID>CO0987654321</cbc:ID>
<cbc:IssueDate>2018-01-11</cbc:IssueDate>
<cbc:DocumentTypeCode>Contrat</cbc:DocumentTypeCode>
</cac:ContractDocumentReference>
<cac:AdditionalDocumentReference>
<cbc:ID>PJ1.png</cbc:ID>
<cbc:DocumentTypeCode>image/png</cbc:DocumentTypeCode>
<cbc:DocumentType>02</cbc:DocumentType>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/zip"> ... BASE 64... </cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeName="1">00000000091931</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Nom commercial du fournisseur</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Adresse commerciale du fournisseur</cbc:StreetName>
<cbc:AdditionalStreetName>Complement d'adresse commerciale du fournisseur</cbc:AdditionalStreetName>
<cbc:CityName>Commune commerciale du fournisseur</cbc:CityName>
<cbc:PostalZone>01001</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>FR00000000001</cbc:CompanyID>
<cac:TaxScheme>
<cbc:TaxTypeCode>TVA DEBIT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Raison sociale du fournisseur</cbc:RegistrationName>
<cac:RegistrationAddress>
<cbc:StreetName>Adresse legale du fournisseur</cbc:StreetName>
<cbc:AdditionalStreetName>Complement d'adresse legale du fournisseur</cbc:AdditionalStreetName>
<cbc:CityName>Commune legale du fournisseur</cbc:CityName>
<cbc:PostalZone>01002</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:ID>SERV_FOUR</cbc:ID>
<cbc:Name>Nom du service fournisseur</cbc:Name>
<cbc:Note>Commentaires sur le fournisseur</cbc:Note>
</cac:Contact>
<cac:AgentParty>
<cac:PartyIdentification>
<cbc:ID schemeName="1">00000000012664</cbc:ID>
</cac:PartyIdentification>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Raison sociale du valideur</cbc:RegistrationName>
<cac:RegistrationAddress>
<cbc:StreetName>Adresse du valideur</cbc:StreetName>
<cbc:AdditionalStreetName>Complement d'adresse du valideur</cbc:AdditionalStreetName>
<cbc:CityName>Commune du valideur</cbc:CityName>
<cbc:PostalZone>03000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Nom du contact valideur</cbc:Name>
<cbc:Telephone>+33000000003</cbc:Telephone>
<cbc:Telefax>+33100000003</cbc:Telefax>
<cbc:ElectronicMail>valideur@cpp2017.fr</cbc:ElectronicMail>
</cac:Contact>
</cac:AgentParty>
</cac:Party>
<cac:AccountingContact>
<cbc:Name>Nom du contact fournisseur</cbc:Name>
<cbc:Telephone>+33000000001</cbc:Telephone>
<cbc:Telefax>+33100000001</cbc:Telefax>
<cbc:ElectronicMail>fournisseur@cpp2017.fr</cbc:ElectronicMail>
</cac:AccountingContact>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeName="1">11000201100044</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Raison sociale du debiteur</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Adresse du debiteur</cbc:StreetName>
<cbc:AdditionalStreetName>Complement d'adresse du debiteur</cbc:AdditionalStreetName>
<cbc:CityName>Commune du debiteur</cbc:CityName>
<cbc:PostalZone>02000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>FR00000000002</cbc:CompanyID>
<cac:TaxScheme/>
</cac:PartyTaxScheme>
<cac:Contact>
<cbc:Note>Commentaires sur le debiteur</cbc:Note>
</cac:Contact>
</cac:Party>
<cac:AccountingContact>
<cbc:ID>SFACETAT</cbc:ID>
<cbc:Name>Nom du service debiteur</cbc:Name>
</cac:AccountingContact>
</cac:AccountingCustomerParty>
<cac:PayeeParty>
<cac:PartyIdentification>
<cbc:ID schemeName="1">00000000054013</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Raison sociale de l'encaisseur</cbc:Name>
</cac:PartyName>
<cac:PartyLegalEntity>
<cac:RegistrationAddress>
<cbc:StreetName>Adresse de l'encaisseur</cbc:StreetName>
<cbc:AdditionalStreetName>Complement d'adresse de l'encaisseur</cbc:AdditionalStreetName>
<cbc:CityName>Commune de l'encaisseur</cbc:CityName>
<cbc:PostalZone>04000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Nom du contact encaisseur</cbc:Name>
<cbc:Telephone>+33000000004</cbc:Telephone>
<cbc:Telefax>+33100000004</cbc:Telefax>
<cbc:ElectronicMail>encaisseur@cpp.fr</cbc:ElectronicMail>
</cac:Contact>
</cac:PayeeParty>
<cac:Delivery>
<cac:DeliveryLocation>
<cbc:ID>SiteID</cbc:ID>
<cbc:Description>Nom du site de livraison</cbc:Description>
<cac:Address>
<cbc:StreetName>Adresse du site de livraison</cbc:StreetName>
<cbc:AdditionalStreetName>Complement d'adresse du site de livraison</cbc:AdditionalStreetName>
<cbc:CityName>Commune du site de livraison</cbc:CityName>
<cbc:PostalZone>05000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>
<cac:PaymentMeans>
<cbc:PaymentMeansCode listID="UN/ECE 4461 Subset"
listAgencyID="NES" listAgencyName="Northern European Subset"
listName="Payment Means">42</cbc:PaymentMeansCode>
<cbc:PaymentDueDate>2018-12-31</cbc:PaymentDueDate>
<cbc:PaymentChannelCode>IBAN</cbc:PaymentChannelCode>
<cac:PayeeFinancialAccount>
<cbc:ID>FR0000000000000000000000000</cbc:ID>
<cac:FinancialInstitutionBranch>
<cbc:ID>BNPAFRPPXXX</cbc:ID>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentTerms>
<cbc:Note>Note relative au mode de paiement</cbc:Note>
</cac:PaymentTerms>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>C</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>ChargePied</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">8</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">723</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>R</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>RemisePied</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">31</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">723</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">93</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">330</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">33</cbc:TaxAmount>
<cbc:Percent>10</cbc:Percent>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:TaxTypeCode>TVA10</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">300</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">60</cbc:TaxAmount>
<cbc:Percent>20</cbc:Percent>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:TaxTypeCode>TVA20</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:TaxExclusiveAmount currencyID="EUR">630</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">700</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="EUR">31</cbc:AllowanceTotalAmount>
<cbc:ChargeTotalAmount currencyID="EUR">8</cbc:ChargeTotalAmount>
<cbc:PrepaidAmount currencyID="EUR">20</cbc:PrepaidAmount>
<cbc:PayableAmount currencyID="EUR">680</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:Note>Description de la ligne 1</cbc:Note>
<cbc:InvoicedQuantity unitCode="U1">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">300</cbc:LineExtensionAmount>
<cac:Delivery>
<cbc:ID>Site1</cbc:ID>
<cbc:ActualDeliveryDate>2001-01-01</cbc:ActualDeliveryDate>
</cac:Delivery>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>C1</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>ChargeLigne1</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">60</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">240</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:Item>
<cbc:Description>Complement 1</cbc:Description>
<cbc:Name>Nom du produit 1</cbc:Name>
<cac:StandardItemIdentification>
<cbc:ID>Reference produit 1</cbc:ID>
</cac:StandardItemIdentification>
<cac:ClassifiedTaxCategory>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:TaxTypeCode>TVA1</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
<cac:AdditionalItemProperty>
<cbc:Name>TYPE_LIGNE</cbc:Name>
<cbc:Value>DETAIL</cbc:Value>
</cac:AdditionalItemProperty>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">120</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="U1">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>
<cac:InvoiceLine>
<cbc:ID>2</cbc:ID>
<cbc:Note>Description de la ligne 2</cbc:Note>
<cbc:InvoicedQuantity unitCode="U2">5</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">80</cbc:LineExtensionAmount>
<cac:Delivery>
<cbc:ID>Site2</cbc:ID>
<cbc:ActualDeliveryDate>2002-02-02</cbc:ActualDeliveryDate>
</cac:Delivery>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>R2</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>RemiseLigne2</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">20</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:Item>
<cbc:Description>Complement 2</cbc:Description>
<cbc:Name>Nom du produit 2</cbc:Name>
<cac:StandardItemIdentification>
<cbc:ID>Reference produit 2</cbc:ID>
</cac:StandardItemIdentification>
<cac:ClassifiedTaxCategory>
<cbc:Percent>10</cbc:Percent>
<cac:TaxScheme>
<cbc:TaxTypeCode>TVA2</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
<cac:AdditionalItemProperty>
<cbc:Name>TYPE_LIGNE</cbc:Name>
<cbc:Value>DETAIL</cbc:Value>
</cac:AdditionalItemProperty>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">20</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="U2">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>
<cac:InvoiceLine>
<cbc:ID>3</cbc:ID>
<cbc:Note>Description de la ligne 3</cbc:Note>
<cbc:InvoicedQuantity unitCode="U3">3</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">250</cbc:LineExtensionAmount>
<cac:Delivery>
<cbc:ID>Site3</cbc:ID>
<cbc:ActualDeliveryDate>2003-03-03</cbc:ActualDeliveryDate>
</cac:Delivery>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>R3</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>RemiseLigne3</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">60</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">300</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>C3</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>ChargeLigne3</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">10</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">300</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:Item>
<cbc:Description>Complement 3</cbc:Description>
<cbc:Name>Nom du produit 3</cbc:Name>
<cac:StandardItemIdentification>
<cbc:ID>Reference produit 3</cbc:ID>
</cac:StandardItemIdentification>
<cac:ClassifiedTaxCategory>
<cbc:Percent>10</cbc:Percent>
<cac:TaxScheme>
<cbc:TaxTypeCode>TVA3</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
<cac:AdditionalItemProperty>
<cbc:Name>TYPE_LIGNE</cbc:Name>
<cbc:Value>DETAIL</cbc:Value>
</cac:AdditionalItemProperty>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100</cbc:PriceAmount>
<cbc:BaseQuantity unitCode="U3">1</cbc:BaseQuantity>
</cac:Price>
</cac:InvoiceLine>
</Invoice>
EOT;
$clientChorus = new ChorusPisteUtil($clientId, $clientSecret, $login, $password, true);
$clientChorus->postFluxFacture($xml, false, 'IN_DP_E1_UBL_INVOICE', 'FSO1110-P30.xml
Voici les dumps des différentes étapes:
line 55:
"https://sandbox-oauth.piste.gouv.fr/api/oauth/token"
line 56:
"https://sandbox-api.piste.gouv.fr"
line 89:
"BABuGKNvE2TeE20VTsdKcpPpa3TQ61pFJhoNXv4WtOWokE4Kk6sIH1"
line 90:
"R0VTVF9QUklWRV8xXzgxMTU4OTE0NjkwMTAxQGNwcm8uZnI6aG1zY2prS2FiLmNlNg=="
line 175:
"""
HTTP/1.1 100 Continue\r\n
\r\n
HTTP/1.1 403 Forbidden\r\n
Date: Wed, 19 Oct 2022 15:05:54 GMT\r\n
X-CorrelationID: Id-52125063f41b7b0b3a79d7ef 0\r\n
WWW-Authenticate: Bearer realm="PISTE",error="[invalid field]",error_description="[invalid field]"\r\n
Content-Type: application/json\r\n
Transfer-Encoding: chunked\r\n
X-Xss-Protection: 1; mode=block\r\n
Referrer-Policy: no-referrer\r\n
X-Permitted-Cross-Domain-Policies: none\r\n
Expect-CT: max-age=86400, enforce, report-uri=https://example.com/ct-report\r\n
\r\n
"""
Et vous avez changé la syntaxeFlux ?
La syntaxe flux est celle que tu m'as demandé d'utiliser "IN_DP_E1_UBL_INVOICE" avec le XML correspondant trouvé dans le zip que j'ai téléchargé du site officiel, c'est pour ça que je n'arrives pas à comprendre d'où peut bien venir l'erreur qui n'est pas très explicite.
Tu as essayé de faire tes requêtes avec un outils type postman pour voir si ça passe ? Il faudrait avoir une trace de la requête et de la réponse pour bien savoir.
Quand tu fais ça : 'fichierFlux' => base64_encode($template),
est ce que $template est le contenu du fichier ou le path.
Le problème venait d'où ?
Une erreur stupide d'activation d'API. Petite question, quel est le format le plus simple que tu utilises pour envoyer une facture ?
Une erreur stupide d'activation d'API. Petite question, quel est le format le plus simple que tu utilises pour envoyer une facture ?
je comprend, c'est un enfer de comprendre ce qu'on fait sur ces différentes plateformes. Moi j'ai préféré soumettre des PDF que je génère dans notre format de facture.
Bonjour Sylvain,
Tout d'abord je souhaitais te remercier pour le travail que tu as effectué, car vraiment la documentation de Chorus et Piste est incompréhensible et ton travail m'a malgré tout permis d'avancer.
Néanmoins je suis actuellement bloqué lors de la soumission d'une facture, le web service me retourne constamment le même message d'erreur et ça peu importe les modifications que j'effectue, voici le message:
HTTP/1.1 100 Continue\r\n \r\n HTTP/1.1 403 Forbidden\r\n Date: Tue, 18 Oct 2022 20:43:43 GMT\r\n X-CorrelationID: Id-ff0f4f63e543e021add0c252 0\r\n WWW-Authenticate: Bearer realm="PISTE",error="[invalid field]",error_description="[invalid field]"\r\n Content-Type: application/json\r\n Transfer-Encoding: chunked\r\n X-Xss-Protection: 1; mode=block\r\n Referrer-Policy: no-referrer\r\n X-Permitted-Cross-Domain-Policies: none\r\n Expect-CT: max-age=86400, enforce, report-uri=https://example.com/ct-report\r\n
Si jamais du as une idée d'où l'erreur pourrait bien venir ?
Je te remercie par avance pour ton aide.