# Retrieve a loan Returns the complete loan object with all lifecycle details. Important fields vary by status: signing_url is populated when awaiting_signatures, ccb_number when contract_generated, and net_amount after disbursement. Use together with loan.* webhooks to keep your system synchronized. Endpoint: GET /loans/{loan_id} Version: 2026-03-01 Security: bearerAuth ## Path parameters: - `loan_id` (string, required) Example: "ln_550e8400e29b41d4a716446655440000" ## Response 200 fields (application/json): - `id` (string, required) - `credit_offer_id` (string, required) - `simulation_id` (string, required) - `customer_id` (string, required) - `status` (string, required) Enum: "processing", "contract_generated", "awaiting_signatures", "signed", "disbursing", "active", "finished", "cancelled", "error" - `requested_amount` (string, required) Decimal encoded as a string with exactly 2 decimal places (BRL). - `net_amount` (string,null, required) Net amount after fees. Null until calculated. - `iof` (string,null, required) - `service_fee` (string,null, required) - `interest_rate` (number,null, required) Monthly interest rate (percentage) - `cet` (number,null, required) Total effective cost (annual percentage) - `total_amount` (string, required) Decimal encoded as a string with exactly 2 decimal places (BRL). - `installments_value` (string, required) Amount per installment Example: "2291.67" - `first_due_date` (string, required) Due date of the first installment Example: "2026-04-03" - `number_of_installments` (integer, required) - `ccb_number` (string,null, required) CCB contract number. Null until the contract is generated. - `disbursement_method` (string,null, required) Disbursement method (e.g., pix). Null until disbursement. - `signing_url` (string,null, required) ClickSign widget URL. Present only during contract_generated and awaiting_signatures. - `created_at` (string, required) - `updated_at` (string, required) ## Response 401 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 404 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 429 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 500 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string)