openapi: 3.0.1 info: title: App Marketplace accounting-entries Export Items (v3) API description: API for Pleo App Marketplace termsOfService: https://pleo.io/terms/ contact: email: partner-ecosystem-team@pleo.io license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: 39.4.0 servers: - url: https://external.pleo.io description: Production server - url: https://external.staging.pleo.io description: Staging server security: - bearerAuth: [] - basicAuth: [] tags: - name: Export Items (v3) paths: /v3/export-items: get: tags: - Export Items (v3) summary: Get Export Items description: 'An export item = an accounting entry transformed into an exportable entry. The accounting and bookkeeping information is collected from an accounting entry to form an export item. • A request to this endpoint retrieves a list of export items selected for export. • Please note that you can retrieve a list of export items only from `pending` and `in_progress` export jobs.' operationId: getExportItemsV3 parameters: - name: job_id in: query description: The Export Job ID in which the accounting entries have been included for export. required: false style: form explode: true schema: type: string format: uuid - name: before in: query description: Lower bound of the page of data to return (cannot be used together with [after] or [offset]). required: false style: form explode: true schema: pattern: ^[A-Z2-7=~]+$ type: string - name: after in: query description: Upper bound of the page of data to return (cannot be used together with [before] or [offset]). required: false style: form explode: true schema: pattern: ^[A-Z2-7=~]+$ type: string - name: offset in: query description: Offset of the page of data to return (cannot be used together with [before] or [after]). required: false style: form explode: true schema: minimum: 0 type: integer format: int64 - name: limit in: query description: The maximum amount of items to return. required: false style: form explode: true schema: minimum: 0 type: integer format: int32 - name: sorting_keys in: query description: The keys to sort the results by. required: false style: form explode: true schema: type: array items: type: string - name: sorting_order in: query description: The order to sort the results by. Must be the same length as [sortingKeys]; one order per key. required: false style: form explode: true schema: type: array items: $ref: '#/components/schemas/PageOrder' responses: '200': description: Export Items retrieved successfully. content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/CursorPaginatedResponseExportItemV3' '400': description: Contra accounts are not fully configured. Please map contra accounts in the Accounting settings. Export items cannot be retrieved until all Pleo accounts have corresponding contra accounts configured in the ERP/accounting system. content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/ExceptionInfo' example: type: MISSING_CONTRA_ACCOUNTS message: Contra accounts are not fully configured. Please map contra accounts in the Accounting settings. '422': description: Export Job has finished. Only Export Items from running jobs can be retrieved. content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/ExceptionInfo' example: type: EXPORT_JOB_STATUS_UNPROCESSABLE message: Export Job is finished and can no longer be processed. components: schemas: ExceptionInfo: required: - type type: object properties: message: type: string type: type: string SupplierBankAccount: required: - bankName - country type: object properties: accountNumber: type: string description: Bank account number. nullable: true bankCode: type: string description: Bank code. nullable: true bankName: type: string description: Name of the bank. bic: type: string description: Branch information. nullable: true country: maxLength: 2 minLength: 2 type: string description: Country the bank is located in. This is an ISO 3166-1 alpha-2 country code. example: DK enum: - UNDEFINED - AC - AD - AE - AF - AG - AI - AL - AM - AN - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BU - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CP - CR - CS - CU - CV - CW - CX - CY - CZ - DE - DG - DJ - DK - DM - DO - DZ - EA - EC - EE - EG - EH - ER - ES - ET - EU - EZ - FI - FJ - FK - FM - FO - FR - FX - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - IC - ID - IE - IL - IM - IN - IO - IQ - IR - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KP - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - LY - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NT - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SD - SE - SF - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - SS - ST - SU - SV - SX - SY - SZ - TA - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TP - TR - TT - TV - TW - TZ - UA - UG - UK - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - XI - XU - XK - YE - YT - YU - ZA - ZM - ZR - ZW iban: type: string description: Unique international bank account number. nullable: true description: Bank account information of the supplier. nullable: true AccountV3: required: - id - name type: object properties: code: type: string description: Account code or number. nullable: true id: type: string description: Account identifier assigned by Pleo. format: uuid example: 00000000-0000-0000-0000-000000000000 identifier: type: string description: Account identifier assigned by the ERP/accounting system. nullable: true name: type: string description: Name of the account as set on the Pleo UI. example: Meals and Entertainment description: Specific General Ledger (GL) account allocated to the export item - the account code, the identifier, or both are mentioned, if any GL account is allocated. nullable: true ContraAccount: required: - id - name type: object properties: code: type: string description: Contra account code or number. nullable: true id: type: string description: Contra account identifier assigned by Pleo. format: uuid example: 00000000-0000-0000-0000-000000000000 identifier: type: string description: Contra account identifier assigned by the ERP/accounting system. nullable: true name: type: string description: Contra account name as specified in the Pleo app. example: Pleo GBP Account description: Account in the ERP/accounting system corresponding to each account of the customer in Pleo. nullable: true CountryCode: type: string description: Country of registration of the vendor (ISO 3166-1 alpha-2 country code (2 letters)) example: DK enum: - UNDEFINED - AC - AD - AE - AF - AG - AI - AL - AM - AN - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BU - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CP - CR - CS - CU - CV - CW - CX - CY - CZ - DE - DG - DJ - DK - DM - DO - DZ - EA - EC - EE - EG - EH - ER - ES - ET - EU - EZ - FI - FJ - FK - FM - FO - FR - FX - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - IC - ID - IE - IL - IM - IN - IO - IQ - IR - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KP - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - LY - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NT - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SD - SE - SF - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - SS - ST - SU - SV - SX - SY - SZ - TA - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TP - TR - TT - TV - TW - TZ - UA - UG - UK - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - XI - XU - XK - YE - YT - YU - ZA - ZM - ZR - ZW ExportItemV3: required: - _links - accountingEntryId - accountingEntryLines - additionalInformation - amount - companyId - date - type type: object properties: _links: $ref: '#/components/schemas/LinksResponse' accountingEntryId: type: string description: Pleo internal identifier of the export item (identifier of the expense). format: uuid example: 00000000-0000-0000-0000-000000000000 accountingEntryLines: type: array description: An accounting entry is represented with either a single line or multiple lines that explain the details. So, if the accounting entry is split into multiple lines, each line has a unique ID. items: $ref: '#/components/schemas/ExportItemLineV3' additionalInformation: $ref: '#/components/schemas/ExportItemAdditionalInformationV3' amount: $ref: '#/components/schemas/ExportItemAmountV3' bookkeeping: $ref: '#/components/schemas/BookkeepingV3' companyId: type: string description: Pleo company identifier this export item belongs to. format: uuid example: 00000000-0000-0000-0000-000000000000 contraAccount: $ref: '#/components/schemas/ContraAccount' date: pattern: YYYY-MM-DDTHH:mi:ssZ type: string description: The date when the export item was book kept. format: date-time files: type: array description: Files that have been attached to this accounting entry. nullable: true items: $ref: '#/components/schemas/ExportItemFile' note: type: string description: Additional comments potentially describing the accounting entry. nullable: true servicePeriod: $ref: '#/components/schemas/ServicePeriodV3' subType: type: string description: This can be one of ExportItemSubTypeV3 values example: reimbursement_to_employee_refund supplier: $ref: '#/components/schemas/SupplierV3' team: $ref: '#/components/schemas/TeamV3' type: type: string description: This can be one of ExportItemTypeV3 values example: card_purchase user: $ref: '#/components/schemas/ExportItemUserV3' vendor: $ref: '#/components/schemas/VendorV3' CursorPageCurrentRequestInfo: required: - parameters type: object properties: after: type: string before: type: string limit: type: integer format: int32 offset: type: integer format: int64 parameters: type: object additionalProperties: type: array items: type: string sortingKeys: type: array items: type: string sortingOrder: type: array items: $ref: '#/components/schemas/PageOrder' ExportItemLineAmountV3: required: - inSupplierCurrency - inWalletCurrency type: object properties: inSupplierCurrency: $ref: '#/components/schemas/MoneyModel' inWalletCurrency: $ref: '#/components/schemas/MoneyModel' description: Amount of the specific accounting entry line. ExportItemUserV3: required: - id - name type: object properties: code: type: string description: This would usually represent the employee code. nullable: true id: type: string description: Pleo internal identifier of the user. format: uuid example: 00000000-0000-0000-0000-000000000000 name: type: string description: Full name of the user. example: John Doe description: This applies to the person that initiated the spend. In most cases this would be the employee. nullable: true LinksResponse: type: object properties: api: type: object additionalProperties: type: string mobile: type: object additionalProperties: type: string web: type: object additionalProperties: type: string description: Contains links relevant to the export item. example: web: exportItem: https://example.com mobile: exportItem: https://example.com api: exportItem: https://example.com ExportItemFile: required: - size - type - url type: object properties: size: type: integer description: Size of the file in bytes. format: int32 example: 2084 type: type: string description: Type of file, usually represented similar to mime type. example: application/pdf url: type: string description: URL to retrieve the file attachment from. This URL is active for a limited time (24 Hours) from the time the export item is fetched. example: https://file.url description: Files that have been attached to this accounting entry. nullable: true ServicePeriodV3: required: - from - to type: object properties: from: pattern: yyyy-MM-dd'T'HH:mm:ss'Z' type: string description: The start of the service period in ISO 8601 datetime format. format: date-time example: '2025-01-01T00:00:00Z' to: pattern: yyyy-MM-dd'T'HH:mm:ss'Z' type: string description: The end of the service period in ISO 8601 datetime format. format: date-time example: '2025-01-31T00:00:00Z' description: The period during which a service was provided, goods were delivered, or an expense was incurred. nullable: true CursorPageInfo: required: - currentRequestPagination - hasNextPage - hasPreviousPage type: object properties: currentRequestPagination: $ref: '#/components/schemas/CursorPageCurrentRequestInfo' endCursor: type: string hasNextPage: type: boolean hasPreviousPage: type: boolean startCursor: type: string total: type: integer format: int64 TeamV3: required: - id - name type: object properties: code: type: string description: Team code, usually the unique identifier of the team in the accounting system. nullable: true id: type: string description: Pleo internal identifier of the team. format: uuid example: 00000000-0000-0000-0000-000000000000 name: type: string description: Name of the team. example: Marketing description: Teams are assigned to an export item for categorisation or association with a specific team. nullable: true SupplierV3: type: object properties: account: type: string description: Supplier account code in the accounting system. nullable: true categoryCode: type: string description: Category code that describes the merchant/supplier's activity. nullable: true example: '5999' code: type: string description: Identifier of the supplier in the accounting system. nullable: true country: maxLength: 2 minLength: 2 type: string description: The ISO 3166-1 alpha-2 country code the merchant or supplier operates in. nullable: true example: DK enum: - UNDEFINED - AC - AD - AE - AF - AG - AI - AL - AM - AN - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BU - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CP - CR - CS - CU - CV - CW - CX - CY - CZ - DE - DG - DJ - DK - DM - DO - DZ - EA - EC - EE - EG - EH - ER - ES - ET - EU - EZ - FI - FJ - FK - FM - FO - FR - FX - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - IC - ID - IE - IL - IM - IN - IO - IQ - IR - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KP - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - LY - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NT - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SD - SE - SF - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - SS - ST - SU - SV - SX - SY - SZ - TA - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TP - TR - TT - TV - TW - TZ - UA - UG - UK - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - XI - XU - XK - YE - YT - YU - ZA - ZM - ZR - ZW name: type: string description: Name of the supplier or merchant. nullable: true example: GOOGLE*ADS8693645259 taxIdentifier: type: string description: Tax identification of the supplier in their country of operation. nullable: true description: The supplier or merchant involved. nullable: true ExportItemAdditionalInformationV3: required: - reconciliationId type: object properties: attendees: type: array description: Indicates attendance of participants at the time of the spend. For example, if an employee took clients to dinner, this attribute indicates who were present at the dinner. nullable: true items: type: string description: Indicates attendance of participants at the time of the spend. For example, if an employee took clients to dinner, this attribute indicates who were present at the dinner. nullable: true invoiceInformation: $ref: '#/components/schemas/InvoiceInformationV3' reconciledEntries: uniqueItems: true type: array description: A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions. nullable: true items: type: string description: A list of reconciliation IDs for reimbursement expenses that are settled by this reimbursement. Only included for reimbursement transactions. nullable: true reconciliationId: type: string description: Identifier used to reconcile between Pleo and the accounting system. Also known in Pleo as the book ID. description: Additional information applicable to this accounting entry. TagV3: required: - code - groupCode - id type: object properties: code: type: string description: Unique identifier of the tag allocated to the export item. groupCode: type: string description: Unique identifier of the tag group (a tag group is a collection of tags). id: type: string description: Pleo internal identifier of the tag. format: uuid example: 00000000-0000-0000-0000-000000000000 description: Tags are cost centres allocated to an export item. nullable: true TaxAmountV3: required: - inSupplierCurrency - inWalletCurrency type: object properties: inSupplierCurrency: $ref: '#/components/schemas/MoneyModel' inWalletCurrency: $ref: '#/components/schemas/MoneyModel' description: Amount spent for tax. BookkeepingV3: required: - method type: object properties: method: type: string description: This can be one of BookkeepingMethodV3 values example: none description: Bookkeeping related configurations for an accounting entry. nullable: true CursorPaginatedResponseExportItemV3: required: - data - pagination type: object properties: data: type: array items: $ref: '#/components/schemas/ExportItemV3' pagination: $ref: '#/components/schemas/CursorPageInfo' ExportItemNetAmountV3: required: - inSupplierCurrency - inWalletCurrency type: object properties: inSupplierCurrency: $ref: '#/components/schemas/MoneyModel' inWalletCurrency: $ref: '#/components/schemas/MoneyModel' description: Amount either including or excluding tax. This depends on the tax code, represented in the tax type attribute. InvoiceInformationV3: required: - invoiceDate - invoiceNumber - status type: object properties: dueDate: pattern: YYYY-MM-DD type: string description: Date the payment is due. format: date-time nullable: true invoiceDate: pattern: YYYY-MM-DD type: string description: Date the invoice was issued. format: date-time invoiceNumber: type: string description: The invoice number. paymentDate: pattern: YYYY-MM-DD type: string description: Date the invoice was paid if the status is paid. format: date-time nullable: true status: type: string description: This can be one of InvoiceInformationStatusV3 values example: pending_approval supplierBankAccount: $ref: '#/components/schemas/SupplierBankAccount' description: For an invoice, additional information related to the invoice is specified in this attribute. nullable: true VendorV3: required: - defaultCurrency - id - name type: object properties: code: type: string description: Unique identifier assigned to the vendor in the target ERP/accounting system for aiding users in identifying the correct record. country: $ref: '#/components/schemas/CountryCode' defaultCurrency: maxLength: 3 minLength: 3 type: string description: Default currency in which the vendor’s financial operations, such as purchases, payments, or invoices, are primarily conducted. (ISO 4217 currency code (3 letters)) example: DKK externalId: type: string description: Unique external identifier of the vendor, assigned by the target ERP/accounting system, used by the client for identification. Can be the same as code if no other identifier is available. id: type: string description: Pleo's internal identifier for the vendor format: uuid example: 123e4567-e89b-12d3-a456-426614174000 name: type: string description: The name field represents the official name of the vendor as it is recorded in the target ERP/accounting system. This name is used to uniquely identify the vendor within the accounting workflow and is visible to the Pleo bookkeeper. example: Pleo registrationNumber: type: string description: Unique identification of a registered vendor in a country taxRegistrationNumber: type: string description: VAT/GST/Tax ID number of the vendor description: The vendor associated with the accounting entry. nullable: true TaxV3: required: - amount - id - rate - type type: object properties: amount: $ref: '#/components/schemas/TaxAmountV3' code: type: string description: Tax code. nullable: true id: type: string description: Pleo internal identifier of the tax code. format: uuid example: 00000000-0000-0000-0000-000000000000 ingoingTaxAccount: type: string description: Ingoing tax account used alongside tax codes or for reverse charge VAT. example: '123456' outgoingTaxAccount: type: string description: Outgoing tax account used alongside tax codes or for reverse charge VAT. example: '123456' rate: type: number description: Tax rate. Represented as a decimal, not as a percentage, e.g. a 20% tax rate would be 0.20. example: 0.2 type: type: string description: This can be one of TaxTypeV3 values example: inclusive description: Tax details applicable to this accounting entry line. The tax details usually have the code, the identifier, or both. nullable: true MoneyModel: required: - currency - value type: object properties: currency: type: string description: Represents the currency code (ISO 4217) of the supplier. enum: - UNDEFINED - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BOV - BRL - BSD - BTN - BWP - BYN - BYR - BZD - CAD - CDF - CHE - CHF - CHW - CLF - CLP - CNY - COP - COU - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRO - MRU - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RUR - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SLE - SLL - SOS - SRD - SSP - STD - STN - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - USN - USS - UYI - UYU - UYW - UZS - VED - VEF - VES - VND - VUV - WST - XAD - XAF - XAG - XAU - XBA - XBB - XBC - XBD - XCD - XCG - XDR - XOF - XPD - XPF - XPT - XSU - XTS - XUA - XXX - YER - ZAR - ZMW - ZWG - ZWL value: type: number description: Represents the amount in cents (amount/100). For example, 896.96 SEK is represented as 89696. description: The total amount paid or owed to the supplier/vendor, in the currency the supplier/vendor operates in. ExportItemLineV3: required: - accountingEntryLineId - lineAmount - netAmount type: object properties: account: $ref: '#/components/schemas/AccountV3' accountingEntryLineId: type: string description: ID of the specific line. format: uuid example: 00000000-0000-0000-0000-000000000000 lineAmount: $ref: '#/components/schemas/ExportItemLineAmountV3' netAmount: $ref: '#/components/schemas/ExportItemNetAmountV3' tags: type: array description: Tags are cost centres allocated to an export item. nullable: true items: $ref: '#/components/schemas/TagV3' tax: $ref: '#/components/schemas/TaxV3' description: An accounting entry is represented with either a single line or multiple lines that explain the details. So, if the accounting entry is split into multiple lines, each line has a unique ID. ExportItemAmountV3: required: - inSupplierCurrency - inWalletCurrency type: object properties: inSupplierCurrency: $ref: '#/components/schemas/MoneyModel' inWalletCurrency: $ref: '#/components/schemas/MoneyModel' description: Export item amount. PageOrder: type: string enum: - ASC - ASC_NULLS_FIRST - ASC_NULLS_LAST - DESC - DESC_NULLS_FIRST - DESC_NULLS_LAST securitySchemes: bearerAuth: type: http description: 'JWT Bearer token authentication. Include the token in the Authorization header as: `Bearer `' scheme: bearer bearerFormat: JWT basicAuth: type: http description: Basic HTTP authentication using API key. Use your API key as the username and leave the password empty. The credentials will be Base64 encoded automatically. scheme: basic