アバターoassith

決済済みにできたとのこと良かったです。

次に出たエラーについては、実際にRequestしたURLをログに出してpayments idを確認してみてください。

>「存在しないか既に削除された支払行です。」

というエラーで考えられるのは

  1. 指定したidが正しくなくて、存在しないと言われる
  2. 既にunsettledにした削除済みのpayments idをどこかで保持していてそれが渡されている

のどちらかだと思われます。

指定するidの認識は間違っていないと思います。

> 取引IDはdeals配下のid、決済IDはdeals配下のpayments配下のidを使用

こちらの手元でもそれらのidでsettledからunsettledに戻せました。

手元で試した手順を以下に記載しておきますので、ご参考になれば幸いです。

A. 特定の決済登録済み取引をGETで取得する Request URL
https://api.freee.co.jp/api/1/deals/1111?company_id=2222

Response bodyは要点だけ抜き出すとこのように返って来ます。
“deal”: {
  “payments”: [
    {
      “id”: 3333
    }
  ],
  “id”: 1111,
  “status”: “settled”
  }
}

B. deals idとpayments idを指定してDELETEで削除する Request URL
https://api.freee.co.jp/api/1/deals/1111/payments/3333?company_id=2222

Response bodyは何も返って来ません。
再度Aで同じ取引を取得すると、paymentsは消えてstatusがunsettledに戻りました。

確認する点として考えられるのは、BのRequest URLで指定しているpayments idが、指定したdeals内に存在しているかどうかで、そちらをログ出力してご確認してみてください。