Skip to main content
POST
/
guarantees
Create a guarantee
curl --request POST \
  --url https://sandbox-api.anzi.finance/v1/guarantees \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "loanAmount": 50000,
  "principalName": "Empresa XYZ SAS",
  "disbursementDate": "2025-09-05",
  "paymentTerm": "2025-12-05",
  "externalReference": "CR-000001-XYZ",
  "premiumPercentage": 3.5,
  "promissoryNoteId": "PN-0001-XYZ",
  "borrowerNationalId": "1234567890",
  "borrowerIdType": "CC"
}
'
{
"uid": "d2e3f4a5-b6c7-8d9e-0f1a-2b3c4d5e6f7a",
"tokenId": 987654321,
"coverage": 25000,
"disbursementDate": "2025-09-05T00:00:00.000Z",
"dueDate": "2026-12-04T23:59:59.999Z",
"status": 2,
"premiumStatus": 0,
"premium": 1750,
"principalName": "Empresa XYZ SAS",
"loanPaymentDueDate": "2025-12-05T23:59:59.999Z",
"loanAmount": 50000,
"type": 0,
"premiumPercentage": 3.5,
"coveragePercentage": 50,
"externalReference": "CR-000001-XYZ",
"isNovation": false,
"promissoryNoteId": "PN-0001-XYZ"
}

Authorizations

X-API-KEY
string
header
required

Query Parameters

license
string
required

License UID

Body

application/json
loanAmount
number
required

Loan amount. Must be within the license allowed range.

premiumPercentage
number | null
required

This field is REQUIRED ONLY IF license.isVariablePremium and license.isPremiumDefinedByClient are set to true. In this case, the premium must be defined by you as a percentage, and it must fall within the range specified by license.minimumPremium and license.maximumPremium.

principalName
string
required

Principal/borrower name.

paymentTerm
string<date>
required

Loan due date (YYYY-MM-DD). Must be within the license min/max terms.

externalReference
string
required

Unique credit reference in your system. Must be unique per license.

disbursementDate
string<date>
required

Disbursement date (YYYY-MM-DD). Defaults to current date in license timezone and is validated against allowed windows.

borrowerNationalId
string
required

Borrower national ID.

borrowerIdType
enum<string>
required

National ID document type (LATAM).

  • CC: Cédula de Ciudadanía (Colombia)
  • NIT: Número de Identificación Tributaria (Colombia)
  • PA: Pasaporte (Passport)
  • CDE: Cédula de Extranjería (Colombia)
  • DNI: Documento Nacional de Identidad (AR/PE/others)
  • RUT: Rol Único Tributario (Chile)
  • RFC: Registro Federal de Contribuyentes (Mexico)
  • CE: Cédula de Extranjería (alt. code)
Available options:
CC,
NIT,
PA,
CDE,
DNI,
RUT,
RFC,
CE
promissoryNoteId
string
required

Promissory note identifier. Must be unique per license.

loanPaymentConfig
enum<integer> | null

Loan payment configuration. 0 = ONE_PAYMENT, 1 = INSTALLMENTS.

Available options:
0,
1
frequency
enum<integer> | null

Installment frequency when loanPaymentConfig = INSTALLMENTS. 0 = WEEKLY, 1 = MONTHLY.

Available options:
0,
1
interestRate
number

Credit interest rate.

borrowerEmail
string<email> | null

Borrower email (optional).

borrowerPhone
string | null

Borrower phone (optional).

borrowerAddress
string | null

Borrower address (optional).

borrowerCiiu
string | null

Borrower CIIU code (optional).

Response

Guarantee created

Response shape returned right after creating a guarantee

uid
string

Unique identifier of the guarantee.

tokenId
number

Numeric identifier assigned to the guarantee token.

coverage
number

Maximum amount payable if the linked loan defaults. For guarantees created under FIRST LOSS licenses (license.type = FIRST_LOSS), coverage depends exclusively on the amount the user has in their own reserve fund (wallet).

disbursementDate
string<date-time>

Date and time when the credit was disbursed.

dueDate
string<date-time>

Guarantee due date.

status
enum<integer>

0=PENDING_ACTIVATION, 1=VALIDATING_PREMIUM_PAYMENT, 2=COVERING, 3=PENDING_CLAIM, 4=CLAIM_APPROVED, 5=PAYING_GUARANTEE, 6=CLOSED, 7=CLAIM_REJECTED, 8=CANCELLED, 9=NOVATED

Available options:
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
creditStatus
enum<integer>

0=CURRENT, 1=DELINQUENT, 2=CLAIM_GUARANTEE, 3=NOVATED, 4=PAID. For new guarantees the initial status is always CURRENT=0.

Available options:
0,
1,
2,
3,
4
premiumStatus
enum<integer>

0=PENDING, 1=PROCESSING, 2=PAID

Available options:
0,
1,
2
premium
number

Premium amount charged for the guarantee (monetary value).

principalName
string

Borrower or principal name associated with the credit.

loanPaymentDueDate
string<date-time>

Date and time when the loan payment is/was due.

interestRate
number | null

Credit interest rate used by the client.

loanAmount
number

Original loan principal amount.

type
enum<integer>

0 = SURETY, 1 = FIRST_LOSS

Available options:
0,
1
premiumPercentage
number

Percentage applied to the loan amount to compute the premium.

coveragePercentage
number

Percentage of the principal amount that is covered by the guarantee. For guarantees created under FIRST LOSS licenses (license.type = FIRST_LOSS), coverage depends exclusively on the amount the user has in their own reserve fund (wallet).

externalReference
string

Unique credit reference in your system.

isNovation
boolean

Indicates if this guarantee results from a novation of a prior guarantee.

promissoryNoteId
string

Promissory note identifier.