Create a lending program

POST/api/v1/credit/programs

Stand up a partner lending program. The program carries the parameter envelope, the policy positions, statement branding, and the card-issuing configuration, so onboarding a second partner is a row rather than a build.

Operation ID: create_program·View as markdown·OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Request body

slugstringrequired

Stable partner key, e.g. "tie".

display_namestringrequired
statusProgramStatusEnumProgramStatusEnum
lending_modelLendingModelLendingModel

per_transaction: one loan per card transaction with its own term, due date, fee, and daily accrual after the due date (FRD v2 D-01). cycle_draw: one draw per monthly cycle (FRD v1).

limit_min_centsinteger
limit_max_centsinteger
allowed_term_daysarray · integer

Selectable payback terms. Defaults to [30, 45, 60, 90] (D-03).

default_rate_bpsinteger

Annual rate. 2000 = 20% APR (D-05).

default_disbursement_fee_bpsinteger

Fee assessed once at origination on each transaction, in basis points. 0-500 (0%-5%) per FRD v2 D-04.

max_float_daysinteger
allocation_orderAllocationOrderAllocationOrder

Bucket order a payment fills within one loan (D-10).

loan_orderingLoanOrderingLoanOrdering

Which open loan a payment reaches first (D-11).

interest_accrual_startInterestAccrualStartInterestAccrualStart

Daily accrual starts at the loan's due date (D-07) or at origination.

minimum_payment_centsinteger

Minimum per-loan payment; the outstanding amount when smaller (D-09).

due_soon_daysinteger

Days ahead the due-soon event fires (D-24).

gl_posting_enabledboolean

Post journal entries on the operator's books (App. A.4).

gl_funding_ledger_idstring

Ledger credited at origination. Default: Card Issuer Payable.

gl_cash_ledger_idstring

Ledger debited on repayment. Default: Cash.

interest_cap_pct_of_principal_bpsinteger

Ceiling on total interest one loan can accrue, as a share of its principal. 2000 = 20%. Null — the default — is uncapped, which is what FRD v2 states: D-07 accrues until the loan is repaid in full, and O-09 leaves the ceiling undefined. Set it only once a ceiling is agreed; a cap reduces what a long-past-due merchant owes.

card_managementstring

dayzero: DayZero provisions cards and pushes spend limits. partner: the partner provisions in the issuer, registers the card id, and receives credit.line.limit_changed events to push limits itself.

One of: dayzero, partner

deferred_fee_recognitionboolean

Recognise the disbursement fee over the term on the operator's books.

email_statementsboolean

Email the statement PDF to the merchant when it issues.

alert_slack_channelstring
alert_emailsarray · string
allowance_policyobject

Loan-loss allowance buckets, e.g. {"buckets":[{"label":"1–30","from_days":1,"to_days":30,"rate_bps":200}]}.

interchange_sourcestring

How interchange is recognised (D-32). estimate: interchange_bps of each cleared settlement, trued up when an issuer report row arrives. issuer_report: only from reported rows. none: not recognised.

One of: none, estimate, issuer_report

interchange_bpsinteger

Estimated interchange rate, e.g. 175 = 1.75%.

statement_balance_modestring

One of: cumulative, cycle_scoped

allocation_scopestring

One of: per_cycle, across_line

cycle_boundary_basisstring

One of: issuer_clearing_date, merchant_local, utc

cycle_close_rulestring

One of: calendar_month_end, anchor_day, operational_trigger

cycle_anchor_dayinteger
excess_credit_dispositionstring

One of: carry_forward, refund_merchant

collections_policyobject

Delinquency ladder (D-31): {"stages": [{"days_past_due": 30, "action": "suspend_cards", "label": "Suspended"}]}. Actions: suspend_cards, suspend_line, notify.

late_termsobject

Late fee / late interest rule body. Leave null while undecided — the late path raises rather than guessing a rate (§2.3).

early_payoff_termsobject

interest_rebate (pro_rata | fully_earned) and fee_rebate (none | pro_rata). Null while undecided (§2.5).

underwriting_criteriaarray · object

Partner-owned rule set: key, label, threshold, comparator, source. Null while undecided (§2.7).

legal_lending_entitystring
statement_brandingobject
covenantsobject

Read-only reflection of the Credit Agreement's universal covenants for the partner UI (§10.1): e.g. cash_covenant_bps, negative, affirmative. Not enforced by the ledger.

event_delivery_modeEventDeliveryModeEventDeliveryMode
issuing_enabledboolean
issuing_providerstring

mock runs the card path against an in-memory issuer (Ramp has no sandbox).

One of: ramp, mock

ramp_spend_program_idstring
allowed_mcc_codesarray · string
blocked_mcc_codesarray · string

Responses

201Successful Response

successboolean
messagestring
codestring
dataCreditProgramResponse

400Bad Request - Invalid input

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.

401Unauthorized - Missing/invalid token or no access to this business

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.

403Forbidden - Insufficient permissions

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.

422Validation Error

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.