openapi: 3.0.1 info: title: App Marketplace accounting-entries Export Items (v2) 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 (v2) paths: /v2/export-items: get: tags: - Export Items (v2) summary: Get Export Items description: 'An export item = an accounting entry that has been transformed into an exportable entry. The required accounting and bookkeeping information is aggregated from an accounting entry to become an export item. Use this endpoint to retrieve a list of export items that have been selected for export. Please note that you can retrieve list of export items only from `pending` and `in_progress` export jobs.' operationId: getExportItemsV2 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/CursorPaginatedResponseExportItemV2' '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: CursorPaginatedResponseExportItemV2: required: - data - pagination type: object properties: data: type: array items: $ref: '#/components/schemas/ExportItemV2' pagination: $ref: '#/components/schemas/CursorPageInfo' 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 TagV2: required: - code - groupCode - id type: object properties: code: type: string description: This is the unique identifier of the tag allocated to the export item. groupCode: type: string description: This is the unique identifier of the tag group (a tag group is a collection of tags). id: type: string description: This is the 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 AccountV2: required: - id - name type: object properties: code: type: string description: The account code or number. nullable: true id: type: string description: This is the Pleo internal identifier of the account. format: uuid example: 00000000-0000-0000-0000-000000000000 identifier: type: string description: The internal account identifier in the accounting system. nullable: true name: type: string description: This is the name of the account as set on the Pleo UI. example: Meals and Entertainment description: This is the 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 VendorV2: 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/TaxId number of the Vendor description: The vendor associated with the accounting entry. ExportItemLineV2: required: - accountingEntryLineId - lineAmount - netAmount type: object properties: account: $ref: '#/components/schemas/AccountV2' accountingEntryLineId: type: string description: This is the ID of the specific line. format: uuid example: 00000000-0000-0000-0000-000000000000 lineAmount: $ref: '#/components/schemas/ExportItemAmount' netAmount: $ref: '#/components/schemas/ExportItemAmount' tags: type: array description: Tags are cost centres allocated to an export item. nullable: true items: $ref: '#/components/schemas/TagV2' tax: $ref: '#/components/schemas/TaxV2' 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. 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 ExportItemUserV2: required: - id - name type: object properties: code: type: string description: This would usually represent the employee code. nullable: true id: type: string description: This is the Pleo internal identifier of the user. format: uuid nullable: true 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 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' ExportItemV2: required: - _links - accountingEntryId - accountingEntryLines - additionalInformation - amount - companyId - date - type type: object properties: _links: $ref: '#/components/schemas/LinksResponse' accountingEntryId: type: string description: This is the 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/ExportItemLineV2' additionalInformation: $ref: '#/components/schemas/ExportItemAdditionalInformationV2' amount: $ref: '#/components/schemas/ExportItemAmount' bookkeeping: $ref: '#/components/schemas/BookkeepingV2' companyId: type: string description: Pleo company identifier this export item belongs to. format: uuid example: 00000000-0000-0000-0000-000000000000 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/ServicePeriodV2' subType: type: string description: Optional subtype for the export item, providing additional categorisation within the main type. nullable: true supplier: $ref: '#/components/schemas/SupplierV2' team: $ref: '#/components/schemas/TeamV2' teamCode: type: string description: Team code is an identifier assigned to an expense to categorize it or associate it with a specific team. nullable: true type: type: string description: This is the Pleo internal identifier assigned to the export item, based on the type of expense it is. For example, a specific identifier is assigned to a card_purchase accounting entry. enum: - card_purchase - card_invoice - out_of_pocket - mileage - per_diem - external_reimbursement - direct_reimbursement - invoice - invoice_payment - chargeback - refund - cashback - atm_withdrawal - wallet_topup - wallet_unload - personal_spend - fee user: $ref: '#/components/schemas/ExportItemUserV2' vendor: $ref: '#/components/schemas/VendorV2' TeamV2: 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: This is the Pleo internal identifier of the team. format: uuid example: 00000000-0000-0000-0000-000000000000 name: type: string description: This is the name of the team. example: Marketing description: Teams are assigned to an export item for categorisation or association with a specific team. 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 InvoiceInformationV2: 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: The invoice status. enum: - pending_approval - parsed - preparing - prepared - ready - rejected_by_approver - marked_as_paid - scheduled - payment_in_progress - paid - voided_by_user - rejected_by_user - failed_payment supplierBankAccount: $ref: '#/components/schemas/SupplierBankAccount' description: For an invoice, additional information related to the invoice is specified in this attribute. 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 BookkeepingV2: required: - method type: object properties: method: $ref: '#/components/schemas/BookkeepingMethodV2' description: Bookkeeping related configurations for an accounting entry. nullable: true BookkeepingMethodV2: type: string description: Specifies the type of bookkeeping system used for recording the accounting entry. enum: - none - journal - accounts_payable ExportItemAmount: required: - inSupplierCurrency - inWalletCurrency type: object properties: inSupplierCurrency: $ref: '#/components/schemas/MoneyModel' inWalletCurrency: $ref: '#/components/schemas/MoneyModel' description: Export item amount. ServicePeriodV2: 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 SupplierV2: type: object properties: account: type: string description: Supplier account code in the accounting system. nullable: true categoryCode: type: string description: This is the 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 2-letter 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: This is the tax identification of the supplier in their country of operation. nullable: true description: The supplier or merchant involved. nullable: true ExportItemAdditionalInformationV2: 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/InvoiceInformationV2' 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: This is an 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. 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. TaxV2: required: - amount - id - rate - type type: object properties: amount: $ref: '#/components/schemas/ExportItemAmount' code: type: string description: Tax code. nullable: true id: type: string description: This is the Pleo internal identifier of the tax code. format: uuid example: 00000000-0000-0000-0000-000000000000 rate: type: number description: Tax rate. This is represented in decimals and not the percentage. e.g. 20% tax rate would be 0.20. example: 0.2 type: type: string description: Tax type. enum: - inclusive - exclusive - reverse description: Tax details applicable to this accounting entry line. The tax details would usually either have the code or the identifier or both. nullable: true 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