openapi: 3.0.3 info: title: GoodLeap Developer Authorization & Elevation Management Loan Change Orders API version: '2.0' description: 'The GoodLeap Developer API lets approved partners originate and manage sustainable home-improvement loans through their full lifecycle: authentication and elevation, offers and payment calculation, loan submission, status tracking, case/stipulation management, document upload, project and milestone management, change orders, notes, tags, and user management. Derived faithfully from the public GoodLeap Postman collection (paths, methods, parameters, and JWT bearer auth are as published); request/response schemas are intentionally minimal because the source collection does not publish full schemas.' x-derived-from: postman/good-leap-developer-api.postman_collection.json servers: - url: https://api.goodleap.com description: Production - url: https://sandbox01-api.goodleap.com description: Sandbox / test security: - bearerAuth: [] tags: - name: Loan Change Orders paths: /posfinancing/rest/v2/offers: get: operationId: availableLoanOffers summary: Available Loan Offers tags: - Loan Change Orders security: - bearerAuth: [] responses: '200': description: Successful response description: Returns a collection of Offers. parameters: - name: loanId in: query required: false schema: type: string - name: channels in: query required: false schema: type: string - name: channels in: query required: false schema: type: string - name: states in: query required: false schema: type: string - name: states in: query required: false schema: type: string - name: categoryId in: query required: false schema: type: string - name: promotionIds in: query required: false schema: type: string /posfinancing/rest/v2/loans/{id}/changeorders: post: operationId: createAChangeOrder summary: Create a Change Order tags: - Loan Change Orders security: - bearerAuth: [] responses: '200': description: Successful response description: 'Submit a change order to update the amount, offer, or enrollments on a loan. Note: Once a loan has been funded, Autopay enrollment can no longer be managed via API.' parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: type: object /posfinancing/rest/v2/loans/{id}/cancellations: post: operationId: cancelALoan summary: Cancel a Loan tags: - Loan Change Orders security: - bearerAuth: [] responses: '200': description: Successful response description: "Submit a cancellation for a given loan. \nIn order to successfully cancel the loan, it must not be in the following states:\n- Have a status of `DECLINED`, `CANCELLED`, or `FUNDED`\n- Reached the Notice To Proceed (NTP) milestone" parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: type: object components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: JWT obtained via POST /posfinancing/rest/v2/auth/token (organizationId), refreshed via /auth/token/refresh.