This page is generated from the contract (data/gateway-v1.json): each operation shows its verb, path, parameters, body, responses, whether it carries an Idempotency-Key, and the equivalent method in all five SDKs. For the end-to-end flow with complete examples, see the implementation guide.

Operations in tag loans #

Contract description: Loan portfolio: the affiliate’s already-disbursed loans (balance, next installment, arrears), payment plan and installment breakdown, collections reported by the entity (counter, payroll deduction/libranza, bank file), extra payment, full payoff and debt certificate / paid-in-full certificate (paz y salvo). The affiliate is identified by document; loan_id accepts the loan’s UUID or number.

MethodPathOperationScopeIdem.
GET/v1/gateway/loans/Affiliate's loansloans:read—
GET/v1/gateway/loans/{loan_id}/Loan detailloans:read—
GET/v1/gateway/loans/{loan_id}/certificate/Debt certificate / paid-in-full certificate (paz y salvo)loans:read—
POST/v1/gateway/loans/{loan_id}/extra-payment/Register a principal prepaymentloans:collectrecommended
GET/v1/gateway/loans/{loan_id}/extra-payment/quote/Simulate an extra paymentloans:read—
GET/v1/gateway/loans/{loan_id}/installments/Payment planloans:read—
GET/v1/gateway/loans/{loan_id}/installments/{number}/Installment detailloans:read—
GET/v1/gateway/loans/{loan_id}/installments/{number}/breakdown/Installment breakdown (how a payment would be applied)loans:read—
GET/v1/gateway/loans/{loan_id}/payments/Payment historyloans:read—
POST/v1/gateway/loans/{loan_id}/payments/Register a payment received by the entityloans:collectrecommended
POST/v1/gateway/loans/{loan_id}/payoff/Register an early full payoffloans:collectrecommended
GET/v1/gateway/loans/{loan_id}/payoff/quote/Quote today's full payoffloans:read—

Affiliate's loans #

GET/v1/gateway/loans/

  • operationId listLoans
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
document requiredquerystringAffiliate document. E.g.: 1032456789
statusquerystringACTIVE (live loan portfolio) or a specific status (PAID_OFF, IN_ARREARS…).

Responses

CodeDescriptionBody
200Loans with balance, next installment and arrears.LoanList application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.list()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Loan detail #

GET/v1/gateway/loans/{loan_id}/

  • operationId getLoan
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789

Responses

CodeDescriptionBody
200Summary + today’s full payoff + paid-in-full (paz y salvo) status.LoanSummary application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.get()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Debt certificate / paid-in-full certificate (paz y salvo) #

GET/v1/gateway/loans/{loan_id}/certificate/

  • operationId getLoanCertificate
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789
as_ofquerystringCut-off date YYYY-MM-DD (today by default).
pdfquerybooleantrue → generates the PDF and returns a signed pdf_url.

Responses

CodeDescriptionBody
200Balance as of the date and paid-in-full (paz y salvo) status.LoanCertificate application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.certificate()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Register a principal prepayment #

POST/v1/gateway/loans/{loan_id}/extra-payment/

  • operationId registerLoanExtraPayment
  • Authentication X-API-Key · scope loans:collect
  • Idempotency-Key recommended (the SDK generates it)
Covers overdue installments first; the rest goes to principal (no future interest is charged).

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
Idempotency-KeyheaderstringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. E.g.: horizonte-2026-06-26-credit-000123

Request body

Content type: application/json · required

Schema LoanCollectionIn — Collection reported by the entity. The reference is the receipt’s natural key (loan + channel + reference): resending it returns the same receipt; with a different amount → 409.

FieldTypeDescription
amountstring | numberAmount in COP. Optional for payoff. E.g.: "195000"
channelstringValues: CASH, ACH_LIBRANZA, BANK_FILE, MANUAL. E.g.: "CASH"
documentstringOptional: if sent, the loan must belong to that affiliate. E.g.: "1032456789"
installment_numberintegerPayments only: installment to pay first.
modestringExtra-payment only. Values: reduce_term, reduce_installment.
reference requiredstringE.g.: "REC-2026-001" Max. 100 characters.
value_datestring (date)Value date (not in the future).

Accepts additional fields (additionalProperties): they're forwarded to the engine unchanged.

Responses

CodeDescriptionBody
200Collection applied (or a resend of the same reference).TransactionEnvelope application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.register_extra_payment()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Simulate an extra payment #

GET/v1/gateway/loans/{loan_id}/extra-payment/quote/

  • operationId quoteLoanExtraPayment
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789
amount requiredquerystringPrepayment amount (COP).

Responses

CodeDescriptionBody
200Prepayment allocation and scenarios (shorten the term / lower the installment).LoanQuote application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.quote_extra_payment()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Payment plan #

