Ошибка при удалении платежей в Xero, запутался, что еще я упустил

Впервые пишу и очень хочу найти решение. Я запускаю проект django, одна из функций будет удалять платежи в Xero, читая документацию, я думал, что это должно быть легко, так как нужен только один параметр и включить в resourceID. но я получил ошибку, говоря

{"Title":"An error occurred","Detail":"An error occurred in Xero. Check the API Status page http://status.developer.xero.com for current service status.","Status":500,"Instance":"f137f1e1-4011-43ed-b921-1e1827a90dad"}

Вот мой фрагмент кода.

        for paymentID in payment_IDs:
            token = XeroOAuth2Token.objects.latest('id')
            delete_payment_endpoint = f'https://api.xero.com/api.xro/2.0/Payments/{paymentID}'

            headers_del_payments = {
                "Authorization":f"Bearer {token.access_token}",
                "Xero-Tenant-Id": TENANT_ID,
                "Accept": "application/json",
                "Content-Type": "application/json"
            }
        
            response = requests.post(delete_payment_endpoint, headers=headers_del_payments)
            return HttpResponse(response.text)

Я попытался добавить Status:DELETE или paymentID:{ID здесь} в качестве полезной нагрузки, но это просто дало мне Error14

{ "ErrorNumber": 14, "Type": "PostDataInvalidException", "Message": "Invalid Json data" }

Согласно документации по API конечной точки платежей Xero, вам необходимо включить тело сообщения. В настоящее время в вашем вызове API его нет. Как только вы включите это, платеж должен быть удален:

for paymentID in payment_IDs:
            token = XeroOAuth2Token.objects.latest('id')
            delete_payment_endpoint = f'https://api.xero.com/api.xro/2.0/Payments/{paymentID}'

            headers_del_payments = {
                "Authorization":f"Bearer {token.access_token}",
                "Xero-Tenant-Id": TENANT_ID,
                "Accept": "application/json",
                "Content-Type": "application/json"
            }

            body = {
                "Status": "DELETED"
            }
        
            response = requests.post(delete_payment_endpoint, headers=headers_del_payments,json=body)
            return HttpResponse(response.text)
Вернуться на верх