決済済みにできたとのこと良かったです。
次に出たエラーについては、実際にRequestしたURLをログに出してpayments idを確認してみてください。
>「存在しないか既に削除された支払行です。」
というエラーで考えられるのは
- 指定したidが正しくなくて、存在しないと言われる
- 既に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内に存在しているかどうかで、そちらをログ出力してご確認してみてください。