{
  "funding_sources": {
    "corelightningrest": {
      "wallet_class": "CoreLightningRestWallet",
      "settings": {
        "corelightning_rest_url": "http://127.0.0.1:8555",
        "corelightning_rest_macaroon": "eNcRyPtEdMaCaRoOn",
        "corelightning_rest_cert": false,
        "user_agent": "LNbits/Tests"
      }
    },
    "lndrest": {
      "wallet_class": "LndRestWallet",
      "settings": {
        "lnd_rest_endpoint": "http://127.0.0.1:8555",
        "lnd_rest_macaroon": "eNcRyPtEdMaCaRoOn",
        "lnd_rest_cert": "",
        "user_agent": "LNbits/Tests"
      }
    },
    "alby": {
      "wallet_class": "AlbyWallet",
      "settings": {
        "alby_api_endpoint": "http://127.0.0.1:8555",
        "alby_access_token": "mock-alby-access-token",
        "user_agent": "LNbits/Tests"
      }
    },
    "eclair": {
      "wallet_class": "EclairWallet",
      "settings": {
        "eclair_url": "http://127.0.0.1:8555",
        "eclair_pass": "secret",
        "user_agent": "LNbits/Tests"
      }
    },
    "lnbits": {
      "wallet_class": "LNbitsWallet",
      "settings": {
        "lnbits_endpoint": "http://127.0.0.1:8555",
        "lnbits_admin_key": "f171ba022a764e679eef950b21fb1c04",
        "user_agent": "LNbits/Tests"
      }
    },
    "phoenixd": {
      "wallet_class": "PhoenixdWallet",
      "settings": {
        "phoenixd_api_endpoint": "http://127.0.0.1:8555",
        "phoenixd_api_password": "f171ba022a764e679eef950b21fb1c04f171ba022a764e679eef950b21fb1c04",
        "user_agent": "LNbits/Tests"
      }
    }
  },
  "functions": {
    "status": {
      "mocks": {
        "corelightningrest": {
          "status_endpoint": {
            "uri": "/v1/channel/localremotebal",
            "headers": {
              "macaroon": "eNcRyPtEdMaCaRoOn",
              "encodingtype": "hex",
              "accept": "application/json",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "lndrest": {
          "status_endpoint": {
            "uri": "/v1/balance/channels",
            "headers": {
              "Grpc-Metadata-macaroon": "eNcRyPtEdMaCaRoOn",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "alby": {
          "status_endpoint": {
            "uri": "/balance",
            "headers": {
              "Authorization": "Bearer mock-alby-access-token",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "eclair": {
          "status_endpoint": {
            "uri": "/globalbalance",
            "headers": {
              "Authorization": "Basic OnNlY3JldA==",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lnbits": {
          "status_endpoint": {
            "uri": "/api/v1/wallet",
            "headers": {
              "X-Api-Key": "f171ba022a764e679eef950b21fb1c04",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "phoenixd": {
          "status_endpoint": {
            "uri": "/getinfo",
            "headers": {
              "Authorization": "Basic OmYxNzFiYTAyMmE3NjRlNjc5ZWVmOTUwYjIxZmIxYzA0ZjE3MWJhMDIyYTc2NGU2NzllZWY5NTBiMjFmYjFjMDQ=",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        }
      },
      "tests": [
        {
          "description": "success",
          "call_params": {},
          "expect": {
            "error_message": null,
            "balance_msat": 55000
          },
          "mocks": {
            "corelightningrest": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "localBalance": 55
                  }
                }
              ]
            },
            "lndrest": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "balance": 55
                  }
                }
              ]
            },
            "alby": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "balance": 55,
                    "unit": "sat"
                  }
                }
              ]
            },
            "eclair": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "total": 0.00000055
                  }
                }
              ]
            },
            "lnbits": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "balance": 55000
                  }
                }
              ]
            },
            "phoenixd": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "channels": [
                      {
                        "balanceSat": 55
                      }
                    ]
                  }
                }
              ]
            }
          }
        },
        {
          "description": "error",
          "call_params": {},
          "expect": {
            "error_message": "Server error: '\"test-error\"'",
            "balance_msat": 0
          },
          "mocks": {
            "corelightningrest": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "error": "\"test-error\""
                  }
                }
              ]
            },
            "lndrest": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": "test-error"
                }
              ]
            },
            "alby": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "message": "\"test-error\"",
                    "unit": "sats"
                  }
                }
              ]
            },
            "eclair": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "error": "\"test-error\""
                  }
                }
              ]
            },
            "lnbits": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": "test-error"
                }
              ]
            },
            "phoenixd": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": "test-error"
                }
              ]
            }
          }
        },
        {
          "description": "missing data",
          "call_params": {},
          "expect": {
            "error_message": "no data",
            "balance_msat": 0
          },
          "mocks": {
            "corelightningrest": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "lndrest": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "alby": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "eclair": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "lnbits": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "phoenixd": {
              "status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            }
          }
        },
        {
          "description": "bad json",
          "call_params": {},
          "expect": {
            "error_message": "Server error: 'invalid json response'",
            "balance_msat": 0
          },
          "mocks": {
            "corelightningrest": {
              "status_endpoint": [
                {
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "lndrest": {
              "status_endpoint": [
                {
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "alby": {
              "status_endpoint": [
                {
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "eclair": {
              "status_endpoint": [
                {
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "lnbits": {
              "status_endpoint": [
                {
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "phoenixd": {
              "status_endpoint": [
                {
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            }
          }
        },
        {
          "description": "http 404",
          "call_params": {},
          "expect": {
            "error_message": "Unable to connect to http://127.0.0.1:8555.",
            "balance_msat": 0
          },
          "mocks": {
            "corelightningrest": {
              "status_endpoint": [
                {
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lndrest": {
              "status_endpoint": [
                {
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "alby": {
              "status_endpoint": [
                {
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "eclair": {
              "status_endpoint": [
                {
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lnbits": {
              "status_endpoint": [
                {
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "phoenixd": {
              "status_endpoint": [
                {
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            }
          }
        },
        {
          "description": "no mocks",
          "call_params": {},
          "expect": {
            "error_message": "Unable to connect to http://127.0.0.1:8555.",
            "balance_msat": 0
          }
        }
      ]
    },
    "create_invoice": {
      "mocks": {
        "corelightningrest": {
          "create_invoice_endpoint": {
            "uri": "/v1/invoice/genInvoice",
            "headers": {
              "macaroon": "eNcRyPtEdMaCaRoOn",
              "encodingtype": "hex",
              "accept": "application/json",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lndrest": {
          "create_invoice_endpoint": {
            "uri": "/v1/invoices",
            "headers": {
              "Grpc-Metadata-macaroon": "eNcRyPtEdMaCaRoOn",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "alby": {
          "create_invoice_endpoint": {
            "uri": "/invoices",
            "headers": {
              "Authorization": "Bearer mock-alby-access-token",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "eclair": {
          "create_invoice_endpoint": {
            "uri": "/createinvoice",
            "headers": {
              "Authorization": "Basic OnNlY3JldA==",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lnbits": {
          "create_invoice_endpoint": {
            "uri": "/api/v1/payments",
            "headers": {
              "X-Api-Key": "f171ba022a764e679eef950b21fb1c04",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "phoenixd": {
          "create_invoice_endpoint": {
            "uri": "/createinvoice",
            "headers": {
              "Authorization": "Basic OmYxNzFiYTAyMmE3NjRlNjc5ZWVmOTUwYjIxZmIxYzA0ZjE3MWJhMDIyYTc2NGU2NzllZWY5NTBiMjFmYjFjMDQ=",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        }
      },
      "tests": [
        {
          "description": "success",
          "call_params": {
            "amount": 555,
            "memo": "Test Invoice",
            "label": "test-label"
          },
          "expect": {
            "error_message": null,
            "success": true,
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "payment_request": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
          },
          "mocks": {
            "corelightningrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "amount": 555000,
                    "description": "Test Invoice",
                    "label": "test-label"
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "bolt11": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            },
            "lndrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice",
                    "private": true
                  },
                  "response_type": "json",
                  "response": {
                    "r_hash": "41UmpD0E6YVZTA36uEiBT1JLHHhlmOyaY77dstcmrJY=",
                    "payment_request": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            },
            "alby": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice"
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "payment_request": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            },
            "eclair": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountMsat": 555000
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "serialized": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            },
            "lnbits": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": false,
                    "amount": 555000,
                    "memo": "Test Invoice"
                  },
                  "response_type": "json",
                  "response": {
                    "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "payment_request": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            },
            "phoenixd": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountSat": "555000",
                    "description": "Test Invoice",
                    "externalId": ""
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "serialized": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "error",
          "call_params": {
            "amount": 555,
            "memo": "Test Invoice",
            "label": "test-label"
          },
          "expect": {
            "error_message": "Server error: 'Test Error'",
            "success": false,
            "checking_id": null,
            "payment_request": null
          },
          "mocks": {
            "corelightningrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "amount": 555000,
                    "description": "Test Invoice",
                    "label": "test-label"
                  },
                  "response_type": "json",
                  "response": {
                    "error": "Test Error"
                  }
                }
              ]
            },
            "lndrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice",
                    "private": true
                  },
                  "response_type": "json",
                  "response": {
                    "error": "Test Error"
                  }
                }
              ]
            },
            "alby": {
              "create_invoice_endpoint": []
            },
            "eclair": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountMsat": 555000
                  },
                  "response_type": "json",
                  "response": {
                    "error": "Test Error"
                  }
                }
              ]
            },
            "lnbits": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": false,
                    "amount": 555000,
                    "memo": "Test Invoice"
                  },
                  "response_type": "json",
                  "response": {
                    "detail": "Test Error"
                  }
                }
              ]
            },
            "phoenixd": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountSat": "555000",
                    "description": "Test Invoice",
                    "externalId": ""
                  },
                  "response_type": "json",
                  "response": {
                    "message": "Test Error"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "missing data",
          "call_params": {
            "amount": 555,
            "memo": "Test Invoice",
            "label": "test-label"
          },
          "expect": {
            "error_message": "Server error: 'missing required fields'",
            "success": false,
            "checking_id": null,
            "payment_request": null
          },
          "mocks": {
            "corelightningrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "amount": 555000,
                    "description": "Test Invoice",
                    "label": "test-label"
                  },
                  "response_type": "json",
                  "response": {
                    "some_field": "but the required fields are mising"
                  }
                }
              ]
            },
            "lndrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice",
                    "private": true
                  },
                  "response_type": "json",
                  "response": {
                    "some_field": "but the required fields are mising"
                  }
                }
              ]
            },
            "alby": {
              "create_invoice_endpoint": [
                {
                  "description": "missing payment request",
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice"
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  }
                }
              ]
            },
            "eclair": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountMsat": 555000
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  }
                }
              ]
            },
            "lnbits": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": false,
                    "amount": 555000,
                    "memo": "Test Invoice"
                  },
                  "response_type": "json",
                  "response": {
                    "payment_request": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  }
                }
              ]
            },
            "phoenixd": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountSat": "555000",
                    "description": "Test Invoice",
                    "externalId": ""
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "bad json",
          "call_params": {
            "amount": 555,
            "memo": "Test Invoice",
            "label": "test-label"
          },
          "expect": {
            "success": false,
            "checking_id": null,
            "payment_request": null,
            "error_message": "Server error: 'invalid json response'"
          },
          "mocks": {
            "corelightningrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "amount": 555000,
                    "description": "Test Invoice",
                    "label": "test-label"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "lndrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice",
                    "private": true
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "alby": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "eclair": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountMsat": 555000
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "lnbits": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": false,
                    "amount": 555000,
                    "memo": "Test Invoice"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "phoenixd": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountSat": "555000",
                    "description": "Test Invoice",
                    "externalId": ""
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            }
          }
        },
        {
          "description": "http 404",
          "call_params": {
            "amount": 555,
            "memo": "Test Invoice",
            "label": "test-label"
          },
          "expect": {
            "success": false,
            "checking_id": null,
            "payment_request": null,
            "error_message": "Unable to connect to http://127.0.0.1:8555."
          },
          "mocks": {
            "corelightningrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "amount": 555000,
                    "description": "Test Invoice",
                    "label": "test-label"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lndrest": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice",
                    "private": true
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "alby": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "value": 555,
                    "memo": "Test Invoice"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "eclair": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountMsat": 555000
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lnbits": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": false,
                    "amount": 555000,
                    "memo": "Test Invoice"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "phoenixd": {
              "create_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "amountSat": "555000",
                    "description": "Test Invoice",
                    "externalId": ""
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            }
          }
        },
        {
          "description": "no mocks",
          "call_params": {
            "amount": 555,
            "memo": "Test Invoice",
            "label": "test-label"
          },
          "expect": {
            "success": false,
            "checking_id": null,
            "payment_request": null,
            "error_message": "Unable to connect to http://127.0.0.1:8555."
          }
        }
      ]
    },
    "pay_invoice": {
      "mocks": {
        "corelightningrest": {
          "pay_invoice_endpoint": {
            "uri": "/v1/pay",
            "headers": {
              "macaroon": "eNcRyPtEdMaCaRoOn",
              "encodingtype": "hex",
              "accept": "application/json",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lndrest": {
          "pay_invoice_endpoint": {
            "uri": "/v1/channels/transactions",
            "headers": {
              "Grpc-Metadata-macaroon": "eNcRyPtEdMaCaRoOn",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "alby": {
          "pay_invoice_endpoint": {
            "uri": "/payments/bolt11",
            "headers": {
              "Authorization": "Bearer mock-alby-access-token",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "eclair": {
          "pay_invoice_endpoint": {
            "uri": "/payinvoice",
            "headers": {
              "Authorization": "Basic OnNlY3JldA==",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          },
          "get_payment_status_endpoint": {
            "uri": "/getsentinfo",
            "headers": {
              "Authorization": "Basic OnNlY3JldA==",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lnbits": {
          "pay_invoice_endpoint": {
            "uri": "/api/v1/payments",
            "headers": {
              "X-Api-Key": "f171ba022a764e679eef950b21fb1c04",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          },
          "get_payment_status_endpoint": {
            "uri": "/api/v1/payments/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "X-Api-Key": "f171ba022a764e679eef950b21fb1c04",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "phoenixd": {
          "pay_invoice_endpoint": {
            "uri": "/payinvoice",
            "headers": {
              "Authorization": "Basic OmYxNzFiYTAyMmE3NjRlNjc5ZWVmOTUwYjIxZmIxYzA0ZjE3MWJhMDIyYTc2NGU2NzllZWY5NTBiMjFmYjFjMDQ=",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        }
      },
      "tests": [
        {
          "description": "success",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "error_message": null,
            "success": true,
            "pending": false,
            "failed": false,
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "fee_msat": 50,
            "preimage": "0000000000000000000000000000000000000000000000000000000000000000"
          },
          "mocks": {
            "corelightningrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "maxfeepercent": "119.04761905",
                    "exemptfee": 0
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "payment_preimage": "0000000000000000000000000000000000000000000000000000000000000000",
                    "msatoshi": 21000,
                    "msatoshi_sent": 21050,
                    "status": "paid"
                  }
                }
              ]
            },
            "lndrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "payment_request": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "fee_limit": 25000
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "41UmpD0E6YVZTA36uEiBT1JLHHhlmOyaY77dstcmrJY=",
                    "payment_route": {
                      "total_fees_msat": 50
                    },
                    "payment_preimage": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
                  }
                }
              ]
            },
            "alby": {
              "pay_invoice_endpoint": [
                {
                  "skip": true,
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "fee": 50,
                    "payment_preimage": "0000000000000000000000000000000000000000000000000000000000000000"
                  }
                }
              ]
            },
            "eclair": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "blocking": true,
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000",
                    "type": "mock"
                  }
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": [
                    {
                      "status": {
                        "type": "sent",
                        "feesPaid": -50,
                        "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000"
                      }
                    }
                  ]
                }
              ]
            },
            "lnbits": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": true,
                    "blt11": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "json",
                  "response": {
                    "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  }
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "paid": true,
                    "preimage": "0000000000000000000000000000000000000000000000000000000000000000",
                    "details": {
                      "fee": 50
                    }
                  }
                }
              ]
            },
            "phoenixd": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "routingFeeSat": -50,
                    "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "failed",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "success": false,
            "pending": false,
            "failed": true,
            "checking_id": null,
            "fee_msat": null,
            "preimage": null
          },
          "mocks": {
            "corelightningrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "maxfeepercent": "119.04761905",
                    "exemptfee": 0
                  },
                  "response_type": "json",
                  "response": {
                    "status": "failed"
                  }
                }
              ]
            },
            "lndrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "payment_request": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "fee_limit": 25000
                  },
                  "response_type": "json",
                  "response": {
                    "payment_error": "Test Error"
                  }
                }
              ]
            },
            "alby": {},
            "eclair": [],
            "lnbits": [],
            "phoenixd": []
          }
        },
        {
          "description": "pending, no fee",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "success": false,
            "pending": true,
            "failed": false,
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "fee_msat": null,
            "preimage": "0000000000000000000000000000000000000000000000000000000000000000"
          },
          "mocks": {
            "corelightningrest": {},
            "lndrest": {},
            "alby": {},
            "eclair": [
              {
                "pay_invoice_endpoint": [
                  {
                    "request_type": "json",
                    "request_body": {
                      "blocking": true,
                      "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                    },
                    "response_type": "json",
                    "response": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                      "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000",
                      "type": "mock"
                    }
                  }
                ],
                "get_payment_status_endpoint": [
                  {
                    "description": "get paid invoice: error",
                    "request_type": "json",
                    "request_body": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                    },
                    "response_type": "json",
                    "response": {
                      "error": "Test Error"
                    }
                  }
                ]
              },
              {
                "pay_invoice_endpoint": [
                  {
                    "request_type": "json",
                    "request_body": {
                      "blocking": true,
                      "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                    },
                    "response_type": "json",
                    "response": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                      "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000",
                      "type": "mock"
                    }
                  }
                ],
                "get_payment_status_endpoint": [
                  {
                    "description": "get paid invoice: no data",
                    "request_type": "json",
                    "request_body": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                    },
                    "response_type": "json",
                    "response": {}
                  }
                ]
              },
              {
                "pay_invoice_endpoint": [
                  {
                    "request_type": "json",
                    "request_body": {
                      "blocking": true,
                      "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                    },
                    "response_type": "json",
                    "response": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                      "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000",
                      "type": "mock"
                    }
                  }
                ],
                "get_payment_status_endpoint": [
                  {
                    "description": "get paid invoice: bad json",
                    "request_type": "json",
                    "request_body": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                    },
                    "response_type": "data",
                    "response": "data-not-json"
                  }
                ]
              },
              {
                "pay_invoice_endpoint": [
                  {
                    "request_type": "json",
                    "request_body": {
                      "blocking": true,
                      "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                    },
                    "response_type": "json",
                    "response": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                      "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000",
                      "type": "mock"
                    }
                  }
                ],
                "get_payment_status_endpoint": [
                  {
                    "description": "get paid invoice: pending status",
                    "request_type": "json",
                    "request_body": {
                      "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                    },
                    "response_type": "json",
                    "response": [
                      {
                        "status": {
                          "type": "pending"
                        }
                      }
                    ]
                  }
                ]
              }
            ],
            "lnbits": [],
            "phoenixd": []
          }
        },
        {
          "description": "error",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "success": false,
            "pending": true,
            "failed": false,
            "checking_id": null,
            "fee_msat": null,
            "preimage": null,
            "error_message": "Test Error"
          },
          "mocks": {
            "corelightningrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "maxfeepercent": "119.04761905",
                    "exemptfee": 0
                  },
                  "response_type": "json",
                  "response": {
                    "status": "pending",
                    "error": "Test Error"
                  }
                }
              ]
            },
            "lndrest": {
              "pay_invoice_endpoint": []
            },
            "alby": {
              "pay_invoice_endpoint": []
            },
            "eclair": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "blocking": true,
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "json",
                  "response": {
                    "error": "Test Error"
                  }
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": []
                }
              ]
            },
            "lnbits": {
              "pay_invoice_endpoint": []
            },
            "phoenixd": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "json",
                  "response": {
                    "message": "Test Error"
                  }
                },
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "json",
                  "response": {
                    "reason": "Test Error"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "missing data",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "error_message": "Server error: 'missing required fields'",
            "success": false,
            "pending": true,
            "failed": false,
            "checking_id": null,
            "fee_msat": null,
            "preimage": null
          },
          "mocks": {
            "corelightningrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "maxfeepercent": "119.04761905",
                    "exemptfee": 0
                  },
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "lndrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "payment_request": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "fee_limit": 25000
                  },
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "alby": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "eclair": {
              "pay_invoice_endpoint": [
                {
                  "description": "no data from pay invoice",
                  "request_type": "json",
                  "request_body": {
                    "blocking": true,
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "json",
                  "response": {}
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": []
                }
              ]
            },
            "lnbits": {},
            "phoenixd": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "json",
                  "response": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
                    "routingFeeSat": -50
                  }
                }
              ]
            }
          }
        },
        {
          "description": "bad json",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "error_message": "Server error: 'invalid json response'",
            "success": false,
            "pending": true,
            "failed": false,
            "checking_id": null,
            "fee_msat": null,
            "preimage": null
          },
          "mocks": {
            "corelightningrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "maxfeepercent": "119.04761905",
                    "exemptfee": 0
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "lndrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "payment_request": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "fee_limit": 25000
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "alby": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            },
            "eclair": {
              "pay_invoice_endpoint": [
                {
                  "description": "no data from pay invoice",
                  "request_type": "json",
                  "request_body": {
                    "blocking": true,
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": []
                }
              ]
            },
            "lnbits": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": true,
                    "blt11": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "paid": true,
                    "preimage": "0000000000000000000000000000000000000000000000000000000000000000",
                    "details": {
                      "fee": 50
                    }
                  }
                }
              ]
            },
            "phoenixd": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                }
              ]
            }
          }
        },
        {
          "description": "http 404",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "error_message": "Unable to connect to http://127.0.0.1:8555.",
            "success": false,
            "pending": true,
            "failed": false,
            "checking_id": null,
            "fee_msat": null,
            "preimage": null
          },
          "mocks": {
            "corelightningrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "data",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "maxfeepercent": "119.04761905",
                    "exemptfee": 0
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lndrest": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "payment_request": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
                    "fee_limit": 25000
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "alby": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "eclair": {
              "pay_invoice_endpoint": [
                {
                  "description": "no data from pay invoice",
                  "request_type": "json",
                  "request_body": {
                    "blocking": true,
                    "invoice": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": []
                }
              ]
            },
            "lnbits": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "out": true,
                    "blt11": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ],
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {}
                }
              ]
            },
            "phoenixd": {
              "pay_invoice_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "invoice": "lnbc5550n1pnq9jg3sp52rvwstvjcypjsaenzdh0h30jazvzsf8aaye0julprtth9kysxtuspp5e5s3z7felv4t9zrcc6wpn7ehvjl5yzewanzl5crljdl3jgeffyhqdq2f38xy6t5wvxqzjccqpjrzjq0yzeq76ney45hmjlnlpvu0nakzy2g35hqh0dujq8ujdpr2e42pf2rrs6vqpgcsqqqqqqqqqqqqqqeqqyg9qxpqysgqwftcx89k5pp28435pgxfl2vx3ksemzxccppw2j9yjn0ngr6ed7wj8ztc0d5kmt2mvzdlcgrludhz7jncd5l5l9w820hc4clpwhtqj3gq62g66n"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            }
          }
        },
        {
          "description": "no mocks",
          "call_params": {
            "bolt11": "lnbc210n1pjlgal5sp5xr3uwlfm7ltumdjyukhys0z2rw6grgm8me9k4w9vn05zt9svzzjspp5ud2jdfpaqn5c2k2vphatsjypfafyk8rcvkvwexnrhmwm94ex4jtqdqu24hxjapq23jhxapqf9h8vmmfvdjscqpjrzjqta942048v7qxh5x7pxwplhmtwfl0f25cq23jh87rhx7lgrwwvv86r90guqqnwgqqqqqqqqqqqqqqpsqyg9qxpqysgqylngsyg960lltngzy90e8n22v4j2hvjs4l4ttuy79qqefjv8q87q9ft7uhwdjakvnsgk44qyhalv6ust54x98whl3q635hkwgsyw8xgqjl7jwu",
            "fee_limit_msat": 25000
          },
          "expect": {
            "error_message": "Unable to connect to http://127.0.0.1:8555.",
            "success": false,
            "pending": true,
            "failed": false,
            "checking_id": null,
            "fee_msat": null,
            "preimage": null
          }
        }
      ]
    },
    "get_invoice_status": {
      "mocks": {
        "corelightningrest": {
          "get_invoice_status_endpoint": {
            "uri": "/v1/invoice/listInvoices",
            "query_params": {
              "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
            },
            "headers": {
              "macaroon": "eNcRyPtEdMaCaRoOn",
              "encodingtype": "hex",
              "accept": "application/json",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "lndrest": {
          "get_invoice_status_endpoint": {
            "uri": "/v1/invoice/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "Grpc-Metadata-macaroon": "eNcRyPtEdMaCaRoOn",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "alby": {
          "get_invoice_status_endpoint": {
            "uri": "/invoices/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "Authorization": "Bearer mock-alby-access-token",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "eclair": {
          "get_invoice_status_endpoint": {
            "uri": "/getreceivedinfo",
            "headers": {
              "Authorization": "Basic OnNlY3JldA==",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lnbits": {
          "get_invoice_status_endpoint": {
            "uri": "/api/v1/payments/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "X-Api-Key": "f171ba022a764e679eef950b21fb1c04",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "phoenixd": {
          "get_invoice_status_endpoint": {
            "uri": "/payments/incoming/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "Authorization": "Basic OmYxNzFiYTAyMmE3NjRlNjc5ZWVmOTUwYjIxZmIxYzA0ZjE3MWJhMDIyYTc2NGU2NzllZWY5NTBiMjFmYjFjMDQ=",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        }
      },
      "tests": [
        {
          "description": "paid",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "success": true,
            "failed": false,
            "pending": false
          },
          "mocks": {
            "corelightningrest": {
              "get_invoice_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "invoices": [
                      {
                        "status": "paid"
                      }
                    ]
                  }
                },
                {
                  "response_type": "json",
                  "response": {
                    "invoices": [
                      {
                        "status": "complete"
                      }
                    ]
                  }
                }
              ]
            },
            "lndrest": {
              "get_invoice_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "settled": true
                  }
                }
              ]
            },
            "alby": {
              "get_invoice_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "state": "SETTLED"
                  }
                }
              ]
            },
            "eclair": {
              "get_invoice_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": {
                    "status": {
                      "type": "received"
                    }
                  }
                }
              ]
            },
            "lnbits": {
              "get_invoice_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "paid": true
                  }
                }
              ]
            },
            "phoenixd": {
              "get_invoice_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "isPaid": true,
                    "fees": 50,
                    "preimage": "0000000000000000000000000000000000000000000000000000000000000000"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "failed",
          "description1": "pending should be false in the 'expect', this is a bug",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "success": false,
            "failed": true,
            "pending": true
          },
          "mocks": {
            "corelightningrest": {
              "get_invoice_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "invoices": [
                      {
                        "status": "failed"
                      }
                    ]
                  }
                }
              ]
            },
            "lndrest": {
              "description": "lndrest.py doesn't handle the 'failed' status for `get_invoice_status`",
              "get_invoice_status_endpoint": []
            },
            "alby": {
              "description": "alby.py doesn't handle the 'failed' status for `get_invoice_status`",
              "get_invoice_status_endpoint": []
            },
            "eclair": {
              "get_invoice_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": {
                    "status": {
                      "type": "expired"
                    }
                  }
                }
              ]
            },
            "lnbits": {
              "description": "lnbits.py doesn't handle the 'failed' status for `get_invoice_status`",
              "get_invoice_status_endpoint": []
            },
            "phoenixd": {
              "description": "phoenixd.py doesn't handle the 'failed' status for `get_invoice_status`",
              "get_invoice_status_endpoint": []
            }
          }
        },
        {
          "description": "pending",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "success": false,
            "failed": false,
            "pending": true
          },
          "mocks": {
            "corelightningrest": {
              "get_invoice_status_endpoint": [
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "error status",
                  "response_type": "json",
                  "response": {
                    "error": "test-error"
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lndrest": {
              "get_invoice_status_endpoint": [
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "error status",
                  "response_type": "json",
                  "response": {
                    "seetled": false
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "alby": {
              "get_invoice_status_endpoint": [
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "error status",
                  "response_type": "json",
                  "response": {
                    "status": "CREATED"
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "eclair": {
              "get_invoice_status_endpoint": [
                {
                  "description": "no data",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "pending status",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": {
                    "status": {
                      "type": "pending"
                    }
                  }
                },
                {
                  "description": "bad json",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lnbits": {
              "get_invoice_status_endpoint": [
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "pending true",
                  "response_type": "json",
                  "response": {
                    "paid": false,
                    "details": {
                      "pending": true
                    }
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "phoenixd": {
              "get_invoice_status_endpoint": [
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "not paid",
                  "response_type": "json",
                  "response": {
                    "isPaid": false
                  }
                },
                {
                  "description": "paid and missing data",
                  "response_type": "json",
                  "response": {
                    "isPaid": true
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            }
          }
        },
        {
          "description": "no mocks",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "success": false,
            "failed": false,
            "pending": true
          }
        }
      ]
    },
    "get_payment_status": {
      "mocks": {
        "corelightningrest": {
          "get_payment_status_endpoint": {
            "uri": "/v1/pay/listPays",
            "query_params": {
              "payment_hash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
            },
            "headers": {
              "macaroon": "eNcRyPtEdMaCaRoOn",
              "encodingtype": "hex",
              "accept": "application/json",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "lndrest": {
          "get_payment_status_endpoint": {
            "uri": "/v2/router/track/41UmpD0E6YVZTA36uEiBT1JLHHhlmOyaY77dstcmrJY=",
            "headers": {
              "Grpc-Metadata-macaroon": "eNcRyPtEdMaCaRoOn",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "alby": {
          "get_payment_status_endpoint": {
            "uri": "/invoices/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "Authorization": "Bearer mock-alby-access-token",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "eclair": {
          "get_payment_status_endpoint": {
            "uri": "/getsentinfo",
            "headers": {
              "Authorization": "Basic OnNlY3JldA==",
              "User-Agent": "LNbits/Tests"
            },
            "method": "POST"
          }
        },
        "lnbits": {
          "get_payment_status_endpoint": {
            "uri": "/api/v1/payments/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "X-Api-Key": "f171ba022a764e679eef950b21fb1c04",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        },
        "phoenixd": {
          "get_payment_status_endpoint": {
            "uri": "/payments/outgoing/e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96",
            "headers": {
              "Authorization": "Basic OmYxNzFiYTAyMmE3NjRlNjc5ZWVmOTUwYjIxZmIxYzA0ZjE3MWJhMDIyYTc2NGU2NzllZWY5NTBiMjFmYjFjMDQ=",
              "User-Agent": "LNbits/Tests"
            },
            "method": "GET"
          }
        }
      },
      "tests": [
        {
          "description": "paid",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "fee_msat": 1000,
            "preimage": "0000000000000000000000000000000000000000000000000000000000000000",
            "success": true,
            "failed": false,
            "pending": false
          },
          "mocks": {
            "corelightningrest": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "pays": [
                      {
                        "status": "complete",
                        "amount_msat": "21000msat",
                        "amount_sent_msat": "-22000msat",
                        "preimage": "0000000000000000000000000000000000000000000000000000000000000000"
                      }
                    ]
                  }
                }
              ]
            },
            "lndrest": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "stream",
                  "response": {
                    "result": {
                      "status": "SUCCEEDED",
                      "fee_msat": 1000,
                      "payment_preimage": "0000000000000000000000000000000000000000000000000000000000000000"
                    }
                  }
                }
              ]
            },
            "alby": {
              "get_payment_status_endpoint": [
                {
                  "skip": true,
                  "response_type": "json",
                  "response": {
                    "result": {
                      "status": "SETTLED"
                    }
                  }
                }
              ]
            },
            "eclair": {
              "get_payment_status_endpoint": [
                {
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": [
                    {
                      "status": {
                        "type": "sent",
                        "feesPaid": -1000,
                        "paymentPreimage": "0000000000000000000000000000000000000000000000000000000000000000"
                      }
                    }
                  ]
                }
              ]
            },
            "lnbits": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "paid": true,
                    "preimage": "0000000000000000000000000000000000000000000000000000000000000000",
                    "details": {
                      "fee": 1000
                    }
                  }
                }
              ]
            },
            "phoenixd": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "isPaid": true,
                    "fees": 1000,
                    "preimage": "0000000000000000000000000000000000000000000000000000000000000000"
                  }
                }
              ]
            }
          }
        },
        {
          "description": "failed",
          "description1": "pending should be false in the 'expect', this is a bug",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "preimage": null,
            "success": false,
            "failed": true,
            "pending": true
          },
          "mocks": {
            "corelightningrest": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "pays": [
                      {
                        "status": "failed"
                      }
                    ]
                  }
                }
              ]
            },
            "lndrest": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "stream",
                  "response": {
                    "result": {
                      "status": "FAILED"
                    }
                  }
                },
                {
                  "description": "error code 5",
                  "response_type": "stream",
                  "response": {
                    "error": {
                      "code": 5,
                      "message": "payment isn't initiated"
                    }
                  }
                }
              ]
            },
            "alby": {
              "get_payment_status_endpoint": []
            },
            "eclair": {
              "get_payment_status_endpoint": [
                {
                  "description": "failed status",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": [
                    {
                      "status": {
                        "type": "failed"
                      }
                    }
                  ]
                }
              ]
            },
            "lnbits": {
              "get_payment_status_endpoint": [
                {
                  "response_type": "json",
                  "response": {
                    "paid": false,
                    "status": "failed",
                    "preimage": "0000000000000000000000000000000000000000000000000000000000000000",
                    "details": {}
                  }
                }
              ]
            },
            "phoenixd": {
              "description": "phoenixd.py doesn't handle the 'failed' status for `get_invoice_status`",
              "get_payment_status_endpoint": []
            }
          }
        },
        {
          "description": "pending",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "preimage": null,
            "success": false,
            "failed": false,
            "pending": true
          },
          "mocks": {
            "corelightningrest": {
              "get_payment_status_endpoint": [
                {
                  "description": "pending status",
                  "response_type": "json",
                  "response": {
                    "pays": [
                      {
                        "status": "pending"
                      }
                    ]
                  }
                },
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "error status",
                  "response_type": "json",
                  "response": {
                    "error": "test-error"
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lndrest": {
              "get_payment_status_endpoint": [
                {
                  "description": "UNKNOWN",
                  "response_type": "stream",
                  "response": {
                    "result": {
                      "status": "UNKNOWN"
                    }
                  }
                },
                {
                  "description": "IN_FLIGHT",
                  "response_type": "stream",
                  "response": {
                    "result": {
                      "status": "IN_FLIGHT"
                    }
                  }
                },
                {
                  "description": "error code 4",
                  "response_type": "stream",
                  "response": {
                    "error": {
                      "code": 5,
                      "message": "should not fail"
                    }
                  }
                },
                {
                  "description": "no data",
                  "response_type": "stream",
                  "response": {}
                },
                {
                  "description": "bad json",
                  "response_type": "stream",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "alby": {
              "get_payment_status_endpoint": [
                {
                  "description": "CREATED",
                  "response_type": "stream",
                  "response": {
                    "state": "CREATED"
                  }
                },
                {
                  "description": "no data",
                  "response_type": "stream",
                  "response": {}
                },
                {
                  "description": "bad json",
                  "response_type": "stream",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "eclair": {
              "get_payment_status_endpoint": [
                {
                  "description": "no data",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": []
                },
                {
                  "description": "pending status",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "json",
                  "response": [
                    {
                      "status": {
                        "type": "pending"
                      }
                    }
                  ]
                },
                {
                  "description": "bad json",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "request_type": "json",
                  "request_body": {
                    "paymentHash": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
                  },
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "lnbits": {
              "get_payment_status_endpoint": [
                {
                  "description": "pending true",
                  "response_type": "json",
                  "response": {
                    "paid": false,
                    "details": {
                      "pending": true
                    }
                  }
                },
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "missing 'paid' field",
                  "response_type": "json",
                  "response": {
                    "details": {
                      "pending": true
                    }
                  }
                },
                {
                  "description": "missing 'details' field",
                  "response_type": "json",
                  "response": {
                    "paid": true
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            },
            "phoenixd": {
              "get_payment_status_endpoint": [
                {
                  "description": "no data",
                  "response_type": "json",
                  "response": {}
                },
                {
                  "description": "not paid",
                  "response_type": "json",
                  "response": {
                    "isPaid": false
                  }
                },
                {
                  "description": "paid and missing data",
                  "response_type": "json",
                  "response": {
                    "isPaid": true
                  }
                },
                {
                  "description": "bad json",
                  "response_type": "data",
                  "response": "data-not-json"
                },
                {
                  "description": "http 404",
                  "response_type": "response",
                  "response": {
                    "response": "Not Found",
                    "status": 404
                  }
                }
              ]
            }
          }
        },
        {
          "description": "no mocks",
          "call_params": {
            "checking_id": "e35526a43d04e985594c0dfab848814f524b1c786598ec9a63beddb2d726ac96"
          },
          "expect": {
            "preimage": null,
            "success": false,
            "failed": false,
            "pending": true
          }
        }
      ]
    }
  }
}
