Brands pay creators through Lucra. Earnings are held 7 days, then go to the creator's own Stripe balance, and they withdraw whenever they like.
Amounts are in cents: amount is the gross, fee comes out of it, and net is what's left. Every write that moves money needs an Idempotency-Key.
Fees
The defaults below are the standard plan's; an account's plan or agreed terms can differ, and Settings → Billing shows its own.
| Fee | Default | Paid by |
|---|---|---|
| Payment to a creator | Free | |
| Funding by card | Free | |
| Funding by bank debit | Free | |
| Ad spend | 1.25% | The brand |
| Standard withdrawal | Free | |
| Instant withdrawal | 1.5% (min 50¢) | Creator |
Payments
Send the creator and the net they receive. The brand is charged that plus any fee its account has.
{
"creator": "crtr_026UYfiw1Y6OvUpuKWiOpeL",
"net": 50000,
"note": "Launch bonus"
}
During the 7-day hold the brand can dispute a payment with status: "disputed"; after it, the payment is final.
Pay
One pay object describes how programs and retainers pay:
{
"base": 50000,
"rules": [
{ "per": "view", "amount": 800, "unit": 1000 },
{ "on": "approved_submission", "amount": 5000 }
],
"cap": 200000,
"schedule": { "every": "month" }
}
baseis guaranteed each period.rulespay per result (per), per event (on), or a percent of ad spend or revenue (percentOf).capis the most paid per period.approval: "manual"holds each period's payment for you to approve.
Pay that can't be paid
Pay is checked when it's saved. If it couldn't be paid as set, you get 422 invalid_pay listing every problem:
code | When |
|---|---|
pay_invalid_value | An amount under 1 cent, a percent not above 0 and at most 100, or a unit under 1. |
pay_cap_zero | cap is 0. Send null for no cap. |
pay_cap_below_amount | cap is below an amount paid in one go (an on rule's amount, a per rule's amount for one unit, or base), so it could never be paid. |
pay_cap_required | An organic program without a cap. |
pay_base_needs_period | A base on a program, or with an event or measurement schedule. A base needs a schedule of every day, week, month, or quarter. |
pay_schedule_mismatch | A retainer not paid every day, week, month, or quarter; a program on another schedule than its type's; or an organic program paying on ad results (ad spend, attributed revenue, impressions, clicks, installs, leads, purchases), which organic programs never have. |
pay_duplicate_rule | Two rules on the same results (the same metric and scope), which would pay them twice; combine them into one. |
pay_scope_invalid | A scope.campaign that isn't one of the brand's campaigns, or for a program, not one built from the program's work. A new program has none yet. |
pay_exceeds_budget | A single amount larger than the program's budget.amount. |
pay_primary_missing | A program without the rule its type pays per result (see programs). |
pay_primary_changed | Program pay, or a creator's pay, that changes what the program pays per result on (for example ad spend to leads). Change the amount instead. |
pay_program_unsupported | "approval": "manual" on a program, or pay per approved video on an organic program. |
Retainers
Recurring pay for one creator: offer it with { "creator", "pay", "deliverables" }. The creator accepts in the app. Each period pays its base up front and earned results at the end. Cancel with status: "canceling"; the current period is still paid.
Failed charges
A declined charge retries after 1, 2, 2, and 2 days, then the retainer goes past_due until the brand updates its payment method. Program pay retries the same way.
Balance
GET /v1/balance shows a brand's program funds or a creator's earnings. Add funds with POST /v1/balance/deposits.
Payouts
Lucra sends each earning past its hold to the creator's Stripe balance every hour, once they've verified their identity. GET /v1/payouts lists them.
Withdrawals
POST /v1/withdrawals moves a balance to the bank: standard (free) or instant. Leave out amount to withdraw everything.
Earnings
GET /v1/earnings lists what a creator earned, with its status: pending, held, available, or paid.
Endpoints
/v1/balanceGet the balance: the account's funds, or a creator's earnings
lucra.balance.retrieve()Response2002 fieldsShow
balancesobject[]Show 10 child fieldsHide child fields
currencystringLowercase ISO 4217 code, e.g. usd.
availableintegerA brand's funds free to commit to programs; a creator's earnings past their hold, sent to their Stripe balance within the hour once their identity is verified.
pendingintegerA brand's funding that hasn't settled; a creator's earnings not yet final.
heldintegerA brand's funds held for ad-spend usage charges; a creator's earnings on their hold.
reservedintegerA brand's funds held for its programs' creators; 0 for a creator.
spentintegerSpent from a brand's funds; 0 for a creator.
refundableintegerCan be refunded with POST /v1/balance/refunds; 0 for a creator.
paidintegerA creator's earnings sent to their Stripe balance, all time; 0 for an account.
withdrawableintegerIn this balance's Stripe account (a creator's, or an account's commissions), ready to withdraw with POST /v1/withdrawals.
instantWithdrawableintegerHow much of `withdrawable` can go out instantly, to a debit card.
withdrawalFeesobjectWhat a withdrawal costs; it comes out of the amount.
Show 2 child fieldsHide child fields
instantobjectShow 2 child fieldsHide child fields
percentnumberA percent, e.g. 1.5 for 1.5%.
minimumintegerThe least an instant withdrawal costs.
crossBorderobjectAdded outside the US; 0 in the US.
Show 1 child fieldHide child fields
percentnumberA percent, e.g. 1.5 for 1.5%.
/v1/balance/transactionsList every ledger line on the account
lucra.balance.transactions.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
typestringComma-separated transaction types, e.g. deposit,funding_refund.
programprog_…
Response200A page of items, 17 fields each, and nextCursorShow
idtxn_…typestringstatusstringamountintegerSigned, in cents: positive adds to the balance.
feeintegerIn cents.
netintegerSigned, in cents: `amount` less `fee`.
balancenumbernullablecurrencystringLowercase ISO 4217 code, e.g. usd.
descriptionstringnullableWhat it is, e.g. Creator payment.
memostringnullablesourcestringcounterpartyobjectShow 3 child fieldsHide child fields
typeenumpartnerpayment_methodcreatorplatformaccountidcrtr_…nullableSet when the other side is a creator.
namestringnullable
campaigncamp_…nullableprogramprog_…nullabledepositdep_…nullableThe deposit this line funds, if any.
refundrfnd_…nullableThe refund this line is, if any.
occurredAtstring
/v1/balance/depositsAdd funds to the balance
lucra.balance.deposits.create({ body })Headers
Idempotency-KeystringrequiredUnique to this write; resend it to retry safely.
Body
netintegerrequiredIn cents, what the balance receives: more than $0.50, at most $999,999.99. A card's fee is charged on top.
methodenumbank: a free bank debit; card: adds Lucra's card fee to the charge.
bankcard
Response20110 fieldsShow
iddep_…amountintegerCharged to the payer, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
methodenumbank: a free bank debit; card: Lucra's card fee is charged on top of what the balance receives.
bankcardstatusenumpending until the payer pays and it settles; `net` is then available.
pendingavailablefailedpartially_refundedrefundeddisputedcheckoutUrlstringnullableStripe Checkout: send the payer here to pay.
createdAtstringupdatedAtstring
/v1/balance/depositsList deposits to the balance
lucra.balance.deposits.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
Response200A page of items, 10 fields each, and nextCursorShow
iddep_…amountintegerCharged to the payer, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
methodenumbank: a free bank debit; card: Lucra's card fee is charged on top of what the balance receives.
bankcardstatusenumpending until the payer pays and it settles; `net` is then available.
pendingavailablefailedpartially_refundedrefundeddisputedcheckoutUrlstringnullableStripe Checkout: send the payer here to pay.
createdAtstringupdatedAtstring
/v1/balance/deposits/:idGet a deposit
lucra.balance.deposits.retrieve({ path: { id } })Path parameters
idstringrequired
Response20010 fieldsShow
iddep_…amountintegerCharged to the payer, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
methodenumbank: a free bank debit; card: Lucra's card fee is charged on top of what the balance receives.
bankcardstatusenumpending until the payer pays and it settles; `net` is then available.
pendingavailablefailedpartially_refundedrefundeddisputedcheckoutUrlstringnullableStripe Checkout: send the payer here to pay.
createdAtstringupdatedAtstring
/v1/balance/refundsRefund available funds
lucra.balance.refunds.create({ body })Headers
Idempotency-KeystringrequiredUnique to this write; resend it to retry safely.
Body
amountintegerrequiredIn cents, up to the balance's `refundable`.
Response2018 fieldsShow
idrfnd_…amountintegerReturned to the cards and banks the deposits came from, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumprocessingsucceededfailedreversedcreatedAtstringupdatedAtstring
/v1/balance/refundsList refunds from the balance
lucra.balance.refunds.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
Response200A page of items, 8 fields each, and nextCursorShow
idrfnd_…amountintegerReturned to the cards and banks the deposits came from, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumprocessingsucceededfailedreversedcreatedAtstringupdatedAtstring
/v1/balance/refunds/:idGet a refund
lucra.balance.refunds.retrieve({ path: { id } })Path parameters
idstringrequired
Response2008 fieldsShow
idrfnd_…amountintegerReturned to the cards and banks the deposits came from, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumprocessingsucceededfailedreversedcreatedAtstringupdatedAtstring
/v1/paymentsPay a creator
lucra.payments.create({ body })Headers
Idempotency-KeystringrequiredUnique to this write; resend it to retry safely.
Body
creatorcrtr_…requirednetintegerrequiredIn cents, what the creator receives; Lucra's fee is charged on top.
notestring
Response20115 fieldsShow
idpay_…creatorcrtr_…amountintegerCharged to the brand: what the creator receives (`net`) plus Lucra's fee, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumpending_approval until the brand approves it, then approved while it's charged; pending until Stripe confirms the charge; then succeeded, or failed with `failureMessage`. disputed until Lucra decides; refunded if canceled.
pending_approvalapprovedpendingsucceededfailedrefundeddisputedretainerret_…nullableThe retainer this is a period payment of, if any.
failureMessagestringnullablenotestringnullableholdUntilAtstringnullabledisputeobjectnullableWhile `status` is disputed: who opened it and why; null otherwise.
Show 3 child fieldsHide child fields
byenumbrand: the paying brand disputed it; lucra: Lucra holds it for review.
brandlucrareasonstringnullableWhy; a Lucra hold's reason shows only to Lucra's admin.
openedAtstringnullable
versionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/paymentsList payments to creators
lucra.payments.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
creatorcrtr_…retainerret_…statusenumpending_approval until the brand approves it, then approved while it's charged; pending until Stripe confirms the charge; then succeeded, or failed with `failureMessage`. disputed until Lucra decides; refunded if canceled.
pending_approvalapprovedpendingsucceededfailedrefundeddisputed
Response200A page of items, 15 fields each, and nextCursorShow
idpay_…creatorcrtr_…amountintegerCharged to the brand: what the creator receives (`net`) plus Lucra's fee, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumpending_approval until the brand approves it, then approved while it's charged; pending until Stripe confirms the charge; then succeeded, or failed with `failureMessage`. disputed until Lucra decides; refunded if canceled.
pending_approvalapprovedpendingsucceededfailedrefundeddisputedretainerret_…nullableThe retainer this is a period payment of, if any.
failureMessagestringnullablenotestringnullableholdUntilAtstringnullabledisputeobjectnullableWhile `status` is disputed: who opened it and why; null otherwise.
Show 3 child fieldsHide child fields
byenumbrand: the paying brand disputed it; lucra: Lucra holds it for review.
brandlucrareasonstringnullableWhy; a Lucra hold's reason shows only to Lucra's admin.
openedAtstringnullable
versionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/payments/:idGet a payment to a creator
lucra.payments.retrieve({ path: { id } })Path parameters
idstringrequired
Response20015 fieldsShow
idpay_…creatorcrtr_…amountintegerCharged to the brand: what the creator receives (`net`) plus Lucra's fee, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumpending_approval until the brand approves it, then approved while it's charged; pending until Stripe confirms the charge; then succeeded, or failed with `failureMessage`. disputed until Lucra decides; refunded if canceled.
pending_approvalapprovedpendingsucceededfailedrefundeddisputedretainerret_…nullableThe retainer this is a period payment of, if any.
failureMessagestringnullablenotestringnullableholdUntilAtstringnullabledisputeobjectnullableWhile `status` is disputed: who opened it and why; null otherwise.
Show 3 child fieldsHide child fields
byenumbrand: the paying brand disputed it; lucra: Lucra holds it for review.
brandlucrareasonstringnullableWhy; a Lucra hold's reason shows only to Lucra's admin.
openedAtstringnullable
versionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/payments/:idApprove or dispute a payment to a creator
lucra.payments.update({ path: { id }, body })Path parameters
idstringrequired
Headers
Idempotency-KeystringrequiredUnique to this write; resend it to retry safely.
Response20015 fieldsShow
idpay_…creatorcrtr_…amountintegerCharged to the brand: what the creator receives (`net`) plus Lucra's fee, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumpending_approval until the brand approves it, then approved while it's charged; pending until Stripe confirms the charge; then succeeded, or failed with `failureMessage`. disputed until Lucra decides; refunded if canceled.
pending_approvalapprovedpendingsucceededfailedrefundeddisputedretainerret_…nullableThe retainer this is a period payment of, if any.
failureMessagestringnullablenotestringnullableholdUntilAtstringnullabledisputeobjectnullableWhile `status` is disputed: who opened it and why; null otherwise.
Show 3 child fieldsHide child fields
byenumbrand: the paying brand disputed it; lucra: Lucra holds it for review.
brandlucrareasonstringnullableWhy; a Lucra hold's reason shows only to Lucra's admin.
openedAtstringnullable
versionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/payoutsList payouts: to creators from this brand's earnings, received by this account, or (as a creator) the creator's own
lucra.payouts.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
directionenumsentreceivedcreatorcrtr_…statusstringOne or more, comma-separated: pending, submitted, paid, failed, reversed, unknown.
Response200A page of items, 12 fields each, and nextCursorShow
idpout_…directionenumsent: from this brand's earnings to a creator's balance; received: paid to this account's balance, like a partner's commission.
sentreceivedcreatorcrtr_…nullablesourcesenum[]paid_adsorganicsubmissionprogrambonusretainerreferraladjustmentpartner_commissionamountintegerThe earnings it pays; `net` is sent to the recipient's Stripe balance, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumpendingsubmittedpaidfailedreversedunknownfailureMessagestringnullablecreatedAtstringupdatedAtstring
/v1/payouts/:idGet a payout
lucra.payouts.retrieve({ path: { id } })Path parameters
idstringrequired
Response20012 fieldsShow
idpout_…directionenumsent: from this brand's earnings to a creator's balance; received: paid to this account's balance, like a partner's commission.
sentreceivedcreatorcrtr_…nullablesourcesenum[]paid_adsorganicsubmissionprogrambonusretainerreferraladjustmentpartner_commissionamountintegerThe earnings it pays; `net` is sent to the recipient's Stripe balance, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumpendingsubmittedpaidfailedreversedunknownfailureMessagestringnullablecreatedAtstringupdatedAtstring
/v1/earningsList a creator's earnings
lucra.earnings.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
statusstringOne or more, comma-separated: pending, held, available, paid.
sourcestringOne or more, comma-separated: paid_ads, organic, submission, program, bonus, retainer, referral, adjustment, partner_commission.
programprog_…retainerret_…
Response200A page of items, 13 fields each, and nextCursorShow
idern_…programprog_…nullableaccountacct_…The brand that paid it.
submissionsub_…nullableretainerret_…nullablesourceenumpaid_adsorganicsubmissionprogrambonusretainerreferraladjustmentpartner_commissionamountintegerEarned before any partner take rate (`fee`); the creator receives `net`, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumheld until holdUntilAt, then available, then paid: sent to the creator's Stripe balance (once their identity is verified), to withdraw.
pendingheldavailablepaidholdUntilAtstringnullableoccurredAtstring
/v1/earnings/:idGet one of a creator's earnings
lucra.earnings.retrieve({ path: { id } })Path parameters
idstringrequired
Response20013 fieldsShow
idern_…programprog_…nullableaccountacct_…The brand that paid it.
submissionsub_…nullableretainerret_…nullablesourceenumpaid_adsorganicsubmissionprogrambonusretainerreferraladjustmentpartner_commissionamountintegerEarned before any partner take rate (`fee`); the creator receives `net`, in cents.
feeintegerTaken from `amount`, in cents.
netinteger`amount` less `fee`, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
statusenumheld until holdUntilAt, then available, then paid: sent to the creator's Stripe balance (once their identity is verified), to withdraw.
pendingheldavailablepaidholdUntilAtstringnullableoccurredAtstring
/v1/withdrawalsWithdraw from the balance to the bank account or debit card
lucra.withdrawals.create({ body })Headers
Idempotency-KeystringrequiredUnique to this write; resend it to retry safely.
Body
amountintegerIn cents; defaults to everything withdrawable.
speedenumstandardinstant
Response20111 fieldsShow
idwdr_…amountintegerTaken from the balance, in cents.
feeintegerLucra's fee, taken from the amount: the instant fee, plus the cross-border fee outside the US.
netinteger`amount` less `fee`: what reaches the bank or card, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
speedenumstandardinstantstatusenumin_transit once Stripe accepted it; paid when it reached the bank.
pendingin_transitpaidfailedfailureMessagestringnullablearrivesAtstringnullablecreatedAtstringupdatedAtstring
/v1/withdrawalsList withdrawals from the balance
lucra.withdrawals.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
statusstringOne or more, comma-separated: pending, in_transit, paid, failed.
Response200A page of items, 11 fields each, and nextCursorShow
idwdr_…amountintegerTaken from the balance, in cents.
feeintegerLucra's fee, taken from the amount: the instant fee, plus the cross-border fee outside the US.
netinteger`amount` less `fee`: what reaches the bank or card, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
speedenumstandardinstantstatusenumin_transit once Stripe accepted it; paid when it reached the bank.
pendingin_transitpaidfailedfailureMessagestringnullablearrivesAtstringnullablecreatedAtstringupdatedAtstring
/v1/withdrawals/:idGet a withdrawal
lucra.withdrawals.retrieve({ path: { id } })Path parameters
idstringrequired
Response20011 fieldsShow
idwdr_…amountintegerTaken from the balance, in cents.
feeintegerLucra's fee, taken from the amount: the instant fee, plus the cross-border fee outside the US.
netinteger`amount` less `fee`: what reaches the bank or card, in cents.
currencystringLowercase ISO 4217 code, e.g. usd.
speedenumstandardinstantstatusenumin_transit once Stripe accepted it; paid when it reached the bank.
pendingin_transitpaidfailedfailureMessagestringnullablearrivesAtstringnullablecreatedAtstringupdatedAtstring
/v1/retainersList retainers
lucra.retainers.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
creatorcrtr_…
Response200A page of items, 19 fields each, and nextCursorShow
idret_…creatorcrtr_…accountacct_…The brand that offers the retainer.
brandNamestringbrandAvatarUrlstringnullablepayobjectShow 5 child fieldsHide child fields
rulesobject[]baseintegerGuaranteed each period, in cents.
capintegernullableThe most one creator is paid per period, in cents; null or left out for no cap.
scheduleobjectapprovalenumautomatic pays each period on its own; manual waits for the brand to approve the calculated amount.
automaticmanual
summarystringcurrencystringLowercase ISO 4217 code, e.g. usd.
statusenumdraftofferedacceptedactivecancelingendedrejectedbillingStatusstringcurrentPeriodEndAtstringnullabledeliverablesstringnullablenotesstringnullabledocumentsany[]The agreements accepting accepts; `accepted` once the creator accepted that version with this brand.
offeredAtstringacceptedAtstringnullableversionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/retainers/:idGet a retainer
lucra.retainers.retrieve({ path: { id } })Path parameters
idstringrequired
Response20019 fieldsShow
idret_…creatorcrtr_…accountacct_…The brand that offers the retainer.
brandNamestringbrandAvatarUrlstringnullablepayobjectShow 5 child fieldsHide child fields
rulesobject[]baseintegerGuaranteed each period, in cents.
capintegernullableThe most one creator is paid per period, in cents; null or left out for no cap.
scheduleobjectapprovalenumautomatic pays each period on its own; manual waits for the brand to approve the calculated amount.
automaticmanual
summarystringcurrencystringLowercase ISO 4217 code, e.g. usd.
statusenumdraftofferedacceptedactivecancelingendedrejectedbillingStatusstringcurrentPeriodEndAtstringnullabledeliverablesstringnullablenotesstringnullabledocumentsany[]The agreements accepting accepts; `accepted` once the creator accepted that version with this brand.
offeredAtstringacceptedAtstringnullableversionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/retainersOffer a creator a retainer
lucra.retainers.create({ body })Body
creatorcrtr_…requiredpayobjectrequiredShow 5 child fieldsHide child fields
rulesobject[]baseintegerGuaranteed each period, in cents.
capintegernullableThe most one creator is paid per period, in cents; null or left out for no cap.
scheduleobjectrequiredapprovalenumautomatic pays each period on its own; manual waits for the brand to approve the calculated amount.
automaticmanual
deliverablesstringnotesstring
Response20119 fieldsShow
idret_…creatorcrtr_…accountacct_…The brand that offers the retainer.
brandNamestringbrandAvatarUrlstringnullablepayobjectShow 5 child fieldsHide child fields
rulesobject[]baseintegerGuaranteed each period, in cents.
capintegernullableThe most one creator is paid per period, in cents; null or left out for no cap.
scheduleobjectapprovalenumautomatic pays each period on its own; manual waits for the brand to approve the calculated amount.
automaticmanual
summarystringcurrencystringLowercase ISO 4217 code, e.g. usd.
statusenumdraftofferedacceptedactivecancelingendedrejectedbillingStatusstringcurrentPeriodEndAtstringnullabledeliverablesstringnullablenotesstringnullabledocumentsany[]The agreements accepting accepts; `accepted` once the creator accepted that version with this brand.
offeredAtstringacceptedAtstringnullableversionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring
/v1/retainers/:idCancel a retainer, or, as the creator, accept or reject an offer or cancel
lucra.retainers.update({ path: { id }, body })Path parameters
idstringrequired
Body
statusenumrequiredacceptedrejectedcancelingversioninteger
Response20019 fieldsShow
idret_…creatorcrtr_…accountacct_…The brand that offers the retainer.
brandNamestringbrandAvatarUrlstringnullablepayobjectShow 5 child fieldsHide child fields
rulesobject[]baseintegerGuaranteed each period, in cents.
capintegernullableThe most one creator is paid per period, in cents; null or left out for no cap.
scheduleobjectapprovalenumautomatic pays each period on its own; manual waits for the brand to approve the calculated amount.
automaticmanual
summarystringcurrencystringLowercase ISO 4217 code, e.g. usd.
statusenumdraftofferedacceptedactivecancelingendedrejectedbillingStatusstringcurrentPeriodEndAtstringnullabledeliverablesstringnullablenotesstringnullabledocumentsany[]The agreements accepting accepts; `accepted` once the creator accepted that version with this brand.
offeredAtstringacceptedAtstringnullableversionintegerSend it back on PATCH to reject edits based on a stale read.
createdAtstringupdatedAtstring