Вам не нужно делать это:
var paymentInJson = JsonConvert.SerializeObject(paymentPost);
PostJsonAsync
просто берет обычный объект и сериализует его для JSON для вас. Здесь вы фактически дважды сериализуете его, и сервер, вероятно, смущен этим форматом.
Вы также делаете много других вещей, которые Flurl может сделать для вас, например, создание этих объектов Url и клиента. в явном виде. Хотя это и не вызывает ошибок, обычно используется Flurl:
var response = await selfCareUrl
.WithBasicAuth(...)
.WithHeader(...)
...
.PostJsonAsync(paymentPost)
.ReceiveJson<List<IF.Models.PaymentPost>>();