API / Reference / Card Transactions
Post card transaction
POST
https://api.light.inc/v1/card-transactions/{transactionId}/post
Posts a card transaction to the ledger
Requires status CAPTURED or REFUNDED (CARD_TRANSACTION_CANNOT_BE_POSTED otherwise), a ledger account and a tax code on every line, and every required custom property. Posting writes the lines to the ledger plus an offsetting entry on the ledger account that represents the card balance account; when the transaction currency differs from the entity's, an exchange rate for the posting date must exist. Afterwards status is POSTED and editStatus ALL_EDITS_LOCKED; use reset to edit again. Company-admin or AP-clerk roles only; cardholders cannot post.
Authorization
Send one of these on every request. See Authentication for how to get credentials.
- API key
Basic authentication header of the form Basic <api_key>, where <api_key> is your api key.
- Bearer token
Path parameters
-
transactionIdstring · uuidrequired
Response
-
idstring · uuid -
companyIdstring · uuid -
companyEntityIdstring · uuid -
cardBalanceAccountIdstring · uuid -
cardIdstring · uuid -
providerIdstring -
originalAmountinteger · int64 -
originalCurrencystring -
amountinteger · int64Unsigned, in minor units. The sign is
direction:DEBITis money out,CREDITis a refund or incoming credit. -
currencystring -
directionstring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
DEBITCREDIT -
transactionReasonstring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
ACCOUNT_NOT_ACTIVEAMOUNT_LIMIT_EXCEEDEDAPPROVAL_EXPIREDAPPROVEDAUTHENTICATION_FAILEDAUTHENTICATION_REQUIREDBALANCE_ACCOUNT_BLOCKED_BY_RULECALL_REFERRALCANCELLEDCARD_BLOCKEDCARD_CAPTUREDCARD_EXPIREDCARD_LOST_OR_STOLENCARD_RESTRICTEDCARD_VERIFICATION_FAILEDCASHBACK_LIMIT_EXCEEDEDCONTACTLESS_FALLBACKCONTACTLESS_LIMIT_REACHEDCOUNTERPARTY_ACCOUNT_UNAVAILABLECOUNTERPARTY_ADDRESS_REQUIREDCOUNTERPARTY_BANK_UNAVAILABLECRYPTOGRAPHIC_FAILUREDECLINEDDECLINED_BY_BAP_VALIDATIONDECLINED_BY_TRANSACTION_RULEDECLINED_NON_GENERICDOMESTIC_DEBIT_NOT_ALLOWEDDO_NOT_HONORDUPLICATE_TRANSMISSIONFORMAT_ERRORFRAUDHONOR_WITH_IDINSUFFICIENT_FUNDSINTERNAL_TIMEOUTINVALID_ACCOUNTINVALID_AMOUNTINVALID_AUTHORIZATION_LIFECYCLEINVALID_CARDINVALID_ISSUERINVALID_MERCHANTINVALID_TRANSACTIONISSUER_SUSPECTED_FRAUDMOBILE_PIN_REQUIREDNOT_SUBMITTEDNO_ACCOUNT_OF_TYPEOTHERPARTIALLY_APPROVEDPENDINGPIN_INVALIDPIN_NOT_CHANGEDPIN_REQUIREDPIN_TRIES_EXCEEDEDPIN_VALIDATION_NOT_POSSIBLEPROVIDER_ERRORPURCHASE_AMOUNT_ONLY_NO_CASHBACKREFUSED_BY_COUNTERPARTY_BANKREFUSED_BY_CUSTOMERREVOCATION_OF_AUTHROUTE_NOT_FOUNDSCHEME_ADVICESECURITY_VIOLATIONTRANSACTION_NOT_PERMITTEDTRANSFER_INSTRUMENT_NOT_FOUNDTRANSFER_NOT_SUPPORTEDUNKNOWNWITHDRAWAL_AMOUNT_EXCEEDEDWITHDRAWAL_COUNT_EXCEEDED -
purchaseTypestring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
ATMBALANCE_INQUIRYECOMMERCEPOSRECURRINGUNKNOWNOTHER -
statusstring⚠️ This enum is not exhaustive; new values may be added in the future.
Set by the card issuer, never by this API, apart from
POSTED.AUTHORIZEDmoves toCAPTURED,DECLINEDorVOIDED;CAPTUREDandREFUNDEDcan be posted. AREFUNDEDtransaction is its own record withdirection: CREDIT— the original capture keeps its status and nothing on the model links the two.One of
AUTHORIZEDDECLINEDCAPTUREDREFUNDEDVOIDEDPOSTED -
typestring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
PAYMENTREFUNDOTHER -
merchantobject-
namestringMerchant name as reported by the card network.
-
cleanNamestringThe name cleaned up by Light, used for display and vendor matching.
-
countrystring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
UNDEFINEDACADAEAFAGAIALAMANAOAQARASATAUAWAXAZBABBBDBEBFBGBHBIBJBLBMBNBOBQBRBSBTBUBVBWBYBZCACCCDCFCGCHCICKCLCMCNCOCPCRCSCUCVCWCXCYCZDEDGDJDKDMDODZEAECEEEGEHERESETEUEZFIFJFKFMFOFRFXGAGBGDGEGFGGGHGIGLGMGNGPGQGRGSGTGUGWGYHKHMHNHRHTHUICIDIEILIMINIOIQIRISITJEJMJOJPKEKGKHKIKMKNKPKRKWKYKZLALBLCLILKLRLSLTLULVLYMAMCMDMEMFMGMHMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZNANCNENFNGNINLNONPNRNTNUNZOMPAPEPFPGPHPKPLPMPNPRPSPTPWPYQARERORSRURWSASBSCSDSESFSGSHSISJSKSLSMSNSOSRSSSTSUSVSXSYSZTATCTDTFTGTHTJTKTLTMTNTOTPTRTTTVTWTZUAUGUKUMUSUYUZVAVCVEVGVIVNVUWFWSXIXUXKYEYTYUZAZMZRZW -
zipcodestringThe merchant's postal code.
-
idstringThe card network's merchant id.
-
mccstringMerchant category code.
-
acquirerIdstringId of the merchant's acquiring bank.
-
logoUrlstringLogo URL, when Light has one.
-
-
receiptDocumentKeystringFilled asynchronously after a receipt upload with the key of the converted PDF, which is not the
keythe upload endpoint returned. -
linesarray of object-
idstring · uuid -
transactionIdstring · uuid -
companyIdstring · uuid -
accountIdstring · uuid -
taxCodeIdstring · uuid -
costCenterIdstring · uuid -
amountinteger · int64 -
netAmountinteger · int64 -
taxAmountinteger · int64 -
descriptionstring -
createdAtstring · date-time -
updatedAtstring · date-time -
customPropertiesarray of object-
groupIdstring · uuidID of the custom property group
-
groupInternalNamestringInternal name of the custom property group
-
valuesarray of objectList of values. Note that this will be a single value unless the group input type supports multiple values
-
idstring · uuidUnique identifier for the object
-
groupIdstring · uuidID of the custom property group
-
groupInternalNamestringInternal name of the custom property group
-
companyIdstring · uuidID of the company
-
internalNamestringInternal name of the custom property value
-
labelstringLabel of the custom property value
-
contextstringContext/description of the custom property value
-
createdAtstring · date-timeTimestamp when the custom property value was created
-
updatedAtstring · date-timeTimestamp when the custom property value was last updated
-
-
-
amortizationTemplateIdstring · uuid -
amortizationStartDatestring · date -
amortizationEndDatestring · date
-
-
failureContextobjectFailure context when vendor onboarding fails.
Set when a batch update or a post fails validation, or when receipt conversion fails; cleared by the next successful post. The description about vendor onboarding is a copy-paste from another model.
-
namestringThe error name
-
typestringThe error type
⚠️ This enum is not exhaustive; new values may be added in the future.
One of
BAD_REQUESTUNAUTHORIZEDFORBIDDENNOT_FOUNDCONFLICTUNPROCESSABLE_CONTENT -
errorsarray of objectList of errors providing details about what went wrong
-
typestringA string code identifying the error type
-
messagestringA human-readable message providing more details about the error
-
patharray of stringOptional path of the error when the error is for a specific field. Used mostly on BAD_REQUEST errors, that path will match the field name on the request object
-
contextobjectOptional context providing additional information about the error. This can include any relevant data that might help in understanding or resolving the error
-
-
-
editStatusstring⚠️ This enum is not exhaustive; new values may be added in the future.
Derived from
statusand whether the transaction is posted:AUTHORIZEDgivesLINE_AMOUNT_EDITS_LOCKED, an unpostedCAPTUREDorREFUNDEDgivesALL_EDITS_ALLOWED, everything elseALL_EDITS_LOCKED. Not returned by the list or singleGET.One of
ALL_EDITS_ALLOWEDLINE_AMOUNT_EDITS_LOCKEDALL_EDITS_LOCKED -
descriptionstring -
performedAtstring · date-time -
createdAtstring · date-time -
updatedAtstring · date-time -
updatedBystring · uuid -
customPropertiesarray of object-
groupIdstring · uuidID of the custom property group
-
groupInternalNamestringInternal name of the custom property group
-
valuesarray of objectList of values. Note that this will be a single value unless the group input type supports multiple values
-
idstring · uuidUnique identifier for the object
-
groupIdstring · uuidID of the custom property group
-
groupInternalNamestringInternal name of the custom property group
-
companyIdstring · uuidID of the company
-
internalNamestringInternal name of the custom property value
-
labelstringLabel of the custom property value
-
contextstringContext/description of the custom property value
-
createdAtstring · date-timeTimestamp when the custom property value was created
-
updatedAtstring · date-timeTimestamp when the custom property value was last updated
-
-