GET/v1/gateway/loans/{loan_id}/installments/

  • operationId listLoanInstallments
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789
statusquerystringPENDING | PARTIAL | OVERDUE | PAID

Responses

CodeDescriptionBody
200Installments of the plan’s active version.LoanInstallmentList application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.installments()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Installment detail #

GET/v1/gateway/loans/{loan_id}/installments/{number}/

  • operationId getLoanInstallment
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
number requiredpathintegerInstallment number. E.g.: 4
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789

Responses

CodeDescriptionBody
200Installment with its components and the outstanding amount.LoanInstallment application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.get_installment()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Installment breakdown (how a payment would be applied) #

GET/v1/gateway/loans/{loan_id}/installments/{number}/breakdown/

  • operationId getLoanInstallmentBreakdown
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
number requiredpathintegerInstallment number. E.g.: 4
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789
amountquerystringAmount to simulate; without it, the installment’s outstanding amount.

Responses

CodeDescriptionBody
200Allocation order applied to the amount.LoanQuote application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.installment_breakdown()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Payment history #

GET/v1/gateway/loans/{loan_id}/payments/

  • operationId listLoanPayments
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789

Responses

CodeDescriptionBody
200Loan receipts.LoanQuote application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.payments()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Register a payment received by the entity #

POST/v1/gateway/loans/{loan_id}/payments/

  • operationId registerLoanPayment
  • Authentication X-API-Key · scope loans:collect
  • Idempotency-Key recommended (the SDK generates it)
Applies the payment following the legal allocation order (VAT → collection fees → insurance → late interest → interest → principal), installment by installment. Idempotent by reference (and by Idempotency-Key at the edge). Emits payment.received and payment.applied (and loan.paid_off if it pays off the loan).

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
Idempotency-KeyheaderstringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. E.g.: horizonte-2026-06-26-credit-000123

Request body

Content type: application/json · required

Schema LoanCollectionIn — Collection reported by the entity. The reference is the receipt’s natural key (loan + channel + reference): resending it returns the same receipt; with a different amount → 409.

FieldTypeDescription
amountstring | numberAmount in COP. Optional for payoff. E.g.: "195000"
channelstringValues: CASH, ACH_LIBRANZA, BANK_FILE, MANUAL. E.g.: "CASH"
documentstringOptional: if sent, the loan must belong to that affiliate. E.g.: "1032456789"
installment_numberintegerPayments only: installment to pay first.
modestringExtra-payment only. Values: reduce_term, reduce_installment.
reference requiredstringE.g.: "REC-2026-001" Max. 100 characters.
value_datestring (date)Value date (not in the future).

Accepts additional fields (additionalProperties): they're forwarded to the engine unchanged.

Responses

CodeDescriptionBody
200Collection applied (or a resend of the same reference).TransactionEnvelope application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.register_payment()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Register an early full payoff #

POST/v1/gateway/loans/{loan_id}/payoff/

  • operationId registerLoanPayoff
  • Authentication X-API-Key · scope loans:collect
  • Idempotency-Key recommended (the SDK generates it)
Pays off the loan. If amount is sent, it must match payoff/quote (otherwise 422).

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
Idempotency-KeyheaderstringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. E.g.: horizonte-2026-06-26-credit-000123

Request body

Content type: application/json · required

Schema LoanCollectionIn — Collection reported by the entity. The reference is the receipt’s natural key (loan + channel + reference): resending it returns the same receipt; with a different amount → 409.

FieldTypeDescription
amountstring | numberAmount in COP. Optional for payoff. E.g.: "195000"
channelstringValues: CASH, ACH_LIBRANZA, BANK_FILE, MANUAL. E.g.: "CASH"
documentstringOptional: if sent, the loan must belong to that affiliate. E.g.: "1032456789"
installment_numberintegerPayments only: installment to pay first.
modestringExtra-payment only. Values: reduce_term, reduce_installment.
reference requiredstringE.g.: "REC-2026-001" Max. 100 characters.
value_datestring (date)Value date (not in the future).

Accepts additional fields (additionalProperties): they're forwarded to the engine unchanged.

Responses

CodeDescriptionBody
200Collection applied (or a resend of the same reference).TransactionEnvelope application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.register_payoff()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Quote today's full payoff #

GET/v1/gateway/loans/{loan_id}/payoff/quote/

  • operationId quoteLoanPayoff
  • Authentication X-API-Key · scope loans:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
loan_id requiredpathstringLoan UUID or its number (loan_number). E.g.: 3f1c2e7a-4b8d-4e6f-a1c0-d2e3f4a5b6c7
documentquerystringAffiliate document. Optional: if sent, the loan must belong to that affiliate. E.g.: 1032456789

Responses

CodeDescriptionBody
200Exact amount that payoff charges today.LoanQuote application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.loans.quote_payoff()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.