Witajcie,
Mam pytanko próbuję zapisać FV na KSeF i utknąłem
import requests
import json
import base64
import hashlib
# Zmienne wejściowe
url = 'https://ksef-test.mf.gov.pl/api/online/Invoice/Send'
session_token = '<<TOKEN_DO_TESTOWKI>>'
# Wczytanie zawartości pliku XML
with open('FV.xml', 'r', encoding='utf-8') as file:
faktura2 = file.read()
# Generowanie danych JSON
invoice_hash = {
"fileSize": len(faktura2),
"hashSHA": {
"algorithm": "SHA-256",
"encoding": "Base64",
"value": base64.b64encode(hashlib.sha256(faktura2.encode('utf-8')).digest()).decode('utf-8')
}
}
invoice_payload = {
"invoiceBody": base64.b64encode(faktura2.encode('utf-8')).decode('utf-8'),
"type": 'plain'
}
data = {
"invoiceHash": invoice_hash,
"invoicePayload": invoice_payload
}
headers = {
'accept': 'application/json',
'SessionToken': session_token,
'Content-Type': 'application/json'
}
# Wysyłanie żądania HTTP PUT
response = requests.put(url, data=json.dumps(data), headers=headers)
# Przetwarzanie odpowiedzi
print(response.status_code)
print(response.json())
ciągle zwraca mi taki kod błędu:
400
{'exception': {'serviceCtx': 'default', 'serviceCode': '20231120-EX-4DF5E579F7-BBF24BD286-22', 'serviceName': 'online.invoice.invoice.send', 'timestamp': '2023-11-20T19:43:02.122Z', 'exceptionDetailList': [{'exceptionCode': 21149, 'exceptionDescription': 'Brak sesji.'}]}}
FV na bank poprawna ale nie do końca kumam co robię źle. Podpowiecie?