title: List general ledger accounts path: /developer/v1/accounting/accounts description: No description request: none response: { data: { accounting_connection_id: string classification?: 'ANY' | 'ASSET' | 'CREDCARD' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'UNKNOWN' code?: string created_at: string /* date */ gl_account_category_info?: { id?: string name?: string ramp_id?: string } id?: string is_active: boolean name: string provider_name: string ramp_id: string updated_at?: string /* date */ }[] page: { next: string } } --- title: Upload general ledger accounts path: /developer/v1/accounting/accounts description: You can upload up to 500 general ledger accounts in an all-or-nothing fashion. If a general ledger accounts within a batch is malformed or violates a database constraint, the entire batch containing that account will be disregarded. To have a successful upload, please sanitize the data and ensure the general ledger accounts that you are trying to upload do not already exist on Ramp. If a general ledger account is already on Ramp but you want to update its attributes, please use the PATCH developer/v1/accounting/accounts/{id} endpoint instead. request: { accounting_connection_id?: string gl_accounts: { classification: 'ANY' | 'ASSET' | 'CREDCARD' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'UNKNOWN' code?: string id: string name: string }[] } response: none --- title: Delete a general ledger account path: /developer/v1/accounting/accounts/{gl_account_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch a general ledger account path: /developer/v1/accounting/accounts/{gl_account_id} description: No description request: none response: { accounting_connection_id: string classification?: 'ANY' | 'ASSET' | 'CREDCARD' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'UNKNOWN' code?: string created_at: string /* date */ gl_account_category_info?: { id?: string name?: string ramp_id?: string } id?: string is_active: boolean name: string provider_name: string ramp_id: string updated_at?: string /* date */ } --- title: Update a general ledger account path: /developer/v1/accounting/accounts/{gl_account_id} description: This endpoint can be used to update the name or code of a GL account; request: { accounting_connection_id?: string code?: string name?: string reactivate?: boolean } response: { accounting_connection_id: string classification?: 'ANY' | 'ASSET' | 'CREDCARD' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'UNKNOWN' code?: string created_at: string /* date */ gl_account_category_info?: { id?: string name?: string ramp_id?: string } id?: string is_active: boolean name: string provider_name: string ramp_id: string updated_at?: string /* date */ } --- title: Fetch all accounting connections for the current business path: /developer/v1/accounting/all-connections description: No description request: none response: { connections: { connection_type: 'API' | 'CSV' | 'DIRECT' created_at: string /* date */ id: string is_active: boolean is_ready_to_migrate: boolean last_linked_at: string /* date */ remote_provider_name: string settings: { reimbursement_sync_button_enabled: boolean transaction_accounting_vendor_creation_on_sync_enabled: boolean transaction_sync_button_enabled: boolean vendor_credits_enabled: boolean } status: 'failed_to_auth' | 'linked' | 'revoked' | 'unlinked' }[] } --- title: Post accounting coding selections to an object path: /developer/v1/accounting/codings description: No description request: { accounting_coding_selections: { accounting_field_id: string accounting_field_option_id?: string free_form_text?: string }[] object_id: string object_type: 'TRANSACTION' } response: none --- title: Disconnect an accounting connection path: /developer/v1/accounting/connection description: This endpoint only allows disconnecting API based connections. request: none response: none --- title: Fetch the current active accounting connection path: /developer/v1/accounting/connection description: This endpoint is now deprecated. Please use the `/all-connections` endpoint instead here. request: none response: { connection_type: 'API' | 'CSV' | 'DIRECT' created_at: string /* date */ id: string is_active: boolean is_ready_to_migrate: boolean last_linked_at: string /* date */ remote_provider_name: string settings: { reimbursement_sync_button_enabled: boolean transaction_accounting_vendor_creation_on_sync_enabled: boolean transaction_sync_button_enabled: boolean vendor_credits_enabled: boolean } status: 'failed_to_auth' | 'linked' | 'revoked' | 'unlinked' } | { message?: string } --- title: Register a new API based accounting connection path: /developer/v1/accounting/connection description: A connection is required in order to use our accounting API functionality. If a Universal CSV connection already exists, it will be upgraded to an API based connection. request: { reactivate?: boolean remote_provider_name: string settings?: { reimbursement_sync_button_enabled?: boolean transaction_accounting_vendor_creation_on_sync_enabled?: boolean transaction_sync_button_enabled?: boolean vendor_credits_enabled?: boolean } } response: none --- title: Fetch an accounting connection by ID path: /developer/v1/accounting/connection/{connection_id} description: No description request: none response: { connection_type: 'API' | 'CSV' | 'DIRECT' created_at: string /* date */ id: string is_active: boolean is_ready_to_migrate: boolean last_linked_at: string /* date */ remote_provider_name: string settings: { reimbursement_sync_button_enabled: boolean transaction_accounting_vendor_creation_on_sync_enabled: boolean transaction_sync_button_enabled: boolean vendor_credits_enabled: boolean } status: 'failed_to_auth' | 'linked' | 'revoked' | 'unlinked' } --- title: Update an accounting connection path: /developer/v1/accounting/connection/{connection_id} description: This endpoint is restricted to Accounting API based connections. request: { settings?: { reimbursement_sync_button_enabled?: boolean transaction_accounting_vendor_creation_on_sync_enabled?: boolean transaction_sync_button_enabled?: boolean vendor_credits_enabled?: boolean } } response: { connection_type: 'API' | 'CSV' | 'DIRECT' created_at: string /* date */ id: string is_active: boolean is_ready_to_migrate: boolean last_linked_at: string /* date */ remote_provider_name: string settings: { reimbursement_sync_button_enabled: boolean transaction_accounting_vendor_creation_on_sync_enabled: boolean transaction_sync_button_enabled: boolean vendor_credits_enabled: boolean } status: 'failed_to_auth' | 'linked' | 'revoked' | 'unlinked' } --- title: Reactivate a previously unlinked accounting connection path: /developer/v1/accounting/connection/{connection_id}/reactivate description: This endpoint allows reactivating a previously disconnected accounting connection by changing its status back to linked. This preserves all previous accounting field configurations and settings. The business must not have any other active accounting connections. request: none response: { connection_type: 'API' | 'CSV' | 'DIRECT' created_at: string /* date */ id: string is_active: boolean is_ready_to_migrate: boolean last_linked_at: string /* date */ remote_provider_name: string settings: { reimbursement_sync_button_enabled: boolean transaction_accounting_vendor_creation_on_sync_enabled: boolean transaction_sync_button_enabled: boolean vendor_credits_enabled: boolean } status: 'failed_to_auth' | 'linked' | 'revoked' | 'unlinked' } --- title: List options for a given custom accounting field path: /developer/v1/accounting/field-options description: No description request: none response: { data: { accounting_connection_id: string code?: string created_at?: string /* date */ display_name?: string id?: string is_active?: boolean provider_name: string ramp_id?: string updated_at?: string /* date */ value?: string visibility?: 'HIDDEN' | 'VISIBLE' }[] page: { next: string } } --- title: Upload new options path: /developer/v1/accounting/field-options description: You can upload up to 500 new field options for a given custom accounting field in an all-or-nothing fashion. If a field option within a batch is malformed or violates a database constraint, the entire batch containing that field option will be disregarded. To have a successful upload, please sanitize the data and ensure the field options that you are trying to upload do not already exist on Ramp. If a field option is already on Ramp but you want to update its attributes, please use the PATCH developer/v1/accounting/field-options/{id} endpoint instead. request: { accounting_connection_id?: string field_id: string options: { code?: string display_name?: string entity_remote_ids?: string[] id: string value: string }[] } response: none --- title: Delete a custom accounting field option path: /developer/v1/accounting/field-options/{field_option_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch a custom accounting field option path: /developer/v1/accounting/field-options/{field_option_id} description: No description request: none response: { accounting_connection_id: string code?: string created_at?: string /* date */ display_name?: string id?: string is_active?: boolean provider_name: string ramp_id?: string updated_at?: string /* date */ value?: string visibility?: 'HIDDEN' | 'VISIBLE' } --- title: Update a custom accounting field option path: /developer/v1/accounting/field-options/{field_option_id} description: No description request: { code?: string display_name?: string entity_remote_ids?: string[] reactivate?: boolean value?: string visibility?: 'HIDDEN' | 'VISIBLE' } response: { accounting_connection_id: string code?: string created_at?: string /* date */ display_name?: string id?: string is_active?: boolean provider_name: string ramp_id?: string updated_at?: string /* date */ value?: string visibility?: 'HIDDEN' | 'VISIBLE' } --- title: Update a custom accounting field option path: /developer/v1/accounting/field-options/{field_option_id} description: No description request: { code?: string display_name?: string entity_remote_ids?: string[] reactivate?: boolean value?: string visibility?: 'HIDDEN' | 'VISIBLE' } response: { accounting_connection_id: string code?: string created_at?: string /* date */ display_name?: string id?: string is_active?: boolean provider_name: string ramp_id?: string updated_at?: string /* date */ value?: string visibility?: 'HIDDEN' | 'VISIBLE' } --- title: List custom accounting fields path: /developer/v1/accounting/fields description: No description request: none response: { data: { accounting_connection_id: string created_at?: string /* date */ display_name: string id?: string input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active?: boolean is_required_for: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name?: string provider_name: string ramp_id?: string updated_at?: string /* date */ }[] page: { next: string } } --- title: Create a new custom accounting field path: /developer/v1/accounting/fields description: If a custom field with the same id already exists on Ramp, then that existing one will be returned instead of creating a new one; If the existing custom field is inactive, it will be reactivated. If you want to update the existing custom field, please use the PATCH developer/v1/accounting/fields/{id} endpoint instead. request: { accounting_connection_id?: string display_name?: string id: string input_type: 'BOOLEAN' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_required_for?: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name: string } response: none --- title: Delete a custom accounting field path: /developer/v1/accounting/fields/{field_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch a custom accounting field path: /developer/v1/accounting/fields/{field_id} description: No description request: none response: { accounting_connection_id: string created_at?: string /* date */ display_name: string id?: string input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active?: boolean is_required_for: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name?: string provider_name: string ramp_id?: string updated_at?: string /* date */ } --- title: Update a custom accounting field path: /developer/v1/accounting/fields/{field_id} description: No description request: { accounting_connection_id?: string display_name?: string is_splittable?: boolean name?: string } response: { accounting_connection_id: string created_at?: string /* date */ display_name: string id?: string input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active?: boolean is_required_for: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name?: string provider_name: string ramp_id?: string updated_at?: string /* date */ } --- title: Delete inventory item accounting field path: /developer/v1/accounting/inventory-item description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch inventory item accounting field path: /developer/v1/accounting/inventory-item description: Returns the inventory item accounting field for the current accounting connection. request: none response: { accounting_connection_id: string display_name: string id: string name: string ramp_id: string } --- title: Update inventory item accounting field path: /developer/v1/accounting/inventory-item description: No description request: { accounting_connection_id?: string display_name?: string name?: string } response: { accounting_connection_id: string display_name: string id: string name: string ramp_id: string } --- title: Create a new inventory item accounting field path: /developer/v1/accounting/inventory-item description: There can only be one active inventory item accounting field per accounting connection. request: { accounting_connection_id?: string display_name?: string name: string } response: none --- title: List inventory item options path: /developer/v1/accounting/inventory-item/options description: No description request: none response: { data: { accounting_connection_id: string gl_account_id: string id: string is_active: boolean name: string ramp_id: string }[] page: { next: string } } --- title: Upload inventory item options path: /developer/v1/accounting/inventory-item/options description: There must be an active inventory item accounting field for the accounting connection. request: { accounting_connection_id?: string options: { gl_account_id?: string id: string name: string }[] } response: none --- title: Delete an inventory item option path: /developer/v1/accounting/inventory-item/options/{option_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Update an inventory item option path: /developer/v1/accounting/inventory-item/options/{option_id} description: No description request: { accounting_connection_id?: string gl_account_id?: string name?: string reactivate?: boolean } response: { accounting_connection_id: string gl_account_id: string id: string is_active: boolean name: string ramp_id: string } --- title: Upload new options for a Ramp-only field path: /developer/v1/accounting/ramp-field-options description: No description request: { accounting_connection_id: string field_id: string options: { code?: string display_name?: string id: string value: string }[] } response: none --- title: Delete a Ramp-only field option path: /developer/v1/accounting/ramp-field-options/{field_option_id} description: No description request: { accounting_connection_id: string } response: none --- title: Update a Ramp-only field option path: /developer/v1/accounting/ramp-field-options/{field_option_id} description: No description request: { accounting_connection_id: string code?: string display_name?: string reactivate?: boolean value?: string visibility?: 'HIDDEN' | 'VISIBLE' } response: { accounting_connection_id: string code?: string created_at?: string /* date */ display_name?: string id?: string is_active?: boolean provider_name: string ramp_id?: string updated_at?: string /* date */ value?: string visibility?: 'HIDDEN' | 'VISIBLE' } --- title: List Ramp-only accounting fields path: /developer/v1/accounting/ramp-fields description: No description request: none response: { data: { accounting_connection_id: string created_at?: string /* date */ display_name: string id?: string input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active?: boolean is_required_for: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name?: string provider_name: string ramp_id?: string updated_at?: string /* date */ }[] page: { next: string } } --- title: Create a Ramp-only accounting field path: /developer/v1/accounting/ramp-fields description: No description request: { accounting_connection_id?: string display_name?: string id: string input_type: 'BOOLEAN' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_required_for?: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name: string } response: none --- title: Delete a Ramp-only accounting field path: /developer/v1/accounting/ramp-fields/{field_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch a Ramp-only accounting field path: /developer/v1/accounting/ramp-fields/{field_id} description: No description request: none response: { accounting_connection_id: string created_at?: string /* date */ display_name: string id?: string input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active?: boolean is_required_for: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name?: string provider_name: string ramp_id?: string updated_at?: string /* date */ } --- title: Update a Ramp-only accounting field path: /developer/v1/accounting/ramp-fields/{field_id} description: No description request: { accounting_connection_id?: string display_name?: string is_splittable?: boolean name?: string } response: { accounting_connection_id: string created_at?: string /* date */ display_name: string id?: string input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active?: boolean is_required_for: 'BILL' | 'BILL_PAYMENT' | 'INVOICE' | 'PURCHASE_ORDER' | 'REIMBURSEMENT' | 'SPEND_PROGRAM' | 'TRANSACTION' | 'TRANSFER_LEDGER_ENTRY_MAPPING' | 'VENDOR_CREDIT'[] is_splittable?: boolean name?: string provider_name: string ramp_id?: string updated_at?: string /* date */ } --- title: Post ready to sync status path: /developer/v1/accounting/ready-to-sync description: This endpoint allows customers to mark a list of objects as ready to sync by their object IDs. request: { object_ids: string[] object_type: 'TRANSACTION' } response: none --- title: Post sync status path: /developer/v1/accounting/syncs description: This endpoint allows customers to notify Ramp of a list of sync results. An idempotency key is required to ensure that subsequent requests are properly handled. request: { failed_syncs?: { error: { message: string } id: string }[] idempotency_key: string successful_syncs?: { deep_link_url?: string id: string reference_id: string }[] sync_type: 'BILL_PAYMENT_SYNC' | 'BILL_SYNC' | 'BROKERAGE_ORDER_SYNC' | 'REIMBURSEMENT_SYNC' | 'STATEMENT_CREDIT_SYNC' | 'TRANSACTION_SYNC' | 'TRANSFER_SYNC' | 'WALLET_TRANSFER_SYNC' } response: none --- title: Delete tax code accounting field path: /developer/v1/accounting/tax/code description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch tax code accounting field path: /developer/v1/accounting/tax/code description: Returns the tax code accounting field for the current accounting connection. request: none response: { accounting_connection_id: string display_name: string id: string name: string ramp_id: string } --- title: Update tax code accounting field path: /developer/v1/accounting/tax/code description: No description request: { accounting_connection_id?: string display_name?: string name?: string } response: { accounting_connection_id: string display_name: string id: string name: string ramp_id: string } --- title: Create a new tax code accounting field path: /developer/v1/accounting/tax/code description: There can only be one active tax code accounting field per accounting connection. request: { accounting_connection_id?: string display_name?: string name: string } response: none --- title: List tax code options path: /developer/v1/accounting/tax/code/options description: No description request: none response: { data: { accounting_connection_id: string id: string is_active: boolean name: string ramp_id: string tax_rate_ids: string[] }[] page: { next: string } } --- title: Upload tax code options path: /developer/v1/accounting/tax/code/options description: There must be an active tax code accounting field for the accounting connection. request: { accounting_connection_id?: string options: { id: string name: string tax_rate_ids?: string[] }[] } response: none --- title: Delete a tax code option path: /developer/v1/accounting/tax/code/options/{option_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Update a tax code option path: /developer/v1/accounting/tax/code/options/{option_id} description: No description request: { accounting_connection_id?: string name?: string tax_rate_ids?: string[] } response: { accounting_connection_id: string id: string is_active: boolean name: string ramp_id: string tax_rate_ids: string[] } --- title: List tax rates path: /developer/v1/accounting/tax/rates description: No description request: none response: { data: { accounting_connection_id: string accounting_gl_account_id: string id: string name: string ramp_id: string rate: string }[] page: { next: string } } --- title: Upload tax rates path: /developer/v1/accounting/tax/rates description: You can upload up to 500 tax rates in an all-or-nothing fashion. If a tax rate within a batch is malformed or violates a database constraint, the entire batch will be disregarded. To have a successful upload, please sanitize the data and ensure the tax rates that you are trying to upload do not already exist on Ramp. request: { accounting_connection_id?: string tax_rates: { accounting_gl_account_id?: string id: string name: string rate: string | number }[] } response: none --- title: Delete a tax rate path: /developer/v1/accounting/tax/rates/{tax_rate_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Update a tax rate path: /developer/v1/accounting/tax/rates/{tax_rate_id} description: No description request: { accounting_connection_id?: string accounting_gl_account_id?: string name?: string rate?: string | number } response: { accounting_connection_id: string accounting_gl_account_id: string id: string name: string ramp_id: string rate: string } --- title: List vendors path: /developer/v1/accounting/vendors description: No description request: none response: { data: { accounting_connection_id: string code?: string created_at: string /* date */ id?: string is_active: boolean is_synced: boolean name: string provider_name: string ramp_id: string updated_at: string /* date */ vendor_category_info?: { id?: string name?: string ramp_id?: string } }[] page: { next: string } } --- title: Upload vendors path: /developer/v1/accounting/vendors description: You can upload up to 500 vendors in an all-or-nothing fashion. If a vendors within a batch is malformed or violates a database constraint, the entire batch containing that vendors will be disregarded. To have a successful upload, please sanitize the data and ensure the vendors that you are trying to upload do not already exist on Ramp. If a vendors is already on Ramp but you want to update its attributes, please use the PATCH developer/v1/accounting/vendors/{id} endpoint instead. request: { accounting_connection_id?: string vendors: { code?: string id: string name: string }[] } response: none --- title: Delete a vendor path: /developer/v1/accounting/vendors/{vendor_id} description: No description request: { accounting_connection_id?: string } response: none --- title: Fetch a vendor path: /developer/v1/accounting/vendors/{vendor_id} description: No description request: none response: { accounting_connection_id: string code?: string created_at: string /* date */ id?: string is_active: boolean is_synced: boolean name: string provider_name: string ramp_id: string updated_at: string /* date */ vendor_category_info?: { id?: string name?: string ramp_id?: string } } --- title: Update a vendor path: /developer/v1/accounting/vendors/{vendor_id} description: No description request: { accounting_connection_id?: string code?: string name?: string reactivate?: boolean } response: { accounting_connection_id: string code?: string created_at: string /* date */ id?: string is_active: boolean is_synced: boolean name: string provider_name: string ramp_id: string updated_at: string /* date */ vendor_category_info?: { id?: string name?: string ramp_id?: string } } --- title: Fetch a financing application path: /developer/v1/applications description: Since each business can only have one active financing application, this endpoint will only ever return a single application. request: none response: { applicant: { email: string first_name: string last_name: string phone?: string } beneficial_owners: { address?: { apt_suite?: string city?: string country?: string postal_code?: string state?: string street_address?: string } birth_date?: string email?: string first_name?: string last_name?: string passport_last_4?: string phone?: string ssn_last_4?: string title?: string }[] business: { address?: { apt_suite?: string city?: string postal_code?: string state?: string street_address?: string } business_description?: string business_name_dba?: string business_name_legal?: string business_name_on_card?: string business_website?: string incorporation?: { date_of_incorporation?: string /* date */ ein_number?: string entity_type?: 'COOPERATIVE' | 'CORPORATION' | 'LLC' | 'NON_PROFIT_CORPORATION' | 'OTHER' | 'PARTNERSHIP' | 'SOLE_PROPRIETORSHIP' state_of_incorporation?: string } phone?: string } controlling_officer: { address?: { apt_suite?: string city?: string country?: string postal_code?: string state?: string street_address?: string } birth_date?: string email?: string first_name?: string is_beneficial_owner?: boolean last_name?: string passport_last_4?: string phone?: string ssn_last_4?: string title?: string } financial_details: { estimated_monthly_ap_spend_amount?: number estimated_monthly_spend_amount?: number } id: string status: 'APPROVED' | 'FOLLOW_UPS_REQUIRED' | 'IN_REVIEW' | 'REJECTED' | 'STARTED' | 'WITHDRAWN' } --- title: Create a financing application path: /developer/v1/applications description: This endpoint will create a new business for the applicant and email them with instructions to sign up and continue the application. If the applicant email already exists in Ramp, an invitation email will be re-sent if the business is still in the application stage. If the business is already approved, this operation will be a no-op. Note this endpoint returns success regardless of whether the email exists in Ramp. request: { applicant: { email: string first_name: string last_name: string phone?: string } beneficial_owners?: { address?: { apt_suite?: string city?: string country?: string postal_code?: string state?: string street_address?: string } birth_date?: string email?: string first_name?: string last_name?: string passport_last_4?: string phone?: string ssn_last_4?: string title?: string }[] business?: { address?: { apt_suite?: string city?: string postal_code?: string state?: string street_address?: string } business_description?: string business_name_dba?: string business_name_legal?: string business_name_on_card?: string business_website?: string incorporation?: { date_of_incorporation?: string /* date */ ein_number?: string entity_type?: 'COOPERATIVE' | 'CORPORATION' | 'LLC' | 'NON_PROFIT_CORPORATION' | 'OTHER' | 'PARTNERSHIP' | 'SOLE_PROPRIETORSHIP' state_of_incorporation?: string } phone?: string } controlling_officer?: { address?: { apt_suite?: string city?: string country?: string postal_code?: string state?: string street_address?: string } birth_date?: string email?: string first_name?: string is_beneficial_owner?: boolean last_name?: string passport_last_4?: string phone?: string ssn_last_4?: string title?: string } financial_details?: { estimated_monthly_ap_spend_amount?: number estimated_monthly_spend_amount?: number } oauth_authorize_params?: { redirect_uri: string state: string } } response: none --- title: Get audit log events path: /developer/v1/audit-logs/events description: No description request: none response: { data: { actor_details: { actor_type: 'policy_agent' | 'ramp' | 'spend_request_agent' | 'user' } | { actor_type: 'policy_agent' | 'ramp' | 'spend_request_agent' | 'user' } | { actor_type: 'policy_agent' | 'ramp' | 'spend_request_agent' | 'user' id: string } | Record actor_id: string actor_type: 'policy_agent' | 'ramp' | 'spend_request_agent' | 'user' additional_details: string event_details: { references: { label: string resource_name: 'Approvals' | 'Bill payment' | 'Bill template' | 'Card' | 'Cash Manager recommendation' | 'Forecast custom input' | 'Fund request' | 'Investment account' | 'Managed portfolio transfer' | 'Payment run' | 'Reimbursement' | 'SFTP Configurations' | 'Separation of duties' | 'Spend allocation' | 'Spend event' | 'Transaction' | 'Travel (Booking request)' | 'Travel (Trip)' | 'Treasury account' | 'User' | 'Vendor / Merchant' | 'WBX Policy' | 'WBX Request' | 'Wallet automation policy' | 'Wallet transfer' | 'Workflow (Base)' | 'Workflow' url: string }[] } event_time: string /* date */ event_type: 'ABK agent blocked on user' | 'ABK agent review requested' | 'ABK agent schedule failed' | 'ABK agent started' | 'AI custom field config executed' | 'Account closed' | 'Account details previewed' | 'Account details viewed' | 'Account document downloaded' | 'Account number deleted' | 'Account number generated' | 'Account number renamed' | 'Account opened' | 'Account renamed' | 'Accounting ai auto mark ready' | 'Accounting coding rules updated' | 'Accounting fields updated' | 'Accounting provider access changed' | 'Accounting settings updated' | 'Accounting split templates updated' | 'Activated card' | 'Added bill field' | 'Added card acceptance policy' | 'Added procurement field' | 'Added user to funds' | 'Added vendor field' | 'Admin changed email' | 'Admin changed phone' | 'Agent access request resolved' | 'Agent access requested' | 'Agent created' | 'Agent current version changed' | 'Agent permissions updated' | 'Agent version created' | 'Agent version published' | 'Approval chain updated' | 'Approval step added' | 'Approval step approved' | 'Approval step rejected' | 'Approval step skipped' | 'Approval step terminated' | 'Approved by manager' | 'Approved card edit request with modifications' | 'Approved card edit request' | 'Approved funds edit request with modifications' | 'Approved funds edit request' | 'Approved new card request with modifications' | 'Approved new card request' | 'Approved procurement change request' | 'Approved request for new funds with modifications' | 'Approved request for new funds' | 'Ascenda credit redeemed' | 'Attendee split' | 'Authorization letter downloaded' | 'Automation deleted' | 'Bank account ACH details viewed' | 'Bank account sensitive details viewed' | 'Bank account updated' | 'Bank letter downloaded' | 'Bill linked to PO' | 'Bill linked to contract' | 'Bill linked' | 'Bill pay AP coworker questions answered' | 'Bill pay accepted sync for bank account from vendor network' | 'Bill pay accepted sync for vendor card acceptance policy from vendor network' | 'Bill pay accepted sync for vendor check mailing address from vendor network' | 'Bill pay accepted sync for vendor information from vendor network' | 'Bill pay accepted sync for vendor tax info from vendor network' | 'Bill pay accounting manual user action' | 'Bill pay accounting sync triggered' | 'Bill pay approval policy updated' | 'Bill pay automatic card payment no longer eligible' | 'Bill pay automatic card payment' | 'Bill pay bank account updated' | 'Bill pay batch payment initiated' | 'Bill pay business vendor unlinked from vendor network' | 'Bill pay card delivery' | 'Bill pay check address update' | 'Bill pay check tracking update' | 'Bill pay deleted bill' | 'Bill pay delivered payment' | 'Bill pay dismissed fraud alert' | 'Bill pay edited payee address' | 'Bill pay edited payment method' | 'Bill pay initiated payment refund' | 'Bill pay mailed check payment' | 'Bill pay marked as paid' | 'Bill pay matched transaction to bill' | 'Bill pay payment failed' | 'Bill pay payment posted' | 'Bill pay recurrence info changed for recurring series' | 'Bill pay rejected PDR bank account ownership match' | 'Bill pay rejected sync for bank account from vendor network' | 'Bill pay rejected sync for vendor card acceptance policy from vendor network' | 'Bill pay rejected sync for vendor check mailing address from vendor network' | 'Bill pay rejected sync for vendor information from vendor network' | 'Bill pay rejected sync for vendor tax info from vendor network' | 'Bill pay retried payment' | 'Bill pay returned funds' | 'Bill unlinked from PO' | 'Bill unlinked from contract' | 'Bill unlinked' | 'Billing config updated' | 'Blank canvas workflow execution updated' | 'Blank canvas workflow pause status updated' | 'Booking request approval policy updated' | 'Brokerage order updated' | 'Business bank account added' | 'Business bank account changed' | 'Business bank account removed' | 'Cancel revision request' | 'Cancelled by customer' | 'Cancelled by ramp' | 'Card delivered' | 'Card payment initiated (audit)' | 'Card payment initiated' | 'Cash Manager settings updated' | 'Cash agent recommendation updated' | 'Cash manager recommendation reviewed' | 'Cashback redeemed' | 'Change order workflow restarted due to change order request modification' | 'Changed bank account on bill' | 'Changed card holder' | 'Changed funds user' | 'Checking Account terms accepted' | 'Combined contracts with this contract' | 'Communication sent' | 'Complete revision' | 'Counterparty created' | 'Counterparty details changed' | 'Created accounting split line item' | 'Created card' | 'Created fund from purchase order' | 'Created merchant error' | 'Created unrecognized charge' | 'Created' | 'Debit settings updated' | 'Deleted bill field' | 'Deleted card acceptance policy' | 'Deleted procurement field' | 'Deleted vendor field' | 'Deleted' | 'Demoted co-owner to member' | 'Detached funds from spend program' | 'Document labeled' | 'Document updated' | 'Docusign envelope updated' | 'Draft vendor created' | 'Draft vendor deleted' | 'Draft vendor published' | 'Edited bill field' | 'Edited card acceptance policy' | 'Edited contract tracking setting' | 'Edited custom field' | 'Edited procurement field' | 'Edited spend intent' | 'Edited tin' | 'Edited vendor field' | 'Edited wallet automation' | 'Email updated' | 'Emailed purchase order' | 'Exception given from dispute resolution' | 'Exception given from repayment' | 'Exception request approved' | 'Exception request cancelled' | 'Exception request denied' | 'Exception requested' | 'External agent key created' | 'External agent key revoked' | 'External agent key updated' | 'External ticket created asana' | 'External ticket created jira' | 'External ticket created linear' | 'External ticket created zendesk' | 'Flexible limits default changed' | 'Forecast custom input added' | 'Forecast custom input deleted' | 'Forecast custom input updated' | 'Forecast settings updated' | 'Funds activated from reissued virtual card' | 'Generated renewal brief for contract' | 'HRIS integration setting updated' | 'Identity locked' | 'Identity unlocked' | 'Impersonation upgraded to read-write' | 'Initiated digital wallet provisioning (audit)' | 'International payment initiated' | 'Investment Account closed' | 'Investment Account opened' | 'Investment Account renamed' | 'Investment Account terms accepted' | 'Investment Account updated' | 'Ironclad workflow updated' | 'Issued funds' | 'Item receipt accounting sync' | 'Large transfer initiated' | 'Linked funds to spend program' | 'Locked access to funds' | 'Locked card' | 'Managed portfolio transfer updated' | 'Manager updated' | 'Mark as accidental' | 'Mass payout initiated' | 'Matched purchase order to transaction' | 'Matched transaction to purchase order' | 'Memo updated' | 'Merged vendors' | 'Name updated hris' | 'Name updated' | 'New virtual card issued for currency migration' | 'Notification sent due to change order request modification' | 'Notification sent due to purchase order request modification' | 'Passkey created' | 'Passkey deleted' | 'Password reset required' | 'Password reset user' | 'Password updated user' | 'Payback cancelled' | 'Payback payment failed' | 'Payback payment manually paid' | 'Payback payment retried' | 'Payback payment succeeded' | 'Payback request approved by user' | 'Payback request cancelled by manager' | 'Payback request rejected by user' | 'Payback requested by manager' | 'Payback triggered by user' | 'Payee linked to accounting' | 'Payment approval overridden' | 'Payment run action' | 'Payment run updated' | 'Payment to new counterparty' | 'Payment updated' | 'Phone updated' | 'Points exchange redeemed' | 'Policy agent suggestion feedback submitted' | 'Post spend approval policy updated' | 'Procurement unmatched purchase order from transaction' | 'Procurement unmatched transaction from purchase order' | 'Procurement agent run completed' | 'Procurement change request approval policy updated' | 'Procurement send global form' | 'Procurement submit global form response' | 'Procurement vendor onboarding submitted' | 'Procurement vendor onboarding triggered' | 'Promoted member to co-owner' | 'Purchase order accounting sync created vendor' | 'Purchase order accounting sync failed' | 'Purchase order accounting sync success' | 'Question created' | 'Question deleted' | 'Question updated' | 'RFX clarification answered' | 'RFX clarification question submitted' | 'RFX close date changed' | 'RFX closed' | 'RFX collaborator added' | 'RFX collaborator removed' | 'RFX created' | 'RFX graded' | 'RFX publish approval rejected' | 'RFX published' | 'RFX response deadline changed' | 'RFX response redacted' | 'RFX response submitted' | 'RFX returned to draft' | 'RFX submitted for publish approval' | 'RFX vendor accepted' | 'RFX vendor added' | 'RFX vendor contact changed' | 'RFX vendor declined' | 'RFX vendor removed' | 'Receipt created' | 'Receipt deleted' | 'Receipt downloaded for transfer' | 'Receipt matched' | 'Refund cleared' | 'Refund paid' | 'Reimbursement bank account updated' | 'Reimbursement field changed' | 'Reimbursement from user' | 'Reimbursement policy agent suggestion feedback submitted' | 'Reimbursement submitted' | 'Reimbursement to user' | 'Reimbursements disabled' | 'Reimbursements enabled' | 'Reissued card' | 'Rejected card edit request' | 'Rejected funds edit request' | 'Rejected new card request' | 'Rejected procurement change request' | 'Rejected request for new funds' | 'Reminded to approve items' | 'Reminded to upload missing items' | 'Removed user from funds' | 'Request revision' | 'Requested an edit to these funds' | 'Requested new card' | 'Requested new funds' | 'Resolved by ramp' | 'Review needed' | 'Reviewed by ramp' | 'Role updated' | 'SFTP Authentication Failed' | 'SFTP Authentication IP and Username Matched' | 'SFTP Configuration Changed' | 'SaaS fee redeemed' | 'Separation of duties disabled' | 'Separation of duties enabled' | 'Set member limit on shared fund' | 'Shortfall coverage updated' | 'Sourcing event created' | 'Sourcing event status changed' | 'Spend allocation change request approval policy updated' | 'Spend approved' | 'Spend outcome recorded' | 'Spend rejected' | 'Spend request approval policy updated' | 'Status updated' | 'Strict MFA setting updated' | 'Submitted procurement change request' | 'Tango gift card redeemed' | 'Temporarily unlocked access to funds' | 'Terminated card' | 'Terminated funds' | 'Test' | 'Third party risk management vendor review updated' | 'This contract was combined with another contract' | 'Ticket assignee updated' | 'Ticket status updated' | 'Totp authenticator created' | 'Totp authenticator deleted' | 'Totp authenticator updated' | 'Transaction approval policy updated' | 'Transaction cleared' | 'Transaction entity changed' | 'Transaction missing item reminder event' | 'Transaction paid' | 'Transaction receipt updated' | 'Transaction submission policy exemption event' | 'Transfer created' | 'Transfer initiated' | 'Transferred ownership of funds' | 'Travel policy selection updated' | 'Trip changed' | 'Undid marking transaction as accidental' | 'Unlocked access to funds' | 'Unlocked card temporarily' | 'Unlocked card' | 'Unmark as accidental' | 'Updated card program' | 'Updated card' | 'Updated funds' | 'Updated spend program' | 'User accepted invite' | 'User assigned by external firm' | 'User assigned through external firm merge' | 'User created' | 'User deactivated' | 'User deleted' | 'User invited' | 'User locked' | 'User logged out of all sessions' | 'User logged out' | 'User login' | 'User previewed' | 'User reactivated' | 'User undeleted' | 'User unlocked' | 'Vendor Network updates enabled' | 'Vendor added to group' | 'Vendor awarded' | 'Vendor credit action' | 'Vendor hold released' | 'Vendor imported from erp' | 'Vendor management vendor added to managed list' | 'Vendor management vendor removed from managed list' | 'Vendor management agreement deleted document' | 'Vendor management agreement deleted' | 'Vendor management agreement linked document' | 'Vendor management agreement linked purchase order' | 'Vendor management agreement notification type switched' | 'Vendor management agreement status changed' | 'Vendor management agreement unlinked document' | 'Vendor management agreement unlinked purchase order' | 'Vendor management agreement uploaded document' | 'Vendor management edited agreement field' | 'Vendor management expansion request status changed' | 'Vendor management vendor network invite sent' | 'Vendor payment approval policy updated' | 'Vendor placed on hold' | 'Vendor profile access created' | 'Vendor profile access denied' | 'Vendor profile access edited' | 'Vendor profile access email sent' | 'Vendor profile access requested' | 'Vendor profile access revoked' | 'Vendor profile all documents downloaded' | 'Vendor profile document downloaded' | 'Vendor removed from group' | 'Vendor sync failure' | 'Viewed sensitive card details' | 'Violation from manager' | 'Violation from rule' | 'Violation from user' | 'Virtual card reissued' | 'Voided check downloaded' | 'WBX approval approved' | 'WBX approval attachment added' | 'WBX approval attachment removed' | 'WBX approval fields updated' | 'WBX approval opened' | 'WBX approval rejected' | 'WBX approver approved' | 'WBX approver rejected' | 'WBX policy created' | 'WBX policy deleted' | 'WBX policy draft discarded' | 'WBX policy draft published' | 'WBX policy draft started' | 'WBX policy renamed' | 'WBX policy workflow generated from draft' | 'WBX request admin approved entire workflow' | 'WBX request archived' | 'WBX request attachment added' | 'WBX request attachment removed' | 'WBX request created' | 'WBX request deleted' | 'WBX request fields updated' | 'WBX request submitted' | 'Wallet redeemed' | 'Workflow restarted due to purchase order request modification' id: string primary_reference: { id: string label: string resource_name: 'Approvals' | 'Bill payment' | 'Bill template' | 'Card' | 'Cash Manager recommendation' | 'Forecast custom input' | 'Fund request' | 'Investment account' | 'Managed portfolio transfer' | 'Payment run' | 'Reimbursement' | 'SFTP Configurations' | 'Separation of duties' | 'Spend allocation' | 'Spend event' | 'Transaction' | 'Travel (Booking request)' | 'Travel (Trip)' | 'Treasury account' | 'User' | 'Vendor / Merchant' | 'WBX Policy' | 'WBX Request' | 'Wallet automation policy' | 'Wallet transfer' | 'Workflow (Base)' | 'Workflow' url: string } user_details: { actor_type: 'policy_agent' | 'ramp' | 'spend_request_agent' | 'user' id: string } }[][] page: { next: string } } --- title: List bank accounts path: /developer/v1/bank-accounts description: No description request: none response: { data: { account_name: string account_number_last_four: string financial_institution_name: string id: string }[] page: { next: string } } --- title: Get bank account details path: /developer/v1/bank-accounts/{bank_account_id} description: No description request: none response: { account_name: string account_number_last_four: string financial_institution_name: string id: string } --- title: List bills path: /developer/v1/bills description: No description request: none response: { data: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } applied_vendor_credits: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string }[] approval_status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' archived_at: string /* date */ bill_owner: { first_name?: string id: string last_name?: string } created_at: string /* date */ deep_link_url?: string draft_bill_created_at: string /* date */ draft_bill_id: string due_at: string /* date */ enable_accounting_sync?: boolean entity_id: string fx_conversion_rate: string id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } item_receipt_line_item_ids: string[] memo?: string purchase_order_line_item_id: string quantity: number unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] invoice_number?: string invoice_urls: string[] issued_at: string /* date */ item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } item_receipt_line_item_ids: string[] memo?: string purchase_order_line_item_id: string }[] memo?: string paid_at?: string /* date */ payment: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } customer_friendly_payment_id: string details: ApiCardPaymentDetailsResource | ApiManualPaymentDetailsResource | ApiVendorPaymentDetailsResource effective_date: string /* date */ id: string payment_date: string /* date */ payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' trace_id: { descriptor?: string trace_id?: string } } posting_date?: string /* date */ purchase_order_id?: string remote_id?: string status: 'OPEN' | 'PAID' status_summary: 'APPROVAL_PENDING' | 'APPROVAL_REJECTED' | 'ARCHIVED' | 'AWAITING_RELEASE' | 'BLOCKED' | 'HELD_BY_PROVIDER' | 'ON_HOLD' | 'PAYMENT_COMPLETED' | 'PAYMENT_DETAILS_MISSING' | 'PAYMENT_ERROR' | 'PAYMENT_NOT_INSTRUCTED' | 'PAYMENT_PROCESSING' | 'PAYMENT_READY' | 'PAYMENT_SCHEDULED' | 'PENDING_VENDOR_APPROVAL' | 'WAITING_FOR_TRANSACTION_MATCH' | 'WAITING_FOR_VENDOR' sync_status: 'BILL_AND_PAYMENT_SYNCED' | 'BILL_SYNCED' | 'NOT_SYNCED' vendor: { id: string name: string remote_code?: string remote_id?: string remote_name?: string type?: 'BUSINESS' | 'INDIVIDUAL' } vendor_contact_id: string vendor_memo?: string }[] page: { next: string } } --- title: Create a bill path: /developer/v1/bills description: Batch payments cannot be created in the API. request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] attachment_id?: string due_at: string /* date */ enable_accounting_sync?: boolean entity_id: string inventory_line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] memo?: string quantity: string | number unit_price: string | number }[] invoice_currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' invoice_number: string issued_at: string /* date */ line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] amount: string | number memo?: string }[] memo?: string payment_date?: string /* date */ payment_details?: { is_same_day?: boolean payment_arrival_date: string /* date */ source_bank_account_id: string vendor_account_id: string } | { is_same_day?: boolean payment_arrival_date: string /* date */ source_bank_account_id: string } | { spend_limit_id: string transaction_id?: string } | { manual_payment_method: 'CASH' | 'CHECK' | 'CROSS_BORDER_PAYMENT' | 'CRYPTO_WALLET_TRANSFER' | 'DIRECT_DEBIT' | 'DOMESTIC_WIRE_TRANSFER' | 'NON_RAMP_CREDIT_CARD' | 'OTHER' | 'PAID_IN_ERP' payment_date: string /* date */ } payment_method?: 'ACH' | 'CARD' | 'CHECK' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'SWIFT' posting_date?: string /* date */ purchase_order_ids?: string[] remote_id?: string use_default_payment_method?: boolean use_default_vendor_contact?: boolean vendor_contact_id?: string vendor_id: string vendor_memo?: string } response: none --- title: List draft bills path: /developer/v1/bills/drafts description: No description request: none response: { data: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_owner: { first_name?: string id: string last_name?: string } created_at: string /* date */ due_at: string /* date */ entity_id: string id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string quantity: number unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] invoice_number: string invoice_urls: string[] issued_at: string /* date */ line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string }[] memo: string posting_date: string /* date */ remote_id: string status: none sync_status: none vendor: { id: string name: string remote_code?: string remote_id?: string remote_name?: string type?: 'BUSINESS' | 'INDIVIDUAL' } vendor_memo: string }[] page: { next: string } } --- title: Create a draft bill path: /developer/v1/bills/drafts description: No description request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] due_at?: string /* date */ enable_accounting_sync?: boolean entity_id?: string inventory_line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] memo?: string purchase_order_line_item_id?: string quantity: string | number unit_price: string | number }[] invoice_currency?: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' invoice_number?: string issued_at?: string /* date */ line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] amount: string | number memo?: string purchase_order_line_item_id?: string }[] memo?: string payment_method?: 'ACH' | 'CARD' | 'CHECK' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'SWIFT' posting_date?: string /* date */ purchase_order_ids?: string[] remote_id?: string use_default_payment_method?: boolean vendor_contact_id?: string vendor_id: string } response: none --- title: Fetch a draft bill path: /developer/v1/bills/drafts/{draft_bill_id} description: No description request: none response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_owner: { first_name?: string id: string last_name?: string } created_at: string /* date */ due_at: string /* date */ entity_id: string id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string quantity: number unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] invoice_number: string invoice_urls: string[] issued_at: string /* date */ line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string }[] memo: string posting_date: string /* date */ remote_id: string status: none sync_status: none vendor: { id: string name: string remote_code?: string remote_id?: string remote_name?: string type?: 'BUSINESS' | 'INDIVIDUAL' } vendor_memo: string } --- title: Update a draft bill path: /developer/v1/bills/drafts/{draft_bill_id} description: No description request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] due_at?: string /* date */ enable_accounting_sync?: boolean entity_id?: string inventory_line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] memo?: string purchase_order_line_item_id?: string quantity: string | number unit_price: string | number }[] invoice_currency?: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' invoice_number?: string issued_at?: string /* date */ line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] amount: string | number memo?: string purchase_order_line_item_id?: string }[] memo?: string payment_method?: 'ACH' | 'CARD' | 'CHECK' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'SWIFT' posting_date?: string /* date */ purchase_order_ids?: string[] remote_id?: string use_default_payment_method?: boolean vendor_contact_id?: string vendor_id?: string } response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_owner: { first_name?: string id: string last_name?: string } created_at: string /* date */ due_at: string /* date */ entity_id: string id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string quantity: number unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] invoice_number: string invoice_urls: string[] issued_at: string /* date */ line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string }[] memo: string posting_date: string /* date */ remote_id: string status: none sync_status: none vendor: { id: string name: string remote_code?: string remote_id?: string remote_name?: string type?: 'BUSINESS' | 'INDIVIDUAL' } vendor_memo: string } --- title: Upload a file attachment to an existing draft bill path: /developer/v1/bills/drafts/{draft_bill_id}/attachments description: Upload a file as an attachment to a draft bill. INVOICE type attachments cannot be uploaded if one already exists on the draft bill. This endpoint accepts the [multipart/form-data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format. Include the file as a part named 'file' with `Content-Disposition: attachment`. Include the attachment_type as a form field. request: none response: none --- title: Archive a bill path: /developer/v1/bills/{bill_id} description: This is a destructive action. Associated inflight payments will be cancelled if possible or any attached one-time-card will be terminated. Paid bills and bills belonging to a batch payment cannot be deleted. request: none response: none --- title: Fetch a bill path: /developer/v1/bills/{bill_id} description: No description request: none response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } applied_vendor_credits: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string }[] approval_status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' archived_at: string /* date */ bill_owner: { first_name?: string id: string last_name?: string } created_at: string /* date */ deep_link_url?: string draft_bill_created_at: string /* date */ draft_bill_id: string due_at: string /* date */ enable_accounting_sync?: boolean entity_id: string fx_conversion_rate: string id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } item_receipt_line_item_ids: string[] memo?: string purchase_order_line_item_id: string quantity: number unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] invoice_number?: string invoice_urls: string[] issued_at: string /* date */ item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } item_receipt_line_item_ids: string[] memo?: string purchase_order_line_item_id: string }[] memo?: string paid_at?: string /* date */ payment: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } customer_friendly_payment_id: string details: { spend_limit_id?: string transaction_ids?: string[] } | { manual_payment_method: 'CASH' | 'CHECK' | 'CROSS_BORDER_PAYMENT' | 'CRYPTO_WALLET_TRANSFER' | 'DIRECT_DEBIT' | 'DOMESTIC_WIRE_TRANSFER' | 'NON_RAMP_CREDIT_CARD' | 'OTHER' | 'PAID_IN_ERP' } | { approval_status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' is_same_day: boolean source_bank_account_id: string vendor_account_id: string } effective_date: string /* date */ id: string payment_date: string /* date */ payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' trace_id: { descriptor?: string trace_id?: string } } posting_date?: string /* date */ purchase_order_id?: string remote_id?: string status: 'OPEN' | 'PAID' status_summary: 'APPROVAL_PENDING' | 'APPROVAL_REJECTED' | 'ARCHIVED' | 'AWAITING_RELEASE' | 'BLOCKED' | 'HELD_BY_PROVIDER' | 'ON_HOLD' | 'PAYMENT_COMPLETED' | 'PAYMENT_DETAILS_MISSING' | 'PAYMENT_ERROR' | 'PAYMENT_NOT_INSTRUCTED' | 'PAYMENT_PROCESSING' | 'PAYMENT_READY' | 'PAYMENT_SCHEDULED' | 'PENDING_VENDOR_APPROVAL' | 'WAITING_FOR_TRANSACTION_MATCH' | 'WAITING_FOR_VENDOR' sync_status: 'BILL_AND_PAYMENT_SYNCED' | 'BILL_SYNCED' | 'NOT_SYNCED' vendor: { id: string name: string remote_code?: string remote_id?: string remote_name?: string type?: 'BUSINESS' | 'INDIVIDUAL' } vendor_contact_id: string vendor_memo?: string } --- title: Update a bill path: /developer/v1/bills/{bill_id} description: Only approved bills can be updated. request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] due_at?: string /* date */ entity_id?: string inventory_line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] memo?: string purchase_order_line_item_id?: string quantity: string | number unit_price: string | number }[] invoice_number?: string issued_at?: string /* date */ line_items?: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] amount: string | number memo?: string purchase_order_line_item_id?: string }[] memo?: string payment_date?: string /* date */ payment_method?: 'ACH' | 'CARD' | 'CHECK' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'SWIFT' posting_date?: string /* date */ purchase_order_ids?: string[] remote_id?: string vendor_contact_id?: string vendor_id?: string vendor_memo?: string } response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } applied_vendor_credits: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string }[] approval_status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' archived_at: string /* date */ bill_owner: { first_name?: string id: string last_name?: string } created_at: string /* date */ deep_link_url?: string draft_bill_created_at: string /* date */ draft_bill_id: string due_at: string /* date */ enable_accounting_sync?: boolean entity_id: string fx_conversion_rate: string id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } item_receipt_line_item_ids: string[] memo?: string purchase_order_line_item_id: string quantity: number unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] invoice_number?: string invoice_urls: string[] issued_at: string /* date */ item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } item_receipt_line_item_ids: string[] memo?: string purchase_order_line_item_id: string }[] memo?: string paid_at?: string /* date */ payment: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } customer_friendly_payment_id: string details: { spend_limit_id?: string transaction_ids?: string[] } | { manual_payment_method: 'CASH' | 'CHECK' | 'CROSS_BORDER_PAYMENT' | 'CRYPTO_WALLET_TRANSFER' | 'DIRECT_DEBIT' | 'DOMESTIC_WIRE_TRANSFER' | 'NON_RAMP_CREDIT_CARD' | 'OTHER' | 'PAID_IN_ERP' } | { approval_status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' is_same_day: boolean source_bank_account_id: string vendor_account_id: string } effective_date: string /* date */ id: string payment_date: string /* date */ payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' trace_id: { descriptor?: string trace_id?: string } } posting_date?: string /* date */ purchase_order_id?: string remote_id?: string status: 'OPEN' | 'PAID' status_summary: 'APPROVAL_PENDING' | 'APPROVAL_REJECTED' | 'ARCHIVED' | 'AWAITING_RELEASE' | 'BLOCKED' | 'HELD_BY_PROVIDER' | 'ON_HOLD' | 'PAYMENT_COMPLETED' | 'PAYMENT_DETAILS_MISSING' | 'PAYMENT_ERROR' | 'PAYMENT_NOT_INSTRUCTED' | 'PAYMENT_PROCESSING' | 'PAYMENT_READY' | 'PAYMENT_SCHEDULED' | 'PENDING_VENDOR_APPROVAL' | 'WAITING_FOR_TRANSACTION_MATCH' | 'WAITING_FOR_VENDOR' sync_status: 'BILL_AND_PAYMENT_SYNCED' | 'BILL_SYNCED' | 'NOT_SYNCED' vendor: { id: string name: string remote_code?: string remote_id?: string remote_name?: string type?: 'BUSINESS' | 'INDIVIDUAL' } vendor_contact_id: string vendor_memo?: string } --- title: Upload a file attachment to an existing bill path: /developer/v1/bills/{bill_id}/attachments description: Upload a file as an attachment to a bill. INVOICE type attachments cannot be uploaded if one already exists on the bill. This endpoint accepts the [multipart/form-data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format. Include the file as a part named 'file' with `Content-Disposition: attachment`. Include the attachment_type as a form field. request: none response: none --- title: Upload a document for a blank canvas workflow step path: /developer/v1/blank-canvas-approvals/documents description: This endpoint accepts the [multipart/form-data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format. Include the document as a part with `Content-Disposition: attachment`. Include metadata as parts with `Content-Disposition: form-data`. request: none response: none --- title: Approve or reject a blank canvas workflow step path: /developer/v1/blank-canvas-approvals/{approval_trigger_instance_id} description: No description request: { action: 'approve' | 'reject' } response: { message: string } --- title: Update metadata for a blank canvas external approval request path: /developer/v1/blank-canvas-approvals/{approval_trigger_instance_id}/metadata description: No description request: { recipients?: { email: string name: string }[] status?: string url?: string } response: { approval_trigger_instance_id: string recipients?: { email: string name: string }[] status?: string url?: string } --- title: Fetch the company information path: /developer/v1/business description: No description request: none response: { active?: boolean billing_address?: Record business_name_legal?: string business_name_on_card?: string created_time?: string /* date */ enforce_sso?: boolean id?: string initial_approved_limit?: number is_integrated_with_slack?: boolean is_reimbursements_enabled: boolean limit_locked?: boolean phone?: string website?: string } --- title: Fetch the company balance information path: /developer/v1/business/balance description: No description request: none response: { available_card_limit?: number available_card_limit_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } available_flex_limit?: number available_flex_limit_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } balance_including_pending?: number balance_including_pending_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } card_balance_excluding_pending_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } card_balance_including_pending?: number card_balance_including_pending_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } card_limit?: number card_limit_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } flex_balance?: number flex_balance_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } flex_limit?: number flex_limit_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } float_balance_excluding_pending?: number float_balance_excluding_pending_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } global_limit?: number global_limit_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } max_balance?: number max_balance_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } next_billing_date?: string prev_billing_date?: string statement_balance?: number statement_balance_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } } --- title: List cards path: /developer/v1/cards description: No description request: none response: { data: { card_program_id: string cardholder_id?: string cardholder_name?: string created_at?: string /* date */ display_name: string entity_id?: string expiration: string fulfillment: { card_personalization?: { text?: { name_line_1?: CardPersonalizationNameLine name_line_2?: CardPersonalizationNameLine } } cardholder_uuid?: string fulfillment_status?: 'DELIVERED' | 'DIGITALLY_PRESENTED' | 'ISSUED' | 'ORDERED' | 'REJECTED' | 'SHIPPED' shipping?: { method?: string recipient_address?: { address1: string address2?: string city: string country: string first_name: string last_name: string phone?: string postal_code: string state?: string } recipient_address_verification_state?: 'NOT_VERIFIED' | 'OVERRIDEN' | 'VERIFIED' return_address?: CardShippingAddress } shipping_date?: string /* date */ shipping_eta?: string /* date */ shipping_tracking_url?: string } has_program_overridden: boolean id?: string is_physical?: boolean last_four: string spending_restrictions: { amount?: number auto_lock_date: string /* date */ blocked_categories?: number[] categories?: number[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' suspended?: boolean transaction_amount_limit?: number } state?: 'ACTIVE' | 'CHIP_LOCKED' | 'SUSPENDED' | 'TERMINATED' | 'UNACTIVATED' }[] page: { next: string } } --- title: Create a physical card path: /developer/v1/cards/deferred/physical description: Call this endpoint to create an async task to request for new physical card. request: { display_name?: string entity_id?: string fulfillment?: { card_personalization?: { text?: { name_line_1?: { value?: string } name_line_2?: { value?: string } } } cardholder_uuid?: string shipping?: { method?: string recipient_address?: { address1: string address2?: string city: string country: string first_name: string last_name: string phone?: string postal_code: string state?: string } recipient_address_verification_state?: 'NOT_VERIFIED' | 'OVERRIDEN' | 'VERIFIED' return_address?: { address1: string address2?: string city: string country: string first_name: string last_name: string phone?: string postal_code: string state?: string } } } idempotency_key: string is_temporary?: boolean spending_restrictions?: { amount: string | number blocked_mcc_codes?: string[] card_accounting_rules?: { tracking_category_id: string tracking_category_option_id: string tracking_category_option_remote_name: string }[] categories?: number[] categories_blacklist?: number[] categories_whitelist?: number[] currency?: string interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' lock_date?: string /* date */ policy_id?: string transaction_amount_limit?: string | number vendor_blacklist?: string[] vendor_whitelist?: string[] } user_id: string } response: { id: string } --- title: Fetch deferred task status path: /developer/v1/cards/deferred/status/{task_id} description: No description request: none response: { context?: { acting_user_id?: string card_id?: string } data?: { card_id?: string error?: string } id?: string status?: string } --- title: Create a virtual card path: /developer/v1/cards/deferred/virtual description: Call this endpoint to create an async task to request for new virtual card. request: { display_name?: string entity_id?: string idempotency_key: string is_temporary?: boolean spending_restrictions?: { amount: string | number blocked_mcc_codes?: string[] card_accounting_rules?: { tracking_category_id: string tracking_category_option_id: string tracking_category_option_remote_name: string }[] categories?: number[] categories_blacklist?: number[] categories_whitelist?: number[] currency?: string interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' lock_date?: string /* date */ policy_id?: string transaction_amount_limit?: string | number vendor_blacklist?: string[] vendor_whitelist?: string[] } user_id: string } response: { id: string } --- title: Fetch a card path: /developer/v1/cards/{card_id} description: No description request: none response: { card_program_id: string cardholder_id?: string cardholder_name?: string created_at?: string /* date */ display_name: string entity_id?: string expiration: string fulfillment: { card_personalization?: { text?: { name_line_1?: { value?: string } name_line_2?: { value?: string } } } cardholder_uuid?: string fulfillment_status?: 'DELIVERED' | 'DIGITALLY_PRESENTED' | 'ISSUED' | 'ORDERED' | 'REJECTED' | 'SHIPPED' shipping?: { method?: string recipient_address?: { address1: string address2?: string city: string country: string first_name: string last_name: string phone?: string postal_code: string state?: string } recipient_address_verification_state?: 'NOT_VERIFIED' | 'OVERRIDEN' | 'VERIFIED' return_address?: { address1: string address2?: string city: string country: string first_name: string last_name: string phone?: string postal_code: string state?: string } } shipping_date?: string /* date */ shipping_eta?: string /* date */ shipping_tracking_url?: string } has_program_overridden: boolean id?: string is_physical?: boolean last_four: string spending_restrictions: { amount?: number auto_lock_date: string /* date */ blocked_categories?: number[] categories?: number[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' suspended?: boolean transaction_amount_limit?: number } state?: 'ACTIVE' | 'CHIP_LOCKED' | 'SUSPENDED' | 'TERMINATED' | 'UNACTIVATED' } --- title: Update a card path: /developer/v1/cards/{card_id} description: This endpoint allow you update the owner, display name, and spend restrictions of a card. request: { display_name?: string entity_id?: string has_notifications_enabled?: boolean new_user_id?: string spending_restrictions?: { amount?: string | number blocked_mcc_codes?: string[] categories?: number[] categories_blacklist?: number[] categories_whitelist?: number[] currency?: string interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' lock_date?: string /* date */ policy_id?: string transaction_amount_limit?: string | number vendor_blacklist?: string[] vendor_whitelist?: string[] } } response: none --- title: Suspend a card path: /developer/v1/cards/{card_id}/deferred/suspension description: Call this endpoint to create an async task to suspend a card so that it is locked from use. The suspension is revertable. request: { idempotency_key: string } response: { id: string } --- title: Terminate a card path: /developer/v1/cards/{card_id}/deferred/termination description: Call this endpoint to create an async task to terminate a card permanently. Please note that this action is irreversible. request: { idempotency_key: string } response: { id: string } --- title: Unlock a card path: /developer/v1/cards/{card_id}/deferred/unsuspension description: Call this endpoint to create an async task to remove a card's suspension so that it may be used again. request: { idempotency_key: string } response: { id: string } --- title: List cashback payments path: /developer/v1/cashbacks description: No description request: none response: { data: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } created_at?: string /* date */ entity_id?: string id?: string sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' }[] page: { next: string } } --- title: Fetch a cashback payment path: /developer/v1/cashbacks/{cashback_id} description: No description request: none response: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } created_at?: string /* date */ entity_id?: string id?: string sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' } --- title: List comments on an object's discussion thread path: /developer/v1/comments/{object_type}/{object_id} description: Requires `{resource_name}:read` scope and may require additional access. See `object_type` description for more information. request: none response: { data: { created_at: string /* date */ id: string message: string user_id: string }[] page: { next: string } } --- title: Create a comment on an object's discussion thread path: /developer/v1/comments/{object_type}/{object_id} description: Requires `{resource_name}:write` scope and may require additional access. See `object_type` description for more information. request: { mention_user_ids?: string[] message: string message_format?: 'MARKDOWN' | 'PLAIN_TEXT' } response: none --- title: Fetch a custom form collection response by ID path: /developer/v1/custom-form/collections/responses/{custom_form_collection_response_id} description: No description request: none response: { custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: CustomFormFieldResponseWrapperDumpSchemaV2[] label: string }[] label: string } } id: string } --- title: Create Custom Table path: /developer/v1/custom-records/configure/custom-tables description: No description request: { table_label: string table_name: string type?: 'custom_table' } response: none --- title: Create Custom Table column path: /developer/v1/custom-records/configure/custom-tables/{custom_table_name}/columns description: No description request: { column_type_name: 'boolean' | 'number' | 'text' label: string name: string } | { column_type_name: 'custom_reference' | 'native_reference' label: string name: string reference_args: { cardinality: 'many_to_many' | 'many_to_one' corresponding_column_label?: string corresponding_column_name?: string foreign_table: { table_name: string type?: 'custom_table' } | { table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type?: 'native_table' } } } response: { column_id: string } --- title: Change the API name of a Custom Table's Column path: /developer/v1/custom-records/configure/custom-tables/{custom_table_name}/columns/{column_name} description: No description request: { new_name: string } response: none --- title: Extend Native Ramp table path: /developer/v1/custom-records/configure/native-tables description: No description request: { table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type?: 'native_table' } response: none --- title: Create Native Ramp table field path: /developer/v1/custom-records/configure/native-tables/{native_table_name}/columns description: No description request: { column_type_name: 'boolean' | 'number' | 'text' label: string name: string } | { column_type_name: 'custom_reference' | 'native_reference' label: string name: string reference_args: { cardinality: 'many_to_many' | 'many_to_one' corresponding_column_label?: string corresponding_column_name?: string foreign_table: { table_name: string type?: 'custom_table' } | { table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type?: 'native_table' } } } response: { column_id: string } --- title: Change the API name of a Native Table's Custom Record Column path: /developer/v1/custom-records/configure/native-tables/{native_table_name}/columns/{column_name} description: No description request: { new_name: string } response: none --- title: List Custom Tables path: /developer/v1/custom-records/custom-tables description: No description request: none response: { data: { table_label: string table_name: string type: 'custom_table' }[] page: { next: string } } --- title: List Custom Table columns path: /developer/v1/custom-records/custom-tables/{custom_table_name}/columns description: No description request: none response: { data: { allows_writes: boolean display_name: string id: string name: string type: { type: 'boolean' } | { cardinality: 'many_to_many' | 'many_to_one' | 'one_to_many' | 'one_to_one' corresponding_column_id: string table_display_name: string table_id: string table_name: string type: 'custom_reference' } | { display_type: 'date' type: 'datetime' } | { cardinality: 'many_to_many' | 'many_to_one' | 'one_to_many' | 'one_to_one' corresponding_column_id: string table_id: string table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' tracking_category: { accounting_provider_is_connected: boolean display_name: string id: number is_active: boolean uuid: string } type: 'native_reference' } | { display_type: 'currency' | 'number' | 'percentage' type: 'number' } | { display_type: 'email' | 'numeric_id' | 'paragraph' | 'phone' | 'plain_text' | 'url' type: 'text' } }[] page: { next: string } } --- title: Delete rows from a Custom Table path: /developer/v1/custom-records/custom-tables/{custom_table_name}/rows description: No description request: { data: { external_key: string }[] } response: { metadata: { deleted: number } } --- title: List Custom Table rows path: /developer/v1/custom-records/custom-tables/{custom_table_name}/rows description: No description request: none response: { data: { cells: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: CustomTableRowForDisplay[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: NativeTableRowForDisplay[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] display_name: string external_key: string id: string }[] page: { next: string } } --- title: Set values for rows of a Custom Table path: /developer/v1/custom-records/custom-tables/{custom_table_name}/rows description: No description request: { data: { cells: { contents: { column_name: string value: string } | string /* date */ | boolean | number | string name: string }[] external_key: string }[] } response: { metadata: { inserted: number updated: number } } --- title: Change the external key of a Custom Table row path: /developer/v1/custom-records/custom-tables/{custom_table_name}/rows/{row_id} description: No description request: { new_external_key: string } response: none --- title: Append cells to a Custom Table path: /developer/v1/custom-records/custom-tables/{table_name}/rows/-/append description: No description request: { data: { cells: { contents: { column_name: string value: string } | string /* date */ | boolean | number | string name: string }[] external_key: string }[] } response: { metadata: { inserted: number } } --- title: Remove cells from a Custom Table path: /developer/v1/custom-records/custom-tables/{table_name}/rows/-/remove description: No description request: { data: { cells: { contents: { column_name: string value: string } | string /* date */ | boolean | number | string name: string }[] external_key: string }[] } response: { metadata: { deleted: number } } --- title: List all Matrix tables for the business path: /developer/v1/custom-records/matrix-tables description: No description request: none response: { data: { id: string input_columns: { display_name: string id: string name: string type: { column_type?: 'native_reference' native_table: DeveloperApiNativeTableReference } | { column_type?: 'number' } }[] label: string name: string result_columns: { display_name: string id: string name: string type: { cardinality: PydanticCardinalityEnum column_type?: 'native_reference' native_table: DeveloperApiResultNativeTableReference } }[] }[] } --- title: Create a Matrix table path: /developer/v1/custom-records/matrix-tables description: Matrix tables are special-purpose lookup tables where unique combinations of input values map to result values. request: { input_columns: { column_type: { accounting_field_ramp_id?: string table_name: 'accounting_field_options' | 'business_entities' | 'departments' | 'locations' | 'users' type?: 'native_table' } | { type?: 'number' } label: string name?: string }[] label: string name?: string result_columns: { cardinality: 'many_to_many' | 'many_to_one' label: string name?: string native_table: { accounting_field_ramp_id?: string table_name: 'accounting_field_options' | 'users' type?: 'native_table' } }[] } response: none --- title: Add a result column to an existing Matrix table path: /developer/v1/custom-records/matrix-tables/{table_name}/columns description: Allows adding result columns to already-created matrix tables without modifying the input columns. Only result columns (users and accounting_field_options) can be added. Input columns cannot be added after table creation. request: { cardinality: 'many_to_many' | 'many_to_one' label: string name?: string native_table: { accounting_field_ramp_id?: string table_name: 'accounting_field_options' | 'users' type?: 'native_table' } } response: none --- title: Change the API name of a Matrix table column (input or result) path: /developer/v1/custom-records/matrix-tables/{table_name}/columns/{column_name} description: This changes the internal name used in API calls while preserving the human-readable label. Both input and result columns can be renamed. request: { new_name: string } response: none --- title: List Matrix table rows path: /developer/v1/custom-records/matrix-tables/{table_name}/list-rows description: Returns rows with inputs and results separated. Inputs are always complete (all input columns), results are sparse (only set values). request: { external_keys?: string[] filters?: { column_name: string one_of: string[] }[] page_size?: number start?: string } response: { data: { id: string inputs: { column_name: string display_name: string identifier?: { column_name: string value: string } | { value: number } }[] results: { column_name: string display_name: string identifier: { column_name: string value: string } }[] }[] page: { next: string } total_count: number } --- title: Change the API name of a Matrix table path: /developer/v1/custom-records/matrix-tables/{table_name}/rename description: No description request: { new_name: string } response: none --- title: Upsert Matrix table rows path: /developer/v1/custom-records/matrix-tables/{table_name}/rows description: Creates new rows or updates existing rows based on input values. Input values define row identity (via external_key). Result values are mutable and can be partially updated. request: { data: { inputs: { column_name: string identifier?: { column_name: string value: string } number_identifier?: number | string }[] results: { column_name: string identifier: { column_name: string value: string } }[] }[] } response: { metadata: { inserted: number updated: number } } --- title: Append cells to Matrix table rows path: /developer/v1/custom-records/matrix-tables/{table_name}/rows/-/append description: Adds values to many-to-many result columns without replacing existing values. Only works on many-to-many result columns. Set ignore_duplicates=true to skip existing duplicate cells instead of erroring. request: { data: { inputs: { column_name: string identifier?: { column_name: string value: string } number_identifier?: number | string }[] results: { column_name: string identifier: { column_name: string value: string } }[] }[] ignore_duplicates?: boolean } response: { metadata: { cells_appended: number } } --- title: Remove cells from Matrix table rows path: /developer/v1/custom-records/matrix-tables/{table_name}/rows/-/remove description: Removes specific values from many-to-many result columns without affecting other values. request: { data: { inputs: { column_name: string identifier?: { column_name: string value: string } number_identifier?: number | string }[] results: { column_name: string identifier: { column_name: string value: string } }[] }[] } response: { metadata: { cells_removed: number } } --- title: Delete a single Matrix table row by ID path: /developer/v1/custom-records/matrix-tables/{table_name}/rows/{row_id} description: Deletes the matrix row with the specified ID from the matrix table. request: none response: none --- title: List Native Ramp tables path: /developer/v1/custom-records/native-tables description: No description request: none response: { data: { table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' }[] page: { next: string } } --- title: List Custom Columns for a Native Ramp table path: /developer/v1/custom-records/native-tables/{native_table_name}/columns description: No description request: none response: { data: { allows_writes: boolean display_name: string id: string name: string type: { type: 'boolean' } | { cardinality: 'many_to_many' | 'many_to_one' | 'one_to_many' | 'one_to_one' corresponding_column_id: string table_display_name: string table_id: string table_name: string type: 'custom_reference' } | { display_type: 'date' type: 'datetime' } | { cardinality: 'many_to_many' | 'many_to_one' | 'one_to_many' | 'one_to_one' corresponding_column_id: string table_id: string table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' tracking_category: { accounting_provider_is_connected: boolean display_name: string id: number is_active: boolean uuid: string } type: 'native_reference' } | { display_type: 'currency' | 'number' | 'percentage' type: 'number' } | { display_type: 'email' | 'numeric_id' | 'paragraph' | 'phone' | 'plain_text' | 'url' type: 'text' } }[] page: { next: string } } --- title: List Custom Column values for rows of a Native Ramp table path: /developer/v1/custom-records/native-tables/{native_table_name}/rows description: No description request: none response: { data: { cells: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] display_name: string external_key: string id: string }[] page: { next: string } } --- title: Set values for rows of a Native Ramp table path: /developer/v1/custom-records/native-tables/{native_table_name}/rows description: No description request: { data: { cells: { contents: { column_name: string value: string } | string /* date */ | boolean | number | string name: string }[] row: { column_name: string value: string } }[] } response: { metadata: { inserted: number updated: number } } --- title: Append cells to a Native Ramp table path: /developer/v1/custom-records/native-tables/{native_table_name}/rows/-/append description: No description request: { data: { cells: { contents: { column_name: string value: string } | string /* date */ | boolean | number | string name: string }[] row: { column_name: string value: string } }[] } response: { metadata: { inserted: number } } --- title: Remove cells from a Native Ramp table path: /developer/v1/custom-records/native-tables/{native_table_name}/rows/-/remove description: No description request: { data: { cells: { contents: { column_name: string value: string } | string /* date */ | boolean | number | string name: string }[] row: { column_name: string value: string } }[] } response: { metadata: { deleted: number } } --- title: List departments path: /developer/v1/departments description: No description request: none response: { data: { id: string name: string }[] page: { next: string } } --- title: Create a department path: /developer/v1/departments description: No description request: { name: string } response: none --- title: Fetch a department path: /developer/v1/departments/{department_id} description: No description request: none response: { id: string name: string } --- title: Update a department path: /developer/v1/departments/{department_id} description: No description request: { name: string } response: { id: string name: string } --- title: Create an embed init token for a card path: /developer/v1/embedded/cards/{card_id}/embed description: The specified card must be activated and currently active request: { parent_origin: string } response: { embed_init_token: string } --- title: List business entities path: /developer/v1/entities description: No description request: none response: { data: { accounts: { bank_account_id: string classification: 'ANY' | 'ASSET' | 'CREDCARD' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'UNKNOWN' created_at: string /* date */ external_id: string external_name: string internal_id: string usage_type: 'ACCRUAL_AP_ACCOUNT' | 'ACCRUAL_LIABILITY_ACCOUNT' | 'AR_ACCOUNTS_RECEIVABLE_ACCOUNT' | 'AR_BAD_DEBT_ACCOUNT' | 'AR_CARD_FEES_ACCOUNT' | 'AR_CASH_ACCOUNT_DEFAULT' | 'AR_CHARGEBACK_CLEARING_ACCOUNT' | 'AR_INCOME_ACCOUNT_DEFAULT' | 'AR_REFUNDS_CLEARING_ACCOUNT' | 'AR_UNDEPOSITED_FUNDS_ACCOUNT' | 'BILL_PAY_ACCOUNTS_PAYABLE_ACCOUNT' | 'BILL_PAY_BANK_ACCOUNT' | 'BILL_PAY_FX_GAIN_LOSS_ACCOUNT' | 'BOOKKEEPING_AUTOMATION_BANK_ACCOUNT' | 'BOOKKEEPING_AUTOMATION_CLEARING_ACCOUNT' | 'BROKERAGE_ACCOUNT' | 'BROKERAGE_DIVIDEND_ACCOUNT' | 'CARD_LIABILITY_ACCOUNT' | 'CARD_TRANSACTION_BILLS_ACCOUNTS_PAYABLE_ACCOUNT' | 'CASHBACK_ACCOUNT' | 'CASH_ACCOUNT' | 'INTERCOMPANY_ACCOUNTS_PAYABLE_ACCOUNT' | 'INTERCOMPANY_ACCOUNTS_RECEIVABLE_ACCOUNT' | 'INTERCOMPANY_TRANSFER_CLEARING_ACCOUNT' | 'MANAGED_PORTFOLIO_CASH_ACCOUNT' | 'MANAGED_PORTFOLIO_INTEREST_INCOME_ACCOUNT' | 'MANAGED_PORTFOLIO_POSITION_ASSET_ACCOUNT' | 'MANAGED_PORTFOLIO_REALIZED_GAIN_LOSS_ACCOUNT' | 'MANAGED_PORTFOLIO_UNREALIZED_GAIN_LOSS_ACCOUNT' | 'REIMBURSEMENT_ACCOUNTS_PAYABLE_ACCOUNT' | 'REIMBURSEMENT_BANK_ACCOUNT' | 'TRANSFER_BANK_ACCOUNT' | 'UNDEPOSITED_FUNDS' | 'WALLET_ACCOUNT' | 'WALLET_BANK_ACCOUNT' | 'WALLET_YIELD_ACCOUNT' }[] connected_subsidiary: { external_id: string id: string name: string } currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' entity_name: string id: string is_primary: boolean location_ids: string[] payment_accounts: { account_name: string account_number_last_four: string currency: string id: string }[] }[] page: { next: string } } --- title: Get a business entity path: /developer/v1/entities/{entity_id} description: No description request: none response: { accounts: { bank_account_id: string classification: 'ANY' | 'ASSET' | 'CREDCARD' | 'EQUITY' | 'EXPENSE' | 'LIABILITY' | 'REVENUE' | 'UNKNOWN' created_at: string /* date */ external_id: string external_name: string internal_id: string usage_type: 'ACCRUAL_AP_ACCOUNT' | 'ACCRUAL_LIABILITY_ACCOUNT' | 'AR_ACCOUNTS_RECEIVABLE_ACCOUNT' | 'AR_BAD_DEBT_ACCOUNT' | 'AR_CARD_FEES_ACCOUNT' | 'AR_CASH_ACCOUNT_DEFAULT' | 'AR_CHARGEBACK_CLEARING_ACCOUNT' | 'AR_INCOME_ACCOUNT_DEFAULT' | 'AR_REFUNDS_CLEARING_ACCOUNT' | 'AR_UNDEPOSITED_FUNDS_ACCOUNT' | 'BILL_PAY_ACCOUNTS_PAYABLE_ACCOUNT' | 'BILL_PAY_BANK_ACCOUNT' | 'BILL_PAY_FX_GAIN_LOSS_ACCOUNT' | 'BOOKKEEPING_AUTOMATION_BANK_ACCOUNT' | 'BOOKKEEPING_AUTOMATION_CLEARING_ACCOUNT' | 'BROKERAGE_ACCOUNT' | 'BROKERAGE_DIVIDEND_ACCOUNT' | 'CARD_LIABILITY_ACCOUNT' | 'CARD_TRANSACTION_BILLS_ACCOUNTS_PAYABLE_ACCOUNT' | 'CASHBACK_ACCOUNT' | 'CASH_ACCOUNT' | 'INTERCOMPANY_ACCOUNTS_PAYABLE_ACCOUNT' | 'INTERCOMPANY_ACCOUNTS_RECEIVABLE_ACCOUNT' | 'INTERCOMPANY_TRANSFER_CLEARING_ACCOUNT' | 'MANAGED_PORTFOLIO_CASH_ACCOUNT' | 'MANAGED_PORTFOLIO_INTEREST_INCOME_ACCOUNT' | 'MANAGED_PORTFOLIO_POSITION_ASSET_ACCOUNT' | 'MANAGED_PORTFOLIO_REALIZED_GAIN_LOSS_ACCOUNT' | 'MANAGED_PORTFOLIO_UNREALIZED_GAIN_LOSS_ACCOUNT' | 'REIMBURSEMENT_ACCOUNTS_PAYABLE_ACCOUNT' | 'REIMBURSEMENT_BANK_ACCOUNT' | 'TRANSFER_BANK_ACCOUNT' | 'UNDEPOSITED_FUNDS' | 'WALLET_ACCOUNT' | 'WALLET_BANK_ACCOUNT' | 'WALLET_YIELD_ACCOUNT' }[] connected_subsidiary: { external_id: string id: string name: string } currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' entity_name: string id: string is_primary: boolean location_ids: string[] payment_accounts: { account_name: string account_number_last_four: string currency: string id: string }[] } --- title: List item receipts path: /developer/v1/item-receipts description: No description request: none response: { data: { archived_at: string /* date */ created_at: string /* date */ documents: string[] id: string item_receipt_number: string line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string memo: string purchase_order_line_item_id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string purchase_order_id: string received_at: string /* date */ remote_id: string }[] page: { next: string } } --- title: Create an item receipt path: /developer/v1/item-receipts description: No description request: { item_receipt_line_items: { purchase_order_line_item_id: string unit_quantity?: number }[] item_receipt_number: string memo?: string purchase_order_id: string received_at: string /* date */ } response: none --- title: Delete an item receipt path: /developer/v1/item-receipts/{item_receipt_id} description: No description request: none response: none --- title: Fetch an item receipt path: /developer/v1/item-receipts/{item_receipt_id} description: No description request: none response: { archived_at: string /* date */ created_at: string /* date */ documents: string[] id: string item_receipt_number: string line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string memo: string purchase_order_line_item_id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string purchase_order_id: string received_at: string /* date */ remote_id: string } --- title: List limits path: /developer/v1/limits description: No description request: none response: { data: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] }[] page: { next: string } } --- title: Create a limit path: /developer/v1/limits/deferred description: Limit may either be created with spend program id (can provide display name and spending restrictions, cannot permitted spend types) or without (must provide display name, spending restrictions, and permitted spend types). request: { accounting_rules?: { field_id: string field_option_id: string }[] display_name?: string idempotency_key: string is_shareable?: boolean permitted_spend_types?: { primary_card_enabled: boolean reimbursements_enabled: boolean } spend_program_id?: string spending_restrictions?: { allowed_categories?: number[] allowed_vendors?: string[] blocked_categories?: number[] blocked_mcc_codes?: string[] blocked_vendors?: string[] interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code?: string } lock_date?: string /* date */ transaction_amount_limit?: { amount: number currency_code?: string } } user_id: string } response: { id: string } --- title: Fetch deferred task status path: /developer/v1/limits/deferred/status/{task_id} description: No description request: none response: { context: { acting_user_id: string spend_limit_id: string } data: { error: string spend_limit_id: string } id: string status: string } --- title: Fetch a limit path: /developer/v1/limits/{spend_limit_id} description: No description request: none response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: { attachments?: RampDocumentSchema[] conditions: WorkflowsCondition description: string field: CustomFormFieldResponseDumpSchemaV2 field_id: string global_library_field_id?: string is_mapped_to_ironclad_field?: boolean is_used_in_approval_workflow_condition?: boolean is_used_in_custom_form_workflow_condition?: boolean label: string required: boolean validation_errors?: CustomFormFieldValidationErrorSchemaV2[] value_display_string: string }[] label: string }[] label: string } } display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: Update a limit path: /developer/v1/limits/{spend_limit_id} description: No description request: { accounting_rules?: { field_id: string field_option_id: string }[] display_name?: string existing_expense_policy_agent_exemption_application_rules?: 'APPLY_TO_ALL' | 'APPLY_TO_NONE' is_exempt_from_policy_agent?: boolean is_shareable?: boolean new_user_id?: string permitted_spend_types?: { primary_card_enabled: boolean reimbursements_enabled: boolean } spend_program_id?: string spending_restrictions?: { allowed_categories?: number[] allowed_vendors?: string[] blocked_categories?: number[] blocked_mcc_codes?: string[] blocked_vendors?: string[] interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' is_one_time_edit?: boolean limit: { amount: number currency_code?: string } lock_date?: string /* date */ transaction_amount_limit?: { amount: number currency_code?: string } } } response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: Update a limit path: /developer/v1/limits/{spend_limit_id} description: No description request: { accounting_rules?: { field_id: string field_option_id: string }[] display_name?: string existing_expense_policy_agent_exemption_application_rules?: 'APPLY_TO_ALL' | 'APPLY_TO_NONE' is_exempt_from_policy_agent?: boolean is_shareable?: boolean new_user_id?: string permitted_spend_types?: { primary_card_enabled: boolean reimbursements_enabled: boolean } spend_program_id?: string spending_restrictions?: { allowed_categories?: number[] allowed_vendors?: string[] blocked_categories?: number[] blocked_mcc_codes?: string[] blocked_vendors?: string[] interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' is_one_time_edit?: boolean limit: { amount: number currency_code?: string } lock_date?: string /* date */ transaction_amount_limit?: { amount: number currency_code?: string } } } response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: Add new users into a shared limit path: /developer/v1/limits/{spend_limit_id}/add-users description: No description request: { user_ids?: string[] } response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: Terminate a limit path: /developer/v1/limits/{spend_limit_id}/deferred/termination description: This endpoint creates an async task to terminate a limit permanently. request: { idempotency_key: string } response: { id: string } --- title: Remove users from a shared limit path: /developer/v1/limits/{spend_limit_id}/delete-users description: No description request: { user_ids?: string[] } response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: Suspend a limit path: /developer/v1/limits/{spend_limit_id}/suspension description: No description request: none response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: Unsuspend a limit path: /developer/v1/limits/{spend_limit_id}/unsuspension description: No description request: none response: { balance: { cleared: { amount: number currency_code: string minor_unit_conversion_rate: number } pending: { amount: number currency_code: string minor_unit_conversion_rate: number } total: { amount: number currency_code: string minor_unit_conversion_rate: number } } cards: { card_id: string cardholder_id: string created_at: string /* date */ display_name: string expiration: string is_ap_card: boolean last_four: string via_new_product_or_service: boolean }[] created_at: string /* date */ display_name: string entity_id: string has_program_overridden: boolean id: string is_exempt_from_policy_agent: boolean is_shareable: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval?: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } spend_program_id: string state: 'ACTIVE' | 'ARCHIVED' | 'SUSPENDED' | 'TERMINATED' suspension: { acting_user_id: string inserted_at: string /* date */ suspended_by_ramp: boolean } users: { user_id: string }[] } --- title: List locations path: /developer/v1/locations description: No description request: none response: { data: { entity_id: string id: string name: string }[] page: { next: string } } --- title: Create a location path: /developer/v1/locations description: No description request: { entity_id?: string name: string } response: none --- title: Fetch a location path: /developer/v1/locations/{location_id} description: No description request: none response: { entity_id: string id: string name: string } --- title: Update a location path: /developer/v1/locations/{location_id} description: No description request: { entity_id?: string name: string } response: { entity_id: string id: string name: string } --- title: List memos path: /developer/v1/memos description: No description request: none response: { data: { id?: string memo?: string }[] page: { next: string } } --- title: Fetch a transaction memo path: /developer/v1/memos/{transaction_id} description: No description request: none response: { id?: string memo?: string } --- title: Upload a new memo for a transaction path: /developer/v1/memos/{transaction_id} description: No description request: { is_memo_recurring?: boolean memo: string } response: { id?: string memo?: string } --- title: List merchants path: /developer/v1/merchants description: No description request: none response: { data: { id: string is_auto_approved: boolean merchant_name: string sk_category_name: string }[] page: { next: string } } --- title: List purchase orders path: /developer/v1/purchase-orders description: No description request: none response: { data: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } archived_at: string /* date */ bill_ids: string[] billing_status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' created_at: string /* date */ creation_source: 'ACCOUNTING_PROVIDER' | 'DEVELOPER_API' | 'EXTERNAL_IMPORT' | 'RAMP' entity_id: string external_id: string id: string item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } description: string external_id: string id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string name: string net_payment_terms: number owner_id: string promise_date: string /* date */ purchase_order_number: string ramp_url: string receipt_status: 'FULLY_RECEIVED' | 'NOT_RECEIVED' | 'OVER_RECEIVED' | 'PARTIALLY_RECEIVED' remote_id: string ship_to_address: { address1: string address2: string city: string country: string postal_code: string state: string } ship_to_company_name: string shipping_contact_email: string shipping_contact_first_name: string shipping_contact_last_name: string shipping_contact_phone_number: string spend_end_date: string /* date */ spend_program_id: string spend_request_id: string spend_start_date: string /* date */ spend_total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } three_way_match_enabled: boolean transaction_ids: string[] user_id: string vendor_id: string }[] page: { next: string } } --- title: Create a purchase order path: /developer/v1/purchase-orders description: No description request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' entity_id: string external_id?: string line_items: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] description?: string external_id?: string unit_price: string | number unit_quantity: number }[] memo?: string net_payment_terms?: number promise_date?: string /* date */ purchase_order_number?: string spend_end_date?: string /* date */ spend_start_date?: string /* date */ three_way_match_enabled: boolean vendor_id?: string } response: none --- title: Fetch a purchase order path: /developer/v1/purchase-orders/{purchase_order_id} description: No description request: none response: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } archived_at: string /* date */ bill_ids: string[] billing_status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' created_at: string /* date */ creation_source: 'ACCOUNTING_PROVIDER' | 'DEVELOPER_API' | 'EXTERNAL_IMPORT' | 'RAMP' custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: { attachments?: RampDocumentSchema[] conditions: WorkflowsCondition description: string field: CustomFormFieldResponseDumpSchemaV2 field_id: string global_library_field_id?: string is_mapped_to_ironclad_field?: boolean is_used_in_approval_workflow_condition?: boolean is_used_in_custom_form_workflow_condition?: boolean label: string required: boolean validation_errors?: CustomFormFieldValidationErrorSchemaV2[] value_display_string: string }[] label: string }[] label: string } } entity_id: string external_id: string id: string item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } description: string external_id: string id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string name: string net_payment_terms: number owner_id: string promise_date: string /* date */ purchase_order_number: string ramp_url: string receipt_status: 'FULLY_RECEIVED' | 'NOT_RECEIVED' | 'OVER_RECEIVED' | 'PARTIALLY_RECEIVED' remote_id: string ship_to_address: { address1: string address2: string city: string country: string postal_code: string state: string } ship_to_company_name: string shipping_contact_email: string shipping_contact_first_name: string shipping_contact_last_name: string shipping_contact_phone_number: string spend_end_date: string /* date */ spend_program_id: string spend_request_id: string spend_start_date: string /* date */ spend_total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } three_way_match_enabled: boolean transaction_ids: string[] user_id: string vendor_id: string } --- title: Update a purchase order path: /developer/v1/purchase-orders/{purchase_order_id} description: Purchase order must be approved. request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] memo?: string spend_end_date?: string /* date */ spend_start_date?: string /* date */ } response: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } archived_at: string /* date */ bill_ids: string[] billing_status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' created_at: string /* date */ creation_source: 'ACCOUNTING_PROVIDER' | 'DEVELOPER_API' | 'EXTERNAL_IMPORT' | 'RAMP' custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: { attachments?: RampDocumentSchema[] conditions: WorkflowsCondition description: string field: CustomFormAddressFieldResponseDumpSchema | CustomFormBooleanFieldResponseDumpSchema | CustomFormContactFieldResponseDumpSchema | CustomFormDateFieldResponseDumpSchema | CustomFormDepartmentFieldResponseDumpSchema | CustomFormEmailFieldResponseDumpSchema | CustomFormFileUploadFieldResponseDumpSchema | CustomFormLinkFieldResponseDumpSchema | CustomFormMerchantCategoryFieldResponseDumpSchema | CustomFormMerchantFieldResponseDumpSchema | CustomFormMonetaryAmountFieldResponseDumpSchema | CustomFormNumberFieldResponseDumpSchema | CustomFormParagraphFieldResponseDumpSchema | CustomFormTextFieldResponseDumpSchema | CustomFormTextMultiSelectFieldResponseDumpSchema | CustomFormTextSingleSelectFieldResponseDumpSchema | CustomFormVendorFieldResponseDumpSchema field_id: string global_library_field_id?: string is_mapped_to_ironclad_field?: boolean is_used_in_approval_workflow_condition?: boolean is_used_in_custom_form_workflow_condition?: boolean label: string required: boolean validation_errors?: CustomFormFieldValidationErrorSchemaV2[] value_display_string: string }[] label: string }[] label: string } } entity_id: string external_id: string id: string item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } description: string external_id: string id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string name: string net_payment_terms: number owner_id: string promise_date: string /* date */ purchase_order_number: string ramp_url: string receipt_status: 'FULLY_RECEIVED' | 'NOT_RECEIVED' | 'OVER_RECEIVED' | 'PARTIALLY_RECEIVED' remote_id: string ship_to_address: { address1: string address2: string city: string country: string postal_code: string state: string } ship_to_company_name: string shipping_contact_email: string shipping_contact_first_name: string shipping_contact_last_name: string shipping_contact_phone_number: string spend_end_date: string /* date */ spend_program_id: string spend_request_id: string spend_start_date: string /* date */ spend_total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } three_way_match_enabled: boolean transaction_ids: string[] user_id: string vendor_id: string } --- title: Archive a purchase order path: /developer/v1/purchase-orders/{purchase_order_id}/archive description: No description request: { archived_reason?: string } response: none --- title: Add line items to an existing purchase order path: /developer/v1/purchase-orders/{purchase_order_id}/line-items description: No description request: { line_items: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] description?: string external_id?: string unit_price: string | number unit_quantity: number }[] } response: none --- title: Delete a single line item from an existing purchase order path: /developer/v1/purchase-orders/{purchase_order_id}/line-items/{line_item_id} description: Purchase order must be approved. request: none response: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } archived_at: string /* date */ bill_ids: string[] billing_status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' created_at: string /* date */ creation_source: 'ACCOUNTING_PROVIDER' | 'DEVELOPER_API' | 'EXTERNAL_IMPORT' | 'RAMP' custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: { attachments?: RampDocumentSchema[] conditions: WorkflowsCondition description: string field: CustomFormAddressFieldResponseDumpSchema | CustomFormBooleanFieldResponseDumpSchema | CustomFormContactFieldResponseDumpSchema | CustomFormDateFieldResponseDumpSchema | CustomFormDepartmentFieldResponseDumpSchema | CustomFormEmailFieldResponseDumpSchema | CustomFormFileUploadFieldResponseDumpSchema | CustomFormLinkFieldResponseDumpSchema | CustomFormMerchantCategoryFieldResponseDumpSchema | CustomFormMerchantFieldResponseDumpSchema | CustomFormMonetaryAmountFieldResponseDumpSchema | CustomFormNumberFieldResponseDumpSchema | CustomFormParagraphFieldResponseDumpSchema | CustomFormTextFieldResponseDumpSchema | CustomFormTextMultiSelectFieldResponseDumpSchema | CustomFormTextSingleSelectFieldResponseDumpSchema | CustomFormVendorFieldResponseDumpSchema field_id: string global_library_field_id?: string is_mapped_to_ironclad_field?: boolean is_used_in_approval_workflow_condition?: boolean is_used_in_custom_form_workflow_condition?: boolean label: string required: boolean validation_errors?: CustomFormFieldValidationErrorSchemaV2[] value_display_string: string }[] label: string }[] label: string } } entity_id: string external_id: string id: string item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } description: string external_id: string id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string name: string net_payment_terms: number owner_id: string promise_date: string /* date */ purchase_order_number: string ramp_url: string receipt_status: 'FULLY_RECEIVED' | 'NOT_RECEIVED' | 'OVER_RECEIVED' | 'PARTIALLY_RECEIVED' remote_id: string ship_to_address: { address1: string address2: string city: string country: string postal_code: string state: string } ship_to_company_name: string shipping_contact_email: string shipping_contact_first_name: string shipping_contact_last_name: string shipping_contact_phone_number: string spend_end_date: string /* date */ spend_program_id: string spend_request_id: string spend_start_date: string /* date */ spend_total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } three_way_match_enabled: boolean transaction_ids: string[] user_id: string vendor_id: string } --- title: Update a single line item on an existing purchase order path: /developer/v1/purchase-orders/{purchase_order_id}/line-items/{line_item_id} description: Purchase order must be approved. request: { accounting_field_selections?: { field_external_id: string field_option_external_id?: string free_form_text?: string }[] description?: string unit_price?: string | number unit_quantity?: number } response: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } archived_at: string /* date */ bill_ids: string[] billing_status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' created_at: string /* date */ creation_source: 'ACCOUNTING_PROVIDER' | 'DEVELOPER_API' | 'EXTERNAL_IMPORT' | 'RAMP' custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: { attachments?: RampDocumentSchema[] conditions: WorkflowsCondition description: string field: CustomFormAddressFieldResponseDumpSchema | CustomFormBooleanFieldResponseDumpSchema | CustomFormContactFieldResponseDumpSchema | CustomFormDateFieldResponseDumpSchema | CustomFormDepartmentFieldResponseDumpSchema | CustomFormEmailFieldResponseDumpSchema | CustomFormFileUploadFieldResponseDumpSchema | CustomFormLinkFieldResponseDumpSchema | CustomFormMerchantCategoryFieldResponseDumpSchema | CustomFormMerchantFieldResponseDumpSchema | CustomFormMonetaryAmountFieldResponseDumpSchema | CustomFormNumberFieldResponseDumpSchema | CustomFormParagraphFieldResponseDumpSchema | CustomFormTextFieldResponseDumpSchema | CustomFormTextMultiSelectFieldResponseDumpSchema | CustomFormTextSingleSelectFieldResponseDumpSchema | CustomFormVendorFieldResponseDumpSchema field_id: string global_library_field_id?: string is_mapped_to_ironclad_field?: boolean is_used_in_approval_workflow_condition?: boolean is_used_in_custom_form_workflow_condition?: boolean label: string required: boolean validation_errors?: CustomFormFieldValidationErrorSchemaV2[] value_display_string: string }[] label: string }[] label: string } } entity_id: string external_id: string id: string item_receipt_ids: string[] line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } description: string external_id: string id: string quantity: number remote_id: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] memo: string name: string net_payment_terms: number owner_id: string promise_date: string /* date */ purchase_order_number: string ramp_url: string receipt_status: 'FULLY_RECEIVED' | 'NOT_RECEIVED' | 'OVER_RECEIVED' | 'PARTIALLY_RECEIVED' remote_id: string ship_to_address: { address1: string address2: string city: string country: string postal_code: string state: string } ship_to_company_name: string shipping_contact_email: string shipping_contact_first_name: string shipping_contact_last_name: string shipping_contact_phone_number: string spend_end_date: string /* date */ spend_program_id: string spend_request_id: string spend_start_date: string /* date */ spend_total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } three_way_match_enabled: boolean transaction_ids: string[] user_id: string vendor_id: string } --- title: List emails opted out of receipt integrations path: /developer/v1/receipt-integrations/opt-out description: No description request: { email?: string id?: string } response: { email?: string id?: string } --- title: Add a new email to receipt integrations opt-out list path: /developer/v1/receipt-integrations/opt-out description: No description request: { business_id: number email: string } response: none --- title: Remove an email from receipt integration opt-out list path: /developer/v1/receipt-integrations/opt-out/{mailbox_opted_out_email_uuid} description: Successful request will opt-in email to receipt integrations. request: none response: none --- title: List receipts path: /developer/v1/receipts description: No description request: none response: { data: { created_at?: string /* date */ id?: string ocr?: { currency_code?: string line_items?: { item_date?: string /* date */ item_name?: string item_quantity?: number item_total_price?: number item_unit_price?: number }[] } receipt_url: string transaction_id?: string user_id?: string }[] page: { next: string } } --- title: Upload a receipt path: /developer/v1/receipts description: image and optionally associate it with a transaction. If a `transaction_id` is provided, the receipt will be linked directly to that transaction. If not, Ramp will attempt to automatically match the receipt to the most relevant transaction based on context. This endpoint accepts the [multipart/form-data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format. Include the receipt image as a part with `Content-Disposition: attachment`. Include metadata as parts with `Content-Disposition: form-data`. request: { idempotency_key: string transaction_id?: string user_id: string } response: none --- title: Fetch a receipt path: /developer/v1/receipts/{receipt_id} description: No description request: none response: { created_at?: string /* date */ id?: string ocr?: { currency_code?: string line_items?: { item_date?: string /* date */ item_name?: string item_quantity?: number item_total_price?: number item_unit_price?: number }[] } receipt_url: string transaction_id?: string user_id?: string } --- title: List reimbursements path: /developer/v1/reimbursements description: No description request: none response: { data: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code: string external_id: string id: string name: string provider_name: string source: { type?: string } type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: number approved_at: string /* date */ attendees: { name: string user_id: string }[] created_at: string /* date */ currency: string direction: 'BUSINESS_TO_USER' | 'USER_TO_BUSINESS' distance: number employee_id: string end_location: string entity_id: string id: string line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code: string external_id: string id: string name: string provider_name: string source: { type?: string } type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string }[] memo: string merchant: string merchant_id: string original_reimbursement_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } payee_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } payment_batch_id: string payment_id: string payment_processed_at: string /* date */ receipts: string[] spend_limit_id: string start_location: string state: 'APPROVED' | 'AWAITING_EXPORT' | 'AWAITING_PAYMENT' | 'AWAITING_PUSH_PAYMENT' | 'CANCELED' | 'DELETED' | 'DRAFT' | 'EXPORTED' | 'EXPORT_FAILED' | 'EXPORT_INITIATED' | 'EXPORT_MARKED_AS_FAILED' | 'EXPORT_SUCCESSFUL' | 'FAILED_REIMBURSEMENT' | 'INIT' | 'MANUALLY_REIMBURSED' | 'MISSING_ACH' | 'PENDING' | 'PROCESSING' | 'PUSH_PAYMENT_FAILED' | 'PUSH_PAYMENT_INITIATED' | 'REIMBURSED' | 'REIMBURSED_VIA_PUSH' | 'REJECTED' submitted_at: string /* date */ sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' synced_at: string /* date */ trace_id?: { descriptor: string trace_id: string } transaction_date: string /* date */ trip_id: string type: 'MILEAGE' | 'OUT_OF_POCKET' | 'PAYBACK_FULL' | 'PAYBACK_PARTIAL' | 'PER_DIEM' updated_at: string /* date */ user_email: string user_full_name: string user_id: string waypoints: string[] }[] page: { next: string } } --- title: Create a mileage reimbursement path: /developer/v1/reimbursements/mileage description: No description request: { distance: string | number distance_units?: 'KILOMETERS' | 'MILES' end_location?: string memo?: string reimbursee_id: string spend_allocation_id?: string start_location?: string trip_date: string /* date */ waypoints?: string[] } response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code: string external_id: string id: string name: string provider_name: string source: { type?: string } type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: number approved_at: string /* date */ attendees: { name: string user_id: string }[] created_at: string /* date */ currency: string direction: 'BUSINESS_TO_USER' | 'USER_TO_BUSINESS' distance: number employee_id: string end_location: string entity_id: string id: string line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code: string external_id: string id: string name: string provider_name: string source: { type?: string } type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string }[] memo: string merchant: string merchant_id: string original_reimbursement_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } payee_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } payment_batch_id: string payment_id: string payment_processed_at: string /* date */ receipts: string[] spend_limit_id: string start_location: string state: 'APPROVED' | 'AWAITING_EXPORT' | 'AWAITING_PAYMENT' | 'AWAITING_PUSH_PAYMENT' | 'CANCELED' | 'DELETED' | 'DRAFT' | 'EXPORTED' | 'EXPORT_FAILED' | 'EXPORT_INITIATED' | 'EXPORT_MARKED_AS_FAILED' | 'EXPORT_SUCCESSFUL' | 'FAILED_REIMBURSEMENT' | 'INIT' | 'MANUALLY_REIMBURSED' | 'MISSING_ACH' | 'PENDING' | 'PROCESSING' | 'PUSH_PAYMENT_FAILED' | 'PUSH_PAYMENT_INITIATED' | 'REIMBURSED' | 'REIMBURSED_VIA_PUSH' | 'REJECTED' submitted_at: string /* date */ sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' synced_at: string /* date */ trace_id?: { descriptor: string trace_id: string } transaction_date: string /* date */ trip_id: string type: 'MILEAGE' | 'OUT_OF_POCKET' | 'PAYBACK_FULL' | 'PAYBACK_PARTIAL' | 'PER_DIEM' updated_at: string /* date */ user_email: string user_full_name: string user_id: string waypoints: string[] } --- title: Upload a receipt for a reimbursement path: /developer/v1/reimbursements/submit-receipt description: If a `reimbursement_id` is provided, the receipt will be linked directly to that reimbursement. If not, Ramp will attempt to automatically create a draft reimbursement via OCR. This endpoint accepts the [multipart/form-data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format. Include the receipt image as a part with `Content-Disposition: attachment`. Include metadata as parts with `Content-Disposition: form-data`. request: { idempotency_key: string reimbursee_id: string reimbursement_id?: string } response: none --- title: Fetch a reimbursement path: /developer/v1/reimbursements/{reimbursement_id} description: No description request: none response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code: string external_id: string id: string name: string provider_name: string source: { type?: string } type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: number approved_at: string /* date */ attendees: { name: string user_id: string }[] created_at: string /* date */ currency: string direction: 'BUSINESS_TO_USER' | 'USER_TO_BUSINESS' distance: number employee_id: string end_location: string entity_id: string id: string line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code: string external_id: string id: string name: string provider_name: string source: { type?: string } type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo: string }[] memo: string merchant: string merchant_id: string original_reimbursement_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } payee_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } payment_batch_id: string payment_id: string payment_processed_at: string /* date */ receipts: string[] spend_limit_id: string start_location: string state: 'APPROVED' | 'AWAITING_EXPORT' | 'AWAITING_PAYMENT' | 'AWAITING_PUSH_PAYMENT' | 'CANCELED' | 'DELETED' | 'DRAFT' | 'EXPORTED' | 'EXPORT_FAILED' | 'EXPORT_INITIATED' | 'EXPORT_MARKED_AS_FAILED' | 'EXPORT_SUCCESSFUL' | 'FAILED_REIMBURSEMENT' | 'INIT' | 'MANUALLY_REIMBURSED' | 'MISSING_ACH' | 'PENDING' | 'PROCESSING' | 'PUSH_PAYMENT_FAILED' | 'PUSH_PAYMENT_INITIATED' | 'REIMBURSED' | 'REIMBURSED_VIA_PUSH' | 'REJECTED' submitted_at: string /* date */ sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' synced_at: string /* date */ trace_id?: { descriptor: string trace_id: string } transaction_date: string /* date */ trip_id: string type: 'MILEAGE' | 'OUT_OF_POCKET' | 'PAYBACK_FULL' | 'PAYBACK_PARTIAL' | 'PER_DIEM' updated_at: string /* date */ user_email: string user_full_name: string user_id: string waypoints: string[] } --- title: List repayments path: /developer/v1/repayments description: This endpoint supports filtering. Results are sorted by creation date in descending order. Note that entity_id filtering is not supported yet. request: none response: { data: { entity_id?: string funding_method: string id: string original_transaction_id: string repaid_at: string /* date */ repayment_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } status: 'AWAITING_MANUAL_REPAYMENT' | 'AWAITING_PAYMENT' | 'NONE' | 'REPAID' | 'REPAYMENT_FAILED' | 'REQUESTED_BY_REVIEWER' user_id: string user_signature: string }[] page: { next: string } } --- title: List spend programs path: /developer/v1/spend-programs description: No description request: none response: { data: { description: string display_name: string icon: 'AccountingServicesIcon' | 'AdvertisingIcon' | 'CONTRACTORS_AND_PROFESSIONAL_SERVICES' | 'CUSTOM' | 'CardIcon' | 'EducationStipendIcon' | 'EmployeeRewardsIcon' | 'GroundTransportationIcon' | 'LegalFeesIcon' | 'LodgingIcon' | 'LunchOrderingIcon' | 'OnboardingIcon' | 'PerDiemCardIcon' | 'SOFTWARE' | 'SaasSubscriptionIcon' | 'SoftwareTrialIcon' | 'SuppliesIcon' | 'TeamSocialIcon' | 'TravelExpensesIcon' | 'VirtualEventIcon' | 'WellnessIcon' | 'WorkFromHomeIcon' | 'advertising' | 'airlines' | 'bills' | 'business' | 'car_services' | 'contractor' | 'education' | 'entertainment' | 'event_balloons' | 'event_virtual' | 'food' | 'fuel_and_gas' | 'general_expense' | 'general_merchandise' | 'gift' | 'government_services' | 'internet_and_phone' | 'legal' | 'lodging' | 'lodging_room' | 'newspaper' | 'office' | 'physical_card' | 'procurement_checklist' | 'procurement_intake' | 'professional_services' | 'restaurants' | 'reward' | 'saas_software' | 'shipping' | 'travel_misc' | 'wellness' id: string is_shareable: boolean issue_physical_card_if_needed: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval: 'ANNUAL' | 'CUSTOM' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } }[] page: { next: string } } --- title: Create a spend program path: /developer/v1/spend-programs description: No description request: { description: string display_name: string icon: 'AccountingServicesIcon' | 'AdvertisingIcon' | 'CONTRACTORS_AND_PROFESSIONAL_SERVICES' | 'CUSTOM' | 'CardIcon' | 'EducationStipendIcon' | 'EmployeeRewardsIcon' | 'GroundTransportationIcon' | 'LegalFeesIcon' | 'LodgingIcon' | 'LunchOrderingIcon' | 'OnboardingIcon' | 'PerDiemCardIcon' | 'SOFTWARE' | 'SaasSubscriptionIcon' | 'SoftwareTrialIcon' | 'SuppliesIcon' | 'TeamSocialIcon' | 'TravelExpensesIcon' | 'VirtualEventIcon' | 'WellnessIcon' | 'WorkFromHomeIcon' | 'advertising' | 'airlines' | 'bills' | 'business' | 'car_services' | 'contractor' | 'education' | 'entertainment' | 'event_balloons' | 'event_virtual' | 'food' | 'fuel_and_gas' | 'general_expense' | 'general_merchandise' | 'gift' | 'government_services' | 'internet_and_phone' | 'legal' | 'lodging' | 'lodging_room' | 'newspaper' | 'office' | 'physical_card' | 'procurement_checklist' | 'procurement_intake' | 'professional_services' | 'restaurants' | 'reward' | 'saas_software' | 'shipping' | 'travel_misc' | 'wellness' is_shareable?: boolean issuance_rules?: { automatic?: { applies_to_all?: boolean department_ids?: string[] location_ids?: string[] user_custom_field_ids?: string[] } requestable?: { applies_to_all?: boolean department_ids?: string[] location_ids?: string[] user_custom_field_ids?: string[] } } issue_physical_card_if_needed?: boolean permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } spending_restrictions: { allowed_categories?: number[] allowed_vendors?: string[] blocked_categories?: number[] blocked_mcc_codes?: string[] blocked_vendors?: string[] interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code?: string } lock_date?: string /* date */ transaction_amount_limit?: { amount: number currency_code?: string } } } response: none --- title: Fetch a spend program path: /developer/v1/spend-programs/{spend_program_id} description: No description request: none response: { custom_form_collection: { custom_form_collection_log_entry: { forms: { fields: CustomFormFieldWrapperDumpSchema[] label: string }[] label: string } } description: string display_name: string icon: 'AccountingServicesIcon' | 'AdvertisingIcon' | 'CONTRACTORS_AND_PROFESSIONAL_SERVICES' | 'CUSTOM' | 'CardIcon' | 'EducationStipendIcon' | 'EmployeeRewardsIcon' | 'GroundTransportationIcon' | 'LegalFeesIcon' | 'LodgingIcon' | 'LunchOrderingIcon' | 'OnboardingIcon' | 'PerDiemCardIcon' | 'SOFTWARE' | 'SaasSubscriptionIcon' | 'SoftwareTrialIcon' | 'SuppliesIcon' | 'TeamSocialIcon' | 'TravelExpensesIcon' | 'VirtualEventIcon' | 'WellnessIcon' | 'WorkFromHomeIcon' | 'advertising' | 'airlines' | 'bills' | 'business' | 'car_services' | 'contractor' | 'education' | 'entertainment' | 'event_balloons' | 'event_virtual' | 'food' | 'fuel_and_gas' | 'general_expense' | 'general_merchandise' | 'gift' | 'government_services' | 'internet_and_phone' | 'legal' | 'lodging' | 'lodging_room' | 'newspaper' | 'office' | 'physical_card' | 'procurement_checklist' | 'procurement_intake' | 'professional_services' | 'restaurants' | 'reward' | 'saas_software' | 'shipping' | 'travel_misc' | 'wellness' id: string is_shareable: boolean issue_physical_card_if_needed: boolean line_item_accounting_fields: { external_id: string id: string is_required: boolean name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] permitted_spend_types: { primary_card_enabled: boolean reimbursements_enabled: boolean } restrictions: { allowed_categories: number[] allowed_vendors: string[] auto_lock_date: string /* date */ blocked_categories: number[] blocked_vendors: string[] interval: 'ANNUAL' | 'CUSTOM' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code: string minor_unit_conversion_rate: number } next_interval_reset: string /* date */ start_of_interval: string /* date */ temporary_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } transaction_amount_limit: { amount: number currency_code: string minor_unit_conversion_rate: number } } } --- title: List External Approval Request nodes for a spend program path: /developer/v1/spend-programs/{spend_program_id}/workflow-nodes description: No description request: none response: { workflow_nodes: { name: string next_node_id: string node_id: string service_key: string }[] } --- title: Create a draft spend request via OCR path: /developer/v1/spend-requests/draft-via-ocr description: Requests should be made with `multipart/form-data` content type. request: { idempotency_key: string purchase_order_number_number?: string purchase_order_number_prefix?: string requester_user_id: string spend_intent_id: string } response: { spend_request_id: string } --- title: List statements path: /developer/v1/statements description: No description request: none response: { data: { balance_sections: { charges: { amount: number currency_code: string minor_unit_conversion_rate: number } credits: { amount: number currency_code: string minor_unit_conversion_rate: number } ending_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } entity_id: string id: string opening_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } payments: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] charges: { amount: number currency_code: string minor_unit_conversion_rate: number } credits: { amount: number currency_code: string minor_unit_conversion_rate: number } end_date: string /* date */ ending_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string opening_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } payments: { amount: number currency_code: string minor_unit_conversion_rate: number } preceding_statement_id?: string start_date: string /* date */ statement_lines: { cleared_at?: string /* date */ created_at: string /* date */ id?: string type?: 'CARD_TRANSACTION' | 'CASHBACK' | 'TRANSFER_PAYMENT' }[] statement_url?: string }[] page: { next: string } } --- title: Fetch a statement path: /developer/v1/statements/{statement_id} description: No description request: none response: { balance_sections: { charges: { amount: number currency_code: string minor_unit_conversion_rate: number } credits: { amount: number currency_code: string minor_unit_conversion_rate: number } ending_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } entity_id: string id: string opening_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } payments: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] charges: { amount: number currency_code: string minor_unit_conversion_rate: number } credits: { amount: number currency_code: string minor_unit_conversion_rate: number } end_date: string /* date */ ending_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } id: string opening_balance: { amount: number currency_code: string minor_unit_conversion_rate: number } payments: { amount: number currency_code: string minor_unit_conversion_rate: number } preceding_statement_id?: string start_date: string /* date */ statement_lines: { cleared_at?: string /* date */ created_at: string /* date */ id?: string type?: 'CARD_TRANSACTION' | 'CASHBACK' | 'TRANSFER_PAYMENT' }[] statement_url?: string } --- title: Create a token path: /developer/v1/token description: Expects two headers: - Authorization header formed from base-64 encoded client credentials as `Authorization: Basic ` - `Content-Type: application/x-www-form-urlencoded` Required content body depends on authorization type method, as defined by `grant_type`. - Authorization Code Grant (`grant_type=authorization_code`): `grant_type`, `code`, and `redirect_uri` are required. Request must happen after requested scopes have been approved and exchanged for authorization code. - Refresh Token Grant (`grant_type=refresh_token`): `grant_type` and `refresh_token` are required. User must have previously obtained refresh token in authorization code flow. - Client Credentials Grant (`grant_type=client_credentials`): `grant_type` and `scope` are required. request: { code?: string grant_type: 'authorization_code' | 'client_credentials' | 'refresh_token' redirect_uri?: string refresh_token?: string scope?: string } response: { access_token?: string expires_in?: number id_token?: string refresh_token?: string refresh_token_expires_in?: number scope?: string token_type?: string } --- title: Revoke an access or refresh token path: /developer/v1/token/revoke description: Expects an authorization header formed from base-64 encoded client credentials as `Authorization: Basic `. Content body must be form-encoded. Example: ``` curl \ -X POST \ -H "Authorization: Basic " \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode 'token=$RAMP_API_TOKEN' \ 'https://api.ramp.com/developer/v1/token/revoke' ``` request: { token: string token_type_hint?: 'access_token' | 'refresh_token' } response: none --- title: List transactions path: /developer/v1/transactions description: This endpoint supports filtering and ordering. If state is not set, all transactions except declined transactions will be returned. Note that setting multiple ordering parameters is unsupported. request: none response: { data: { accounting_categories?: { category_id?: string category_name?: string tracking_category_remote_id?: string tracking_category_remote_name?: string tracking_category_remote_type?: string }[] accounting_date: string /* date */ accounting_field_selections?: { category_info?: { external_id?: string id?: string name?: string type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id?: string id?: string name?: string provider_name: string source?: { type?: string } type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount?: number attendees?: { name: string user_id: string }[] card_holder?: { department_id?: string department_name?: string employee_id?: string first_name?: string last_name?: string location_id?: string location_name?: string user_id?: string } card_id?: string card_present: boolean currency_code?: string decline_details?: { amount?: number reason?: 'AUTHORIZER' | 'AUTHORIZER_AP_CARD_VELOCITY_LIMIT' | 'AUTHORIZER_BUSINESS_LIMIT' | 'AUTHORIZER_BUSINESS_SUSPENDED' | 'AUTHORIZER_BUSINESS_VENDOR_BLACKLIST' | 'AUTHORIZER_CARD_AUTO_LOCK_DATE' | 'AUTHORIZER_CARD_CATEGORY_BLACKLIST' | 'AUTHORIZER_CARD_CATEGORY_WHITELIST' | 'AUTHORIZER_CARD_LIMIT' | 'AUTHORIZER_CARD_MCC_BLACKLIST' | 'AUTHORIZER_CARD_MISSING_POLICY_ITEMS' | 'AUTHORIZER_CARD_NOT_ACTIVATED' | 'AUTHORIZER_CARD_PARTIALLY_ACTIVATED' | 'AUTHORIZER_CARD_START_DATE' | 'AUTHORIZER_CARD_SUSPENDED' | 'AUTHORIZER_CARD_TASK_SANCTION' | 'AUTHORIZER_CARD_TOTAL_ACTIVATION_REQUIRED' | 'AUTHORIZER_CARD_VENDOR_BLACKLIST' | 'AUTHORIZER_CARD_VENDOR_WHITELIST' | 'AUTHORIZER_COMMANDO_MODE' | 'AUTHORIZER_FRAUD' | 'AUTHORIZER_FREEZE_TRANSACTIONS_RISK' | 'AUTHORIZER_GLOBAL_MCC_BLACKLIST' | 'AUTHORIZER_MEMBER_LIMIT' | 'AUTHORIZER_NON_AP_CARD_VELOCITY_LIMIT' | 'AUTHORIZER_OOB_BLOCKED_MERCHANT' | 'AUTHORIZER_OOB_DAILY_BUSINESS_BALANCE' | 'AUTHORIZER_OOB_DAILY_CARD_SPEND' | 'AUTHORIZER_RAMP_AUTHORIZATION_METHODS' | 'AUTHORIZER_RAMP_TRANSACTION_AMOUNT_LIMIT' | 'AUTHORIZER_RAMP_VENDOR_RESTRICTIONS' | 'AUTHORIZER_SPEND_ALLOCATION_ARCHIVED_FUNDS' | 'AUTHORIZER_SPEND_ALLOCATION_MEMBER_SUSPENDED' | 'AUTHORIZER_SPEND_ALLOCATION_SUSPENDED' | 'AUTHORIZER_TRANSACTION_AMOUNT_LIMIT' | 'AUTHORIZER_UNAUTHORIZED_USER' | 'AUTHORIZER_UNDER_TRANSACTION_AMOUNT_LIMIT' | 'AUTHORIZER_USER_LIMIT' | 'AUTHORIZER_USER_SUSPENDED' | 'BLOCKED_COUNTRY' | 'CARD_EXPIRED' | 'CARD_LOST_OR_STOLEN' | 'CARD_TERMINATED' | 'CHIP_FAILURE' | 'FORBIDDEN_CATEGORY' | 'INSECURE_AUTHORIZATION_METHOD' | 'INSUFFICIENT_FUNDS' | 'INVALID_PIN' | 'MISSING_CVV' | 'MISSING_EXPIRATION' | 'MOBILE_WALLET_FAILURE' | 'MOBILE_WALLET_TOKEN_NOT_FOUND' | 'MOBILE_WALLET_TOKEN_TERMINATED' | 'NETWORK_DECLINE_ACCOUNT_VERIFICATION' | 'NETWORK_DECLINE_ADVICE' | 'NETWORK_DECLINE_ADVICE_ACQUIRER_ISSUE' | 'NETWORK_DECLINE_ADVICE_ADDITIONAL_AUTHENTICATION_REQUIRED' | 'NETWORK_DECLINE_ADVICE_FORCED_STIP_BY_ISSUER' | 'NETWORK_DECLINE_ADVICE_ISSUER_LOGGED_OFF' | 'NETWORK_DECLINE_ADVICE_ISSUER_TIMEOUT' | 'NETWORK_DECLINE_ADVICE_ISSUER_UNAVAILABLE' | 'NETWORK_DECLINE_ADVICE_PIN_ERROR' | 'NETWORK_DECLINE_ADVICE_RECURRING_PAYMENT' | 'NETWORK_DECLINE_ADVICE_SELECTIVE_ACCEPTANCE_SERVICE' | 'NETWORK_DECLINE_ADVICE_SUSPECTED_FRAUD_TRANSACTION' | 'NETWORK_DECLINE_ADVICE_TOKEN_PROVISIONING_SERVICE' | 'NETWORK_DECLINE_ADVICE_VISA_PAYMENT_CONTROLS_RULE' | 'NOT_ACTIVE' | 'NOT_ALLOWED' | 'NO_AUTO_ROUTED_LIMITS_AVAILABLE' | 'NO_LINKED_SPEND_ALLOCATION' | 'OFAC_VERIFICATION_NEEDED' | 'OPEN_TO_BUY_LIMIT' | 'OTHER' | 'PIN_BLOCKED' | 'PIN_TRY_LIMIT_EXCEEDED' | 'PROCESSOR_CAP' | 'QUASI_CASH' | 'ROUTED_TO_TERMINATED_SPEND_ALLOCATION' | 'STRIPE_WEBHOOK_TIMEOUT' | 'SUSPECTED_BIN_ATTACK' | 'SUSPECTED_FRAUD' | 'THREE_D_SECURE_REQUIRED' | 'USER_BLOCKED' | 'USER_TERMINATED' | 'WRONG_ADDRESS' | 'WRONG_CVV' | 'WRONG_EXPIRATION' | 'WRONG_POSTAL_CODE' } disputes?: { created_at?: string /* date */ id?: string memo?: string type?: string }[] entity_id: string id?: string limit_id?: string line_items?: { accounting_field_selections?: { category_info?: { external_id?: string id?: string name?: string type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id?: string id?: string name?: string provider_name: string source?: { type?: string } type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } converted_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string }[] memo?: string merchant_category_code?: string merchant_category_code_description?: string merchant_data?: { auto_rental: { check_out?: string days?: number } flight: { departure_date: string passenger_name?: string segments: ApiTransactionPurchaseFlightSegment[] } lodging: { check_in?: string nights: number } receipt: { items?: ApiTransactionPurchaseReceiptLineItem[] } reference: string } merchant_descriptor?: string merchant_id: string merchant_location: { city: string country: string postal_code: string state: string } merchant_name?: string minor_unit_conversion_rate: number original_transaction_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } policy_violations?: { created_at?: string /* date */ id?: string memo?: string type?: string }[] receipts?: string[] requires_accounting_vendor_creation_to_sync?: boolean settlement_date?: string /* date */ sk_category_id: number sk_category_name: string spend_program_id?: string state?: 'ALL' | 'CLEARED' | 'COMPLETION' | 'DECLINED' | 'ERROR' | 'PENDING' | 'PENDING_INITIATION' statement_id?: string sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' synced_at: string /* date */ trip_id: string trip_name: string user_transaction_time?: string /* date */ }[] page: { next: string } } --- title: Fetch a transaction path: /developer/v1/transactions/{transaction_id} description: No description request: none response: { accounting_categories?: { category_id?: string category_name?: string tracking_category_remote_id?: string tracking_category_remote_name?: string tracking_category_remote_type?: string }[] accounting_date: string /* date */ accounting_field_selections?: { category_info?: { external_id?: string id?: string name?: string type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id?: string id?: string name?: string provider_name: string source?: { type?: string } type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount?: number attendees?: { name: string user_id: string }[] card_holder?: { department_id?: string department_name?: string employee_id?: string first_name?: string last_name?: string location_id?: string location_name?: string user_id?: string } card_id?: string card_present: boolean currency_code?: string decline_details?: { amount?: number reason?: 'AUTHORIZER' | 'AUTHORIZER_AP_CARD_VELOCITY_LIMIT' | 'AUTHORIZER_BUSINESS_LIMIT' | 'AUTHORIZER_BUSINESS_SUSPENDED' | 'AUTHORIZER_BUSINESS_VENDOR_BLACKLIST' | 'AUTHORIZER_CARD_AUTO_LOCK_DATE' | 'AUTHORIZER_CARD_CATEGORY_BLACKLIST' | 'AUTHORIZER_CARD_CATEGORY_WHITELIST' | 'AUTHORIZER_CARD_LIMIT' | 'AUTHORIZER_CARD_MCC_BLACKLIST' | 'AUTHORIZER_CARD_MISSING_POLICY_ITEMS' | 'AUTHORIZER_CARD_NOT_ACTIVATED' | 'AUTHORIZER_CARD_PARTIALLY_ACTIVATED' | 'AUTHORIZER_CARD_START_DATE' | 'AUTHORIZER_CARD_SUSPENDED' | 'AUTHORIZER_CARD_TASK_SANCTION' | 'AUTHORIZER_CARD_TOTAL_ACTIVATION_REQUIRED' | 'AUTHORIZER_CARD_VENDOR_BLACKLIST' | 'AUTHORIZER_CARD_VENDOR_WHITELIST' | 'AUTHORIZER_COMMANDO_MODE' | 'AUTHORIZER_FRAUD' | 'AUTHORIZER_FREEZE_TRANSACTIONS_RISK' | 'AUTHORIZER_GLOBAL_MCC_BLACKLIST' | 'AUTHORIZER_MEMBER_LIMIT' | 'AUTHORIZER_NON_AP_CARD_VELOCITY_LIMIT' | 'AUTHORIZER_OOB_BLOCKED_MERCHANT' | 'AUTHORIZER_OOB_DAILY_BUSINESS_BALANCE' | 'AUTHORIZER_OOB_DAILY_CARD_SPEND' | 'AUTHORIZER_RAMP_AUTHORIZATION_METHODS' | 'AUTHORIZER_RAMP_TRANSACTION_AMOUNT_LIMIT' | 'AUTHORIZER_RAMP_VENDOR_RESTRICTIONS' | 'AUTHORIZER_SPEND_ALLOCATION_ARCHIVED_FUNDS' | 'AUTHORIZER_SPEND_ALLOCATION_MEMBER_SUSPENDED' | 'AUTHORIZER_SPEND_ALLOCATION_SUSPENDED' | 'AUTHORIZER_TRANSACTION_AMOUNT_LIMIT' | 'AUTHORIZER_UNAUTHORIZED_USER' | 'AUTHORIZER_UNDER_TRANSACTION_AMOUNT_LIMIT' | 'AUTHORIZER_USER_LIMIT' | 'AUTHORIZER_USER_SUSPENDED' | 'BLOCKED_COUNTRY' | 'CARD_EXPIRED' | 'CARD_LOST_OR_STOLEN' | 'CARD_TERMINATED' | 'CHIP_FAILURE' | 'FORBIDDEN_CATEGORY' | 'INSECURE_AUTHORIZATION_METHOD' | 'INSUFFICIENT_FUNDS' | 'INVALID_PIN' | 'MISSING_CVV' | 'MISSING_EXPIRATION' | 'MOBILE_WALLET_FAILURE' | 'MOBILE_WALLET_TOKEN_NOT_FOUND' | 'MOBILE_WALLET_TOKEN_TERMINATED' | 'NETWORK_DECLINE_ACCOUNT_VERIFICATION' | 'NETWORK_DECLINE_ADVICE' | 'NETWORK_DECLINE_ADVICE_ACQUIRER_ISSUE' | 'NETWORK_DECLINE_ADVICE_ADDITIONAL_AUTHENTICATION_REQUIRED' | 'NETWORK_DECLINE_ADVICE_FORCED_STIP_BY_ISSUER' | 'NETWORK_DECLINE_ADVICE_ISSUER_LOGGED_OFF' | 'NETWORK_DECLINE_ADVICE_ISSUER_TIMEOUT' | 'NETWORK_DECLINE_ADVICE_ISSUER_UNAVAILABLE' | 'NETWORK_DECLINE_ADVICE_PIN_ERROR' | 'NETWORK_DECLINE_ADVICE_RECURRING_PAYMENT' | 'NETWORK_DECLINE_ADVICE_SELECTIVE_ACCEPTANCE_SERVICE' | 'NETWORK_DECLINE_ADVICE_SUSPECTED_FRAUD_TRANSACTION' | 'NETWORK_DECLINE_ADVICE_TOKEN_PROVISIONING_SERVICE' | 'NETWORK_DECLINE_ADVICE_VISA_PAYMENT_CONTROLS_RULE' | 'NOT_ACTIVE' | 'NOT_ALLOWED' | 'NO_AUTO_ROUTED_LIMITS_AVAILABLE' | 'NO_LINKED_SPEND_ALLOCATION' | 'OFAC_VERIFICATION_NEEDED' | 'OPEN_TO_BUY_LIMIT' | 'OTHER' | 'PIN_BLOCKED' | 'PIN_TRY_LIMIT_EXCEEDED' | 'PROCESSOR_CAP' | 'QUASI_CASH' | 'ROUTED_TO_TERMINATED_SPEND_ALLOCATION' | 'STRIPE_WEBHOOK_TIMEOUT' | 'SUSPECTED_BIN_ATTACK' | 'SUSPECTED_FRAUD' | 'THREE_D_SECURE_REQUIRED' | 'USER_BLOCKED' | 'USER_TERMINATED' | 'WRONG_ADDRESS' | 'WRONG_CVV' | 'WRONG_EXPIRATION' | 'WRONG_POSTAL_CODE' } disputes?: { created_at?: string /* date */ id?: string memo?: string type?: string }[] entity_id: string id?: string limit_id?: string line_items?: { accounting_field_selections?: { category_info?: { external_id?: string id?: string name?: string type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id?: string id?: string name?: string provider_name: string source?: { type?: string } type?: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } converted_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string }[] memo?: string merchant_category_code?: string merchant_category_code_description?: string merchant_data?: { auto_rental: { check_out?: string days?: number } flight: { departure_date: string passenger_name?: string segments: { arrival_airport_code?: string carrier?: string departure_airport_code?: string flight_number?: string service_class?: string stopover_allowed?: boolean }[] } lodging: { check_in?: string nights: number } receipt: { items?: { commodity_code: string description?: string discount: number quantity?: number tax: number total?: number unit_cost?: number }[] } reference: string } merchant_descriptor?: string merchant_id: string merchant_location: { city: string country: string postal_code: string state: string } merchant_name?: string minor_unit_conversion_rate: number original_transaction_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } policy_violations?: { created_at?: string /* date */ id?: string memo?: string type?: string }[] receipt_affidavit?: string receipts?: string[] requires_accounting_vendor_creation_to_sync?: boolean settlement_date?: string /* date */ sk_category_id: number sk_category_name: string spend_program_id?: string state?: 'ALL' | 'CLEARED' | 'COMPLETION' | 'DECLINED' | 'ERROR' | 'PENDING' | 'PENDING_INITIATION' statement_id?: string sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' synced_at: string /* date */ trip_id: string trip_name: string user_transaction_time?: string /* date */ } --- title: List transfer payments path: /developer/v1/transfers description: For information on how to use this endpoint, refer to the [Transfers Guide](/developer-api/v1/guides/transfers). request: none response: { data: { amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } bank_account_id: string created_at?: string /* date */ entity_id?: string id?: string payment_id?: string status?: 'ACH_CONFIRMED' | 'CANCELED' | 'COMPLETED' | 'ERROR' | 'INITIATED' | 'NOT_ACKED' | 'NOT_ENOUGH_FUNDS' | 'PROCESSING_BY_ODFI' | 'REJECTED_BY_ODFI' | 'RETURNED_BY_RDFI' | 'SUBMITTED_TO_FED' | 'SUBMITTED_TO_RDFI' | 'UNNECESSARY' | 'UPLOADED' sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' }[] page: { next: string } } --- title: Fetch a transfer payment path: /developer/v1/transfers/{transfer_id} description: For information on how to use this endpoint, refer to the [Transfers Guide](/developer-api/v1/guides/transfers). request: none response: { amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } bank_account_id: string created_at?: string /* date */ entity_id?: string id?: string payment_id?: string status?: 'ACH_CONFIRMED' | 'CANCELED' | 'COMPLETED' | 'ERROR' | 'INITIATED' | 'NOT_ACKED' | 'NOT_ENOUGH_FUNDS' | 'PROCESSING_BY_ODFI' | 'REJECTED_BY_ODFI' | 'RETURNED_BY_RDFI' | 'SUBMITTED_TO_FED' | 'SUBMITTED_TO_RDFI' | 'UNNECESSARY' | 'UPLOADED' sync_status: 'NOT_SYNC_READY' | 'SYNCED' | 'SYNC_READY' } --- title: List all trips for the business path: /developer/v1/trips description: No description request: none response: { data: { created_at: string /* date */ description: string end_date: string /* date */ id: string length_in_days: number locations: { end_date: string /* date */ location: { city: string country: string latitude: number longitude: number state: string } start_date: string /* date */ }[] name: string spend_events: { id: string spend_type: 'BILL' | 'REIMBURSEMENT' | 'TRANSACTION' }[] start_date: string /* date */ status: 'cancelled' | 'completed' | 'ongoing' | 'upcoming' total_spend: number travel_types: 'CAR' | 'FLIGHT' | 'HOTEL'[] updated_at: string /* date */ user_id: string }[][] page: { next: string } } --- title: Fetch a trip path: /developer/v1/trips/{trip_id} description: No description request: none response: { created_at: string /* date */ description: string end_date: string /* date */ id: string length_in_days: number locations: { end_date: string /* date */ location: { city: string country: string latitude: number longitude: number state: string } start_date: string /* date */ }[] name: string spend_events: { id: string spend_type: 'BILL' | 'REIMBURSEMENT' | 'TRANSACTION' }[] start_date: string /* date */ status: 'cancelled' | 'completed' | 'ongoing' | 'upcoming' total_spend: number travel_types: 'CAR' | 'FLIGHT' | 'HOTEL'[] updated_at: string /* date */ user_id: string } --- title: List unified requests with pagination path: /developer/v1/unified-requests description: NOTE: - Response schema is not finalized and will have breaking changes prior to release - This endpoint _is_ user aware, meaning perm-based filtering is applied to the query request: none response: { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: ReducedUserForBaseUnifiedRequest deleted_at: string /* date */ entity: BusinessEntityLight id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { blank_canvas_execution_id: string earliest_due_date: string /* date */ has_blocking_approval_requirements: boolean is_expansion_request: boolean is_import_only_spend_program: boolean is_renewal_request: boolean is_sla_due_soon: boolean reduced_agreements: ReducedPayeeAgreementForUnifiedRequestPaginationSchema[] sla_due_date: string /* date */ sla_duration_in_seconds: number spend_end_date?: string /* date */ spend_frequency: SpendRequestFrequency spend_start_date?: string /* date */ tasks: SpendRequestTask[] } & { existing_spend_request: { id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } spend_request_type: 'APPROVAL_ONLY' unified_spend_request_type: 'APPROVAL_ONLY' } | { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: ReducedUserForBaseUnifiedRequest deleted_at: string /* date */ entity: BusinessEntityLight id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { blank_canvas_execution_id: string earliest_due_date: string /* date */ has_blocking_approval_requirements: boolean is_expansion_request: boolean is_import_only_spend_program: boolean is_renewal_request: boolean is_sla_due_soon: boolean reduced_agreements: ReducedPayeeAgreementForUnifiedRequestPaginationSchema[] sla_due_date: string /* date */ sla_duration_in_seconds: number spend_end_date?: string /* date */ spend_frequency: SpendRequestFrequency spend_start_date?: string /* date */ tasks: SpendRequestTask[] } & { amount_details: Money total_amount_details: Money } & { existing_spend_request: { amount_details?: Money id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema purchase_order: ReducedPurchaseOrderForProcurementRequest spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } is_shareable: boolean lock_date?: string /* date */ lock_display: string relative_lock_duration_count: number relative_lock_duration_unit: 'DAYS' | 'MONTHS' | 'WEEKS' | 'YEARS' resulting_spend_allocation_id: string spend_allocation: { id: string payment_restrictions: PaymentRestrictions submission_policy?: PolicyLight } spend_eligibility_starts_at?: string /* date */ spend_request_type: 'SPEND_LIMIT' unified_spend_request_type: 'PROCUREMENT_SPEND_ALLOCATION' } | { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: ReducedUserForBaseUnifiedRequest deleted_at: string /* date */ entity: BusinessEntityLight id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { blank_canvas_execution_id: string earliest_due_date: string /* date */ has_blocking_approval_requirements: boolean is_expansion_request: boolean is_import_only_spend_program: boolean is_renewal_request: boolean is_sla_due_soon: boolean reduced_agreements: ReducedPayeeAgreementForUnifiedRequestPaginationSchema[] sla_due_date: string /* date */ sla_duration_in_seconds: number spend_end_date?: string /* date */ spend_frequency: SpendRequestFrequency spend_start_date?: string /* date */ tasks: SpendRequestTask[] } & { amount_details: Money total_amount_details: Money } & { existing_spend_request: { amount_details?: Money id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema purchase_order: ReducedPurchaseOrderForProcurementRequest spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } purchase_order: { id: string purchase_order_number: string } spend_request_type: 'PURCHASE_ORDER' unified_spend_request_type: 'PURCHASE_ORDER' } | { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: ReducedUserForBaseUnifiedRequest deleted_at: string /* date */ entity: BusinessEntityLight id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { amount_details: Money spend_frequency: SpendRequestFrequency } & { existing_spend_allocation_id: string existing_spend_request: { amount_details?: Money id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } is_shareable: boolean issuance_parameters: { is_physical?: boolean is_temporary_edit_requested?: boolean requesting_physical_card?: boolean } lock_date?: string /* date */ lock_display: string payment_restrictions: { primary_card_enabled?: boolean reimbursements_enabled?: boolean virtual_card_enabled?: boolean } post_spend_approval_instance_policy: { id: string is_default: boolean name: string } prediction: { explanations?: string[] feedback?: SpendAllocationRequestReviewPredictionFeedback[] overall_decision: string prediction_id: string single_sentence_summary?: string system_string_rationale: string } relative_lock_duration_count: number relative_lock_duration_unit: 'DAYS' | 'MONTHS' | 'WEEKS' | 'YEARS' restricted_request_type: 'SPEND_ALLOCATION' resulting_spend_allocation_id: string spend_allocation: { id: string payment_restrictions: PaymentRestrictions submission_policy?: PolicyLight } spend_eligibility_starts_at?: string /* date */ spend_request_type: 'SPEND_LIMIT' spending_restrictions?: { interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' } travel_metadata: { origin: PublicTravelLocation payment_method: 'NONE' | 'SPEND_ALLOCATION' travel_location: PublicTravelLocation travel_request_type: 'GROUP' | 'INDIVIDUAL' trip_end_date: string /* date */ trip_start_date: string /* date */ } unified_spend_request_type: 'SPEND_ALLOCATION' } | { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: ReducedUserForBaseUnifiedRequest deleted_at: string /* date */ entity: BusinessEntityLight id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { resulting_spend_allocation_id: string spend_allocation_outcome_settings: { amount_details: Money is_shareable: boolean lock_date: string /* date */ payment_restrictions: PaymentRestrictions spend_eligibility_starts_at: string /* date */ spend_frequency: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' } spend_request_type: 'TRAVEL' travel_metadata: { origin: PublicTravelLocation payment_method: 'NONE' | 'SPEND_ALLOCATION' travel_location: PublicTravelLocation travel_request_type: 'GROUP' | 'INDIVIDUAL' trip_end_date: string /* date */ trip_start_date: string /* date */ } unified_spend_request_type: 'TRAVEL' }[] --- title: Get details for a specific UnifiedRequest path: /developer/v1/unified-requests/{unified_request_id} description: NOTE: - Response schema is not finalized and will have breaking changes prior to release - This endpoint _is_ user aware, meaning perm-based filtering is applied to the query request: none response: { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_at: string /* date */ entity: { entity_name: string id: string } id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { blank_canvas_execution_id: string earliest_due_date: string /* date */ has_blocking_approval_requirements: boolean is_expansion_request: boolean is_import_only_spend_program: boolean is_renewal_request: boolean is_sla_due_soon: boolean reduced_agreements: ReducedPayeeAgreementForUnifiedRequestPaginationSchema[] sla_due_date: string /* date */ sla_duration_in_seconds: number spend_end_date?: string /* date */ spend_frequency: SpendRequestFrequency spend_start_date?: string /* date */ tasks: SpendRequestTask[] } & { existing_spend_request: { id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } spend_request_type: 'APPROVAL_ONLY' unified_spend_request_type: 'APPROVAL_ONLY' } & { ai_intake_thread_id: string ai_request_copilot_thread_id: string savings: { amount_saved: number attributed_users?: AttributedUserResponse[] comment: string created_at: string /* date */ id: string type: string updated_at: string /* date */ }[] } & { allowed_overage_percent: number approver_comment?: string budget_path: { amount_details: BudgetAmountCellResponseSchemaBase path_entities: BudgetEntityCellWithTrackingCategoryResponseSchema[] path_id: string } change_request_custom_form_collection_response_uuid?: string comment_thread_uuid: string custom_form_collection_response_uuid?: string deleted_by_user?: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_reason?: string internal_memo?: string pending_change_request?: { submitted_at: string /* date */ uuid: string } ramp_event_history_uuid: string } & { agent_executions: { agents?: AgentInWorkflow[] completed_agent_executions: CompletedAgentExecution[] } agreements: { auto_renewal: boolean available_actions: PayeeAgreementForUnifiedRequestDetailDumpAvailableActions currency: string days_remaining: PayeeAgreementDaysRemainingPydanticSchema description: string end_date: string /* date */ id: string last_date_to_terminate: string /* date */ name: string payee: ReducedPayeePydanticSchema source: PayeeAgreementSpendRequestMappingSource start_date: string /* date */ total_value: number }[] ai_summary_async_job_uuid: string ai_summary_data: { span_id?: string summary?: string takeaways?: string[] title?: string } approval_chain_data: { approval_instance_uuid: string approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' is_delegate: boolean is_in_approval_reminder_cooldown: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean reminder_communication_last_sent_at: string revert_note: string revert_note_author: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' } approval_events: { _ramp_event_type: string acting_user_id: number approval_chain_events: SanitizedApprovalStep[] date: string displayed_event_text: string event_order: number event_type: string notes: FormattedTextDataclass | string }[] available_actions: { archive: SpendRequestActionDetailSchema change_payment_method: SpendRequestActionDetailSchema edit: SpendRequestActionDetailSchema has_permission_to_edit_primary_fields: boolean has_permission_to_edit_secondary_fields: boolean request_changes: SpendRequestActionDetailSchema } available_actions_v2: { archive: ActionDetailSchema_ArchiveDenialReason_ change_payment_method: ActionDetailSchema_ChangePaymentMethodDenialReason_ create_agreement_post_approval: ActionDetailSchema_AgreementCreationPostApprovalDenialReason_ edit_accounting_merchant: ActionDetailSchema_EditAccountingMerchantDenialReason_ edit_line_items: ActionDetailSchema_EditLineItemsDenialReason_ edit_primary_fields: ActionDetailSchema_EditPrimaryFieldsDenialReason_ edit_request_coordinator: ActionDetailSchema_EditRequestCoordinatorDenialReason_ edit_secondary_fields: ActionDetailSchema_EditSecondaryFieldsDenialReason_ issue_purchase_order_fund: ActionDetailSchema_IssuePurchaseOrderFundDenialReason_ request_again: ActionDetailSchema_RequestAgainDenialReason_ request_changes: ActionDetailSchema_RequestChangesDenialReason_ send_pdf_to_vendor: ActionDetailSchema_SendPdfToVendorDenialReason_ upload_bill: ActionDetailSchema_UploadBillDenialReason_ } blank_canvas_execution_id: string change_request_diff: { fields: ProcurementChangeRequestAccountingFieldDiff | ProcurementChangeRequestFilesFieldDiff | ProcurementChangeRequestLegacyFieldDiff | ProcurementChangeRequestLineItemFieldDiff | ProcurementChangeRequestLinkFieldDiff | ProcurementChangeRequestTextFieldDiff[] } create_agreement_post_request_approval: boolean custom_form_files: { created_at: string /* date */ displayed_filename: string document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' download_pdf_url: string download_url: string mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' network_vendor_document_id: string original_filename: string ramp_document: ProcurementRampDocumentSchema spend_request_document_uuid: string url: string uuid: string }[] default_question_config_summary: { amount_config?: SpendIntentAmountQuestionConfig frequency_config?: SpendIntentFrequencyQuestionConfig funds_config?: SpendIntentFundsQuestionConfig request_name_config?: SpendIntentRequestNameQuestionConfig } enable_agreement_renewal_reminders_post_approval: boolean forms: { global_form_response_statuses: GlobalFormResponseStatusDumpSchema[] vendor_onboarding: VendorOnboardingStatusDump[][] vendor_onboarding_statuses: VendorOnboardingStatusDump[] } in_progress_ai_summary_job_ids: string[] is_form_outdated: boolean is_requesting_new_vendor?: boolean is_user_on_approval_instance: boolean linkable_agreements: { auto_renewal: boolean currency?: Currency description: string end_date: string /* date */ last_date_to_terminate?: string /* date */ name: string payee_agreement_id: string payee_logo?: string payee_name?: string start_date: string /* date */ total_value: number up_for_renewal: boolean }[] purchase_order_documents?: { created_at: string /* date */ document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' document_source: 'DEVELOPER_API' | 'DOCUSIGN' | 'IRONCLAD' | 'RAMP' document_type: 'PURCHASE_ORDER' | 'SPEND_REQUEST' download_pdf_url: string external_document_url: string filetype: 'base64' | 'csv' | 'doc' | 'docx' | 'eml' | 'gif' | 'gz' | 'heic' | 'html' | 'iif' | 'jpeg' | 'json' | 'jsonl' | 'md' | 'msg' | 'npy' | 'ods' | 'parquet' | 'pdf' | 'pgp' | 'png' | 'txt' | 'webp' | 'xls' | 'xlsx' | 'xml' | 'zip' id: string is_ocr_document: boolean mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' original_filename: string payee_agreement_ids: string[] procurement_document_result_response: ProcurementDocumentResultResponse ramp_document: ProcurementRampDocumentSchema spend_request_document_url: string spend_request_download_document_url: string spend_request_uuid: string spend_request_view_document_url: string type: none }[] renewals: { auto_renewal: boolean available_actions: PayeeRenewalForSpendRequestAvailableActionsSchema cancellation_reason: string created_at: string /* date */ currency: string days_remaining: PayeeRenewalDaysRemainingPydanticSchema deleted_at: string /* date */ effective_status: RenewalStatus end_date: string /* date */ id: string is_active: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ notifications_on: boolean num_seats: number source: PayeeRenewalSpendRequestMappingSource start_date: string /* date */ status: RenewalStatus total_value: number updated_at: string /* date */ }[] sanitized_approval_steps: { _ramp_event_type: string assigned_entities: SanitizedAssignedEntity[] displayed_event_text: string event_order: number event_type: 'NOTIFY' | 'REQUIRE' | 'REQUIRE_ALL' id: string is_current_step: boolean is_delegate: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean notes: string raw_step_order: number status: 'ADMIN_APPROVED' | 'ADMIN_REJECTED' | 'APPROVED' | 'COMPLETED' | 'MANUALLY_SKIPPED' | 'PENDING' | 'REJECTED' | 'SKIPPED' | 'TERMINATED' step_creator_user_id: string step_date: string substeps: SanitizedApprovalSubstep[] trigger_entity_metadata?: TriggerEntityMetadata }[] sourcing_event: { current_rfx: RFXForProcurementRequestDetail id: string name: string } spend_intent_config_snapshot: { purchase_order?: PurchaseOrderConfigSnapshot } spend_request_documents?: { created_at: string /* date */ document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' document_source: 'DEVELOPER_API' | 'DOCUSIGN' | 'IRONCLAD' | 'RAMP' document_type: 'PURCHASE_ORDER' | 'SPEND_REQUEST' download_pdf_url: string external_document_url: string filetype: 'base64' | 'csv' | 'doc' | 'docx' | 'eml' | 'gif' | 'gz' | 'heic' | 'html' | 'iif' | 'jpeg' | 'json' | 'jsonl' | 'md' | 'msg' | 'npy' | 'ods' | 'parquet' | 'pdf' | 'pgp' | 'png' | 'txt' | 'webp' | 'xls' | 'xlsx' | 'xml' | 'zip' id: string is_ocr_document: boolean mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' original_filename: string payee_agreement_ids: string[] procurement_document_result_response: ProcurementDocumentResultResponse ramp_document: ProcurementRampDocumentSchema spend_request_document_url: string spend_request_download_document_url: string spend_request_uuid: string spend_request_view_document_url: string type: none }[] workflow_execution_status: { last_updated: string status: WorkflowExecutionStatus } workflow_form_files: { created_at: string /* date */ displayed_filename: string document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' download_pdf_url: string download_url: string mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' network_vendor_document_id: string original_filename: string ramp_document: ProcurementRampDocumentSchema spend_request_document_uuid: string url: string uuid: string }[] } | { ai_intake_thread_id: string ai_request_copilot_thread_id: string savings: { amount_saved: number attributed_users?: AttributedUserResponse[] comment: string created_at: string /* date */ id: string type: string updated_at: string /* date */ }[] } & { allowed_overage_percent: number approver_comment?: string budget_path: { amount_details: BudgetAmountCellResponseSchemaBase path_entities: BudgetEntityCellWithTrackingCategoryResponseSchema[] path_id: string } change_request_custom_form_collection_response_uuid?: string comment_thread_uuid: string custom_form_collection_response_uuid?: string deleted_by_user?: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_reason?: string internal_memo?: string pending_change_request?: { submitted_at: string /* date */ uuid: string } ramp_event_history_uuid: string } & { agent_executions: { agents?: AgentInWorkflow[] completed_agent_executions: CompletedAgentExecution[] } agreements: { auto_renewal: boolean available_actions: PayeeAgreementForUnifiedRequestDetailDumpAvailableActions currency: string days_remaining: PayeeAgreementDaysRemainingPydanticSchema description: string end_date: string /* date */ id: string last_date_to_terminate: string /* date */ name: string payee: ReducedPayeePydanticSchema source: PayeeAgreementSpendRequestMappingSource start_date: string /* date */ total_value: number }[] ai_summary_async_job_uuid: string ai_summary_data: { span_id?: string summary?: string takeaways?: string[] title?: string } approval_chain_data: { approval_instance_uuid: string approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' is_delegate: boolean is_in_approval_reminder_cooldown: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean reminder_communication_last_sent_at: string revert_note: string revert_note_author: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' } approval_events: { _ramp_event_type: string acting_user_id: number approval_chain_events: SanitizedApprovalStep[] date: string displayed_event_text: string event_order: number event_type: string notes: FormattedTextDataclass | string }[] available_actions: { archive: SpendRequestActionDetailSchema change_payment_method: SpendRequestActionDetailSchema edit: SpendRequestActionDetailSchema has_permission_to_edit_primary_fields: boolean has_permission_to_edit_secondary_fields: boolean request_changes: SpendRequestActionDetailSchema } available_actions_v2: { archive: ActionDetailSchema_ArchiveDenialReason_ change_payment_method: ActionDetailSchema_ChangePaymentMethodDenialReason_ create_agreement_post_approval: ActionDetailSchema_AgreementCreationPostApprovalDenialReason_ edit_accounting_merchant: ActionDetailSchema_EditAccountingMerchantDenialReason_ edit_line_items: ActionDetailSchema_EditLineItemsDenialReason_ edit_primary_fields: ActionDetailSchema_EditPrimaryFieldsDenialReason_ edit_request_coordinator: ActionDetailSchema_EditRequestCoordinatorDenialReason_ edit_secondary_fields: ActionDetailSchema_EditSecondaryFieldsDenialReason_ issue_purchase_order_fund: ActionDetailSchema_IssuePurchaseOrderFundDenialReason_ request_again: ActionDetailSchema_RequestAgainDenialReason_ request_changes: ActionDetailSchema_RequestChangesDenialReason_ send_pdf_to_vendor: ActionDetailSchema_SendPdfToVendorDenialReason_ upload_bill: ActionDetailSchema_UploadBillDenialReason_ } blank_canvas_execution_id: string change_request_diff: { fields: ProcurementChangeRequestAccountingFieldDiff | ProcurementChangeRequestFilesFieldDiff | ProcurementChangeRequestLegacyFieldDiff | ProcurementChangeRequestLineItemFieldDiff | ProcurementChangeRequestLinkFieldDiff | ProcurementChangeRequestTextFieldDiff[] } create_agreement_post_request_approval: boolean custom_form_files: { created_at: string /* date */ displayed_filename: string document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' download_pdf_url: string download_url: string mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' network_vendor_document_id: string original_filename: string ramp_document: ProcurementRampDocumentSchema spend_request_document_uuid: string url: string uuid: string }[] default_question_config_summary: { amount_config?: SpendIntentAmountQuestionConfig frequency_config?: SpendIntentFrequencyQuestionConfig funds_config?: SpendIntentFundsQuestionConfig request_name_config?: SpendIntentRequestNameQuestionConfig } enable_agreement_renewal_reminders_post_approval: boolean forms: { global_form_response_statuses: GlobalFormResponseStatusDumpSchema[] vendor_onboarding: VendorOnboardingStatusDump[][] vendor_onboarding_statuses: VendorOnboardingStatusDump[] } in_progress_ai_summary_job_ids: string[] is_form_outdated: boolean is_requesting_new_vendor?: boolean is_user_on_approval_instance: boolean linkable_agreements: { auto_renewal: boolean currency?: Currency description: string end_date: string /* date */ last_date_to_terminate?: string /* date */ name: string payee_agreement_id: string payee_logo?: string payee_name?: string start_date: string /* date */ total_value: number up_for_renewal: boolean }[] purchase_order_documents?: { created_at: string /* date */ document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' document_source: 'DEVELOPER_API' | 'DOCUSIGN' | 'IRONCLAD' | 'RAMP' document_type: 'PURCHASE_ORDER' | 'SPEND_REQUEST' download_pdf_url: string external_document_url: string filetype: 'base64' | 'csv' | 'doc' | 'docx' | 'eml' | 'gif' | 'gz' | 'heic' | 'html' | 'iif' | 'jpeg' | 'json' | 'jsonl' | 'md' | 'msg' | 'npy' | 'ods' | 'parquet' | 'pdf' | 'pgp' | 'png' | 'txt' | 'webp' | 'xls' | 'xlsx' | 'xml' | 'zip' id: string is_ocr_document: boolean mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' original_filename: string payee_agreement_ids: string[] procurement_document_result_response: ProcurementDocumentResultResponse ramp_document: ProcurementRampDocumentSchema spend_request_document_url: string spend_request_download_document_url: string spend_request_uuid: string spend_request_view_document_url: string type: none }[] renewals: { auto_renewal: boolean available_actions: PayeeRenewalForSpendRequestAvailableActionsSchema cancellation_reason: string created_at: string /* date */ currency: string days_remaining: PayeeRenewalDaysRemainingPydanticSchema deleted_at: string /* date */ effective_status: RenewalStatus end_date: string /* date */ id: string is_active: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ notifications_on: boolean num_seats: number source: PayeeRenewalSpendRequestMappingSource start_date: string /* date */ status: RenewalStatus total_value: number updated_at: string /* date */ }[] sanitized_approval_steps: { _ramp_event_type: string assigned_entities: SanitizedAssignedEntity[] displayed_event_text: string event_order: number event_type: 'NOTIFY' | 'REQUIRE' | 'REQUIRE_ALL' id: string is_current_step: boolean is_delegate: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean notes: string raw_step_order: number status: 'ADMIN_APPROVED' | 'ADMIN_REJECTED' | 'APPROVED' | 'COMPLETED' | 'MANUALLY_SKIPPED' | 'PENDING' | 'REJECTED' | 'SKIPPED' | 'TERMINATED' step_creator_user_id: string step_date: string substeps: SanitizedApprovalSubstep[] trigger_entity_metadata?: TriggerEntityMetadata }[] sourcing_event: { current_rfx: RFXForProcurementRequestDetail id: string name: string } spend_intent_config_snapshot: { purchase_order?: PurchaseOrderConfigSnapshot } spend_request_documents?: { created_at: string /* date */ document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' document_source: 'DEVELOPER_API' | 'DOCUSIGN' | 'IRONCLAD' | 'RAMP' document_type: 'PURCHASE_ORDER' | 'SPEND_REQUEST' download_pdf_url: string external_document_url: string filetype: 'base64' | 'csv' | 'doc' | 'docx' | 'eml' | 'gif' | 'gz' | 'heic' | 'html' | 'iif' | 'jpeg' | 'json' | 'jsonl' | 'md' | 'msg' | 'npy' | 'ods' | 'parquet' | 'pdf' | 'pgp' | 'png' | 'txt' | 'webp' | 'xls' | 'xlsx' | 'xml' | 'zip' id: string is_ocr_document: boolean mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' original_filename: string payee_agreement_ids: string[] procurement_document_result_response: ProcurementDocumentResultResponse ramp_document: ProcurementRampDocumentSchema spend_request_document_url: string spend_request_download_document_url: string spend_request_uuid: string spend_request_view_document_url: string type: none }[] workflow_execution_status: { last_updated: string status: WorkflowExecutionStatus } workflow_form_files: { created_at: string /* date */ displayed_filename: string document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' download_pdf_url: string download_url: string mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' network_vendor_document_id: string original_filename: string ramp_document: ProcurementRampDocumentSchema spend_request_document_uuid: string url: string uuid: string }[] } & { purchase_order: { accounting_tracking_category_selections: PurchaseOrderAccountingTrackingCategorySelectionDump[] id: string punchout_order_id: string purchase_order_fund_uuid: string purchase_order_line_item_log_entries: PurchaseOrderLineItemLogEntryForProcurementRequestDetail[] purchase_order_number: string should_create_fund_on_approval: boolean } purchase_order_detail: { accounting_tracking_category_selections: PurchaseOrderAccountingTrackingCategorySelectionDump[] id: string punchout_order_id: string purchase_order_fund_uuid: string purchase_order_line_item_log_entries: PurchaseOrderLineItemLogEntryForProcurementRequestDetail[] purchase_order_number: string should_create_fund_on_approval: boolean } } & { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_at: string /* date */ entity: { entity_name: string id: string } id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { blank_canvas_execution_id: string earliest_due_date: string /* date */ has_blocking_approval_requirements: boolean is_expansion_request: boolean is_import_only_spend_program: boolean is_renewal_request: boolean is_sla_due_soon: boolean reduced_agreements: ReducedPayeeAgreementForUnifiedRequestPaginationSchema[] sla_due_date: string /* date */ sla_duration_in_seconds: number spend_end_date?: string /* date */ spend_frequency: SpendRequestFrequency spend_start_date?: string /* date */ tasks: SpendRequestTask[] } & { amount_details: Money total_amount_details: Money } & { existing_spend_request: { amount_details?: Money id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema purchase_order: ReducedPurchaseOrderForProcurementRequest spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } is_shareable: boolean lock_date?: string /* date */ lock_display: string relative_lock_duration_count: number relative_lock_duration_unit: 'DAYS' | 'MONTHS' | 'WEEKS' | 'YEARS' resulting_spend_allocation_id: string spend_allocation: { id: string payment_restrictions: PaymentRestrictions submission_policy?: PolicyLight } spend_eligibility_starts_at?: string /* date */ spend_request_type: 'SPEND_LIMIT' unified_spend_request_type: 'PROCUREMENT_SPEND_ALLOCATION' } | { ai_intake_thread_id: string ai_request_copilot_thread_id: string savings: { amount_saved: number attributed_users?: AttributedUserResponse[] comment: string created_at: string /* date */ id: string type: string updated_at: string /* date */ }[] } & { allowed_overage_percent: number approver_comment?: string budget_path: { amount_details: BudgetAmountCellResponseSchemaBase path_entities: BudgetEntityCellWithTrackingCategoryResponseSchema[] path_id: string } change_request_custom_form_collection_response_uuid?: string comment_thread_uuid: string custom_form_collection_response_uuid?: string deleted_by_user?: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_reason?: string internal_memo?: string pending_change_request?: { submitted_at: string /* date */ uuid: string } ramp_event_history_uuid: string } & { agent_executions: { agents?: AgentInWorkflow[] completed_agent_executions: CompletedAgentExecution[] } agreements: { auto_renewal: boolean available_actions: PayeeAgreementForUnifiedRequestDetailDumpAvailableActions currency: string days_remaining: PayeeAgreementDaysRemainingPydanticSchema description: string end_date: string /* date */ id: string last_date_to_terminate: string /* date */ name: string payee: ReducedPayeePydanticSchema source: PayeeAgreementSpendRequestMappingSource start_date: string /* date */ total_value: number }[] ai_summary_async_job_uuid: string ai_summary_data: { span_id?: string summary?: string takeaways?: string[] title?: string } approval_chain_data: { approval_instance_uuid: string approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' is_delegate: boolean is_in_approval_reminder_cooldown: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean reminder_communication_last_sent_at: string revert_note: string revert_note_author: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' } approval_events: { _ramp_event_type: string acting_user_id: number approval_chain_events: SanitizedApprovalStep[] date: string displayed_event_text: string event_order: number event_type: string notes: FormattedTextDataclass | string }[] available_actions: { archive: SpendRequestActionDetailSchema change_payment_method: SpendRequestActionDetailSchema edit: SpendRequestActionDetailSchema has_permission_to_edit_primary_fields: boolean has_permission_to_edit_secondary_fields: boolean request_changes: SpendRequestActionDetailSchema } available_actions_v2: { archive: ActionDetailSchema_ArchiveDenialReason_ change_payment_method: ActionDetailSchema_ChangePaymentMethodDenialReason_ create_agreement_post_approval: ActionDetailSchema_AgreementCreationPostApprovalDenialReason_ edit_accounting_merchant: ActionDetailSchema_EditAccountingMerchantDenialReason_ edit_line_items: ActionDetailSchema_EditLineItemsDenialReason_ edit_primary_fields: ActionDetailSchema_EditPrimaryFieldsDenialReason_ edit_request_coordinator: ActionDetailSchema_EditRequestCoordinatorDenialReason_ edit_secondary_fields: ActionDetailSchema_EditSecondaryFieldsDenialReason_ issue_purchase_order_fund: ActionDetailSchema_IssuePurchaseOrderFundDenialReason_ request_again: ActionDetailSchema_RequestAgainDenialReason_ request_changes: ActionDetailSchema_RequestChangesDenialReason_ send_pdf_to_vendor: ActionDetailSchema_SendPdfToVendorDenialReason_ upload_bill: ActionDetailSchema_UploadBillDenialReason_ } blank_canvas_execution_id: string change_request_diff: { fields: ProcurementChangeRequestAccountingFieldDiff | ProcurementChangeRequestFilesFieldDiff | ProcurementChangeRequestLegacyFieldDiff | ProcurementChangeRequestLineItemFieldDiff | ProcurementChangeRequestLinkFieldDiff | ProcurementChangeRequestTextFieldDiff[] } create_agreement_post_request_approval: boolean custom_form_files: { created_at: string /* date */ displayed_filename: string document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' download_pdf_url: string download_url: string mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' network_vendor_document_id: string original_filename: string ramp_document: ProcurementRampDocumentSchema spend_request_document_uuid: string url: string uuid: string }[] default_question_config_summary: { amount_config?: SpendIntentAmountQuestionConfig frequency_config?: SpendIntentFrequencyQuestionConfig funds_config?: SpendIntentFundsQuestionConfig request_name_config?: SpendIntentRequestNameQuestionConfig } enable_agreement_renewal_reminders_post_approval: boolean forms: { global_form_response_statuses: GlobalFormResponseStatusDumpSchema[] vendor_onboarding: VendorOnboardingStatusDump[][] vendor_onboarding_statuses: VendorOnboardingStatusDump[] } in_progress_ai_summary_job_ids: string[] is_form_outdated: boolean is_requesting_new_vendor?: boolean is_user_on_approval_instance: boolean linkable_agreements: { auto_renewal: boolean currency?: Currency description: string end_date: string /* date */ last_date_to_terminate?: string /* date */ name: string payee_agreement_id: string payee_logo?: string payee_name?: string start_date: string /* date */ total_value: number up_for_renewal: boolean }[] purchase_order_documents?: { created_at: string /* date */ document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' document_source: 'DEVELOPER_API' | 'DOCUSIGN' | 'IRONCLAD' | 'RAMP' document_type: 'PURCHASE_ORDER' | 'SPEND_REQUEST' download_pdf_url: string external_document_url: string filetype: 'base64' | 'csv' | 'doc' | 'docx' | 'eml' | 'gif' | 'gz' | 'heic' | 'html' | 'iif' | 'jpeg' | 'json' | 'jsonl' | 'md' | 'msg' | 'npy' | 'ods' | 'parquet' | 'pdf' | 'pgp' | 'png' | 'txt' | 'webp' | 'xls' | 'xlsx' | 'xml' | 'zip' id: string is_ocr_document: boolean mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' original_filename: string payee_agreement_ids: string[] procurement_document_result_response: ProcurementDocumentResultResponse ramp_document: ProcurementRampDocumentSchema spend_request_document_url: string spend_request_download_document_url: string spend_request_uuid: string spend_request_view_document_url: string type: none }[] renewals: { auto_renewal: boolean available_actions: PayeeRenewalForSpendRequestAvailableActionsSchema cancellation_reason: string created_at: string /* date */ currency: string days_remaining: PayeeRenewalDaysRemainingPydanticSchema deleted_at: string /* date */ effective_status: RenewalStatus end_date: string /* date */ id: string is_active: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ notifications_on: boolean num_seats: number source: PayeeRenewalSpendRequestMappingSource start_date: string /* date */ status: RenewalStatus total_value: number updated_at: string /* date */ }[] sanitized_approval_steps: { _ramp_event_type: string assigned_entities: SanitizedAssignedEntity[] displayed_event_text: string event_order: number event_type: 'NOTIFY' | 'REQUIRE' | 'REQUIRE_ALL' id: string is_current_step: boolean is_delegate: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean notes: string raw_step_order: number status: 'ADMIN_APPROVED' | 'ADMIN_REJECTED' | 'APPROVED' | 'COMPLETED' | 'MANUALLY_SKIPPED' | 'PENDING' | 'REJECTED' | 'SKIPPED' | 'TERMINATED' step_creator_user_id: string step_date: string substeps: SanitizedApprovalSubstep[] trigger_entity_metadata?: TriggerEntityMetadata }[] sourcing_event: { current_rfx: RFXForProcurementRequestDetail id: string name: string } spend_intent_config_snapshot: { purchase_order?: PurchaseOrderConfigSnapshot } spend_request_documents?: { created_at: string /* date */ document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' document_source: 'DEVELOPER_API' | 'DOCUSIGN' | 'IRONCLAD' | 'RAMP' document_type: 'PURCHASE_ORDER' | 'SPEND_REQUEST' download_pdf_url: string external_document_url: string filetype: 'base64' | 'csv' | 'doc' | 'docx' | 'eml' | 'gif' | 'gz' | 'heic' | 'html' | 'iif' | 'jpeg' | 'json' | 'jsonl' | 'md' | 'msg' | 'npy' | 'ods' | 'parquet' | 'pdf' | 'pgp' | 'png' | 'txt' | 'webp' | 'xls' | 'xlsx' | 'xml' | 'zip' id: string is_ocr_document: boolean mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' original_filename: string payee_agreement_ids: string[] procurement_document_result_response: ProcurementDocumentResultResponse ramp_document: ProcurementRampDocumentSchema spend_request_document_url: string spend_request_download_document_url: string spend_request_uuid: string spend_request_view_document_url: string type: none }[] workflow_execution_status: { last_updated: string status: WorkflowExecutionStatus } workflow_form_files: { created_at: string /* date */ displayed_filename: string document_category: 'ADDENDUM_OR_RIDER' | 'AMENDMENT' | 'CAIQ_LITE' | 'CERTIFICATE_OF_INSURANCE' | 'CONTRACT_OTHER' | 'DATA_PROTECTION_AGREEMENT' | 'ECOVADIS' | 'ENGAGEMENT_LETTER' | 'FAQ' | 'FORM_1099' | 'GDPR' | 'HIPAA' | 'INVOICE' | 'ISO_27001' | 'ISO_9001' | 'MSA' | 'NDA' | 'NMSDC_CERTIFICATION' | 'ORDER_FORM' | 'OTHER' | 'PAYMENT_INSTRUCTIONS' | 'PCI_DSS' | 'PEN_TEST_REPORT' | 'PRIVACY_POLICY' | 'QUOTE' | 'SECURITY_DOCUMENT' | 'SECURITY_EXHIBIT' | 'SIG' | 'SLA' | 'SOC_1_TYPE_1' | 'SOC_1_TYPE_2' | 'SOC_2' | 'SOW' | 'TAX_DOCUMENT' | 'TOS' | 'VENDOR_CONTRACT' | 'VENDOR_CREDIT' | 'VOIDED_CHECK' | 'W8' | 'W9' download_pdf_url: string download_url: string mime_type: 'application/json' | 'application/msword' | 'application/pdf' | 'application/vnd.apache.parquet' | 'application/vnd.ms-excel' | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' | 'image/gif' | 'image/heic' | 'image/jpeg' | 'image/png' | 'image/webp' | 'text/csv' | 'text/markdown' network_vendor_document_id: string original_filename: string ramp_document: ProcurementRampDocumentSchema spend_request_document_uuid: string url: string uuid: string }[] } & { purchase_order: { accounting_tracking_category_selections: PurchaseOrderAccountingTrackingCategorySelectionDump[] id: string punchout_order_id: string purchase_order_fund_uuid: string purchase_order_line_item_log_entries: PurchaseOrderLineItemLogEntryForProcurementRequestDetail[] purchase_order_number: string should_create_fund_on_approval: boolean } purchase_order_detail: { accounting_tracking_category_selections: PurchaseOrderAccountingTrackingCategorySelectionDump[] id: string punchout_order_id: string purchase_order_fund_uuid: string purchase_order_line_item_log_entries: PurchaseOrderLineItemLogEntryForProcurementRequestDetail[] purchase_order_number: string should_create_fund_on_approval: boolean } } & { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_at: string /* date */ entity: { entity_name: string id: string } id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { blank_canvas_execution_id: string earliest_due_date: string /* date */ has_blocking_approval_requirements: boolean is_expansion_request: boolean is_import_only_spend_program: boolean is_renewal_request: boolean is_sla_due_soon: boolean reduced_agreements: ReducedPayeeAgreementForUnifiedRequestPaginationSchema[] sla_due_date: string /* date */ sla_duration_in_seconds: number spend_end_date?: string /* date */ spend_frequency: SpendRequestFrequency spend_start_date?: string /* date */ tasks: SpendRequestTask[] } & { amount_details: Money total_amount_details: Money } & { existing_spend_request: { amount_details?: Money id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema purchase_order: ReducedPurchaseOrderForProcurementRequest spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } purchase_order: { id: string purchase_order_number: string } spend_request_type: 'PURCHASE_ORDER' unified_spend_request_type: 'PURCHASE_ORDER' } | { ai_intake_thread_id: string ai_request_copilot_thread_id: string savings: { amount_saved: number attributed_users?: AttributedUserResponse[] comment: string created_at: string /* date */ id: string type: string updated_at: string /* date */ }[] } & { allowed_overage_percent: number approver_comment?: string budget_path: { amount_details: BudgetAmountCellResponseSchemaBase path_entities: BudgetEntityCellWithTrackingCategoryResponseSchema[] path_id: string } change_request_custom_form_collection_response_uuid?: string comment_thread_uuid: string custom_form_collection_response_uuid?: string deleted_by_user?: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_reason?: string internal_memo?: string pending_change_request?: { submitted_at: string /* date */ uuid: string } ramp_event_history_uuid: string } & { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_at: string /* date */ entity: { entity_name: string id: string } id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { amount_details: Money spend_frequency: SpendRequestFrequency } & { existing_spend_allocation_id: string existing_spend_request: { amount_details?: Money id?: string is_shareable?: boolean lock_date?: string /* date */ post_spend_approval_instance_policy: ApprovalPolicyLightSchema spend_eligibility_starts_at?: string /* date */ spend_frequency?: SpendRequestFrequency unified_request_id: string unified_spend_request_type: 'APPROVAL_ONLY' | 'PROCUREMENT_SPEND_ALLOCATION' | 'PURCHASE_ORDER' | 'SPEND_ALLOCATION' | 'TRAVEL' } is_shareable: boolean issuance_parameters: { is_physical?: boolean is_temporary_edit_requested?: boolean requesting_physical_card?: boolean } lock_date?: string /* date */ lock_display: string payment_restrictions: { primary_card_enabled?: boolean reimbursements_enabled?: boolean virtual_card_enabled?: boolean } post_spend_approval_instance_policy: { id: string is_default: boolean name: string } prediction: { explanations?: string[] feedback?: SpendAllocationRequestReviewPredictionFeedback[] overall_decision: string prediction_id: string single_sentence_summary?: string system_string_rationale: string } relative_lock_duration_count: number relative_lock_duration_unit: 'DAYS' | 'MONTHS' | 'WEEKS' | 'YEARS' restricted_request_type: 'SPEND_ALLOCATION' resulting_spend_allocation_id: string spend_allocation: { id: string payment_restrictions: PaymentRestrictions submission_policy?: PolicyLight } spend_eligibility_starts_at?: string /* date */ spend_request_type: 'SPEND_LIMIT' spending_restrictions?: { interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' } travel_metadata: { origin: PublicTravelLocation payment_method: 'NONE' | 'SPEND_ALLOCATION' travel_location: PublicTravelLocation travel_request_type: 'GROUP' | 'INDIVIDUAL' trip_end_date: string /* date */ trip_start_date: string /* date */ } unified_spend_request_type: 'SPEND_ALLOCATION' } & { accounting_auto_mark_ready_rule_enabled: boolean accounting_rules: { id?: number tracking_category: { additional_data: TrackingCategorySchemaAdditionalData cardholder_edits_allowed: boolean default_option: TrackingCategoryOption display_name: string display_name_short: string entity_settings: TrackingCategoryEntitySetting[] helper_text: string id: number input_type: 'BOOLEAN' | 'DATE' | 'FREE_FORM_TEXT' | 'SINGLE_CHOICE' is_active: boolean is_custom_field: boolean is_hidden: boolean is_internal: boolean is_splittable: boolean refresh_status: TrackingCategoryRefreshStatusItem remote_field_locations: 'BODY' | 'EXPENSE_LINE' | 'ITEM_LINE' | 'LINE_ITEM'[] remote_id: string remote_name: string remote_type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' settings: TrackingCategorySettings sync_with_erp: boolean uuid: string } tracking_category_id: number tracking_category_option: { additional_data: TrackingCategoryOptionAdditionalData display_name: string id: number is_active: boolean label: string parent?: TrackingCategoryOptionLight remote_code: string remote_id: string remote_name: string subtitle: string title: string uuid: string visibility: 'HIDDEN' | 'VISIBLE' } }[] approval_chain_data: { approval_instance_uuid: string approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' is_delegate: boolean is_in_approval_reminder_cooldown: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean reminder_communication_last_sent_at: string revert_note: string revert_note_author: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' } approval_events: { _ramp_event_type: string acting_user_id: number approval_chain_events: SanitizedApprovalStep[] date: string displayed_event_text: string event_order: number event_type: string notes: FormattedTextDataclass | string }[] available_actions: { archive: { can_perform: boolean denial_reason: string } edit: { can_perform: boolean denial_reason: string } } available_actions_v2: { archive: ActionAllowedSchema | ActionDeniedSchema_ArchiveDenialReason_ edit_primary_fields: ActionAllowedSchema | ActionDeniedSchema_EditPrimaryFieldsDenialReason_ } default_transaction_memo: string members: { email: string first_name: string has_set_name?: boolean id: string is_deleted: boolean is_inactive: boolean is_preloaded: boolean last_name: string profile_picture_url: string }[] spending_restrictions: { amount?: number amount_details: Money categories_blacklist?: number[] categories_whitelist?: number[] currency?: { currency: string currency_sign: string name: string num_decimal_places: number } interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' lock_date?: string /* date */ lock_display?: string relative_lock_duration_count?: number relative_lock_duration_unit?: 'DAYS' | 'MONTHS' | 'WEEKS' | 'YEARS' start_date?: string /* date */ transaction_amount_limit?: number vendor_blacklist?: number[] vendor_whitelist?: number[] } submission_policy_id: string travel_metadata: { origin: PublicTravelLocation payment_method: 'NONE' | 'SPEND_ALLOCATION' spend_estimate_line_items: TravelSpendEstimateLineItem[] travel_location: { city?: string country?: string lat?: number lng?: number state?: string timezone?: string trip_destination_id?: string } travel_request_type: 'GROUP' | 'INDIVIDUAL' trip_end_date: string /* date */ trip_start_date: string /* date */ } trip: { id: string trip_name: string } } | { ai_intake_thread_id: string ai_request_copilot_thread_id: string savings: { amount_saved: number attributed_users?: AttributedUserResponse[] comment: string created_at: string /* date */ id: string type: string updated_at: string /* date */ }[] } & { allowed_overage_percent: number approver_comment?: string budget_path: { amount_details: BudgetAmountCellResponseSchemaBase path_entities: BudgetEntityCellWithTrackingCategoryResponseSchema[] path_id: string } change_request_custom_form_collection_response_uuid?: string comment_thread_uuid: string custom_form_collection_response_uuid?: string deleted_by_user?: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_reason?: string internal_memo?: string pending_change_request?: { submitted_at: string /* date */ uuid: string } ramp_event_history_uuid: string } & { approval_instance_id: string approved_at: string /* date */ created_at: string /* date */ created_by_user: { deleted_at: string /* date */ department: DepartmentDisplay email: string first_name: string full_name: string has_physical_card: boolean last_name: string location: LocationDisplay profile_picture_url: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' uuid: string } deleted_at: string /* date */ entity: { entity_name: string id: string } id: string name: string ramp_url: string reason: string rejected_at: string /* date */ request_duration: number submitted_at: string /* date */ wbp_info: WbpInfoResponseSchema } & { coordinator: ReducedUserForBaseUnifiedRequest name: string owner: ReducedUserForBaseUnifiedRequest payee: ReducedPayee request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' secondary_display_name: string spend_intent: ReducedSpendIntentForBaseUnifiedSpendRequest spend_request_id: string spend_request_vendor_type: 'EXISTING' | 'NEW' unified_request_type: 'SPEND_REQUEST' user_defined_name: string } & { resulting_spend_allocation_id: string spend_allocation_outcome_settings: { amount_details: Money is_shareable: boolean lock_date: string /* date */ payment_restrictions: PaymentRestrictions spend_eligibility_starts_at: string /* date */ spend_frequency: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' } spend_request_type: 'TRAVEL' travel_metadata: { origin: PublicTravelLocation payment_method: 'NONE' | 'SPEND_ALLOCATION' travel_location: PublicTravelLocation travel_request_type: 'GROUP' | 'INDIVIDUAL' trip_end_date: string /* date */ trip_start_date: string /* date */ } unified_spend_request_type: 'TRAVEL' } & { approval_chain_data: { approval_instance_uuid: string approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' is_delegate: boolean is_in_approval_reminder_cooldown: boolean is_last_step_for_user: boolean needs_user_action: boolean needs_user_trigger_action: boolean reminder_communication_last_sent_at: string revert_note: string revert_note_author: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' } attendees_count: number available_actions: { archive: { can_perform: boolean denial_reason: string } edit: { can_perform: boolean denial_reason: string } } group_trip: { id: string } members: { email: string first_name: string has_set_name?: boolean id: string is_deleted: boolean is_inactive: boolean is_preloaded: boolean last_name: string profile_picture_url: string }[] spend_allocation_outcome_settings: { accounting_auto_mark_ready_rule_enabled: boolean accounting_rules: TrackingCategoryOptionMapping[] amount_details: Money categories_blacklist: number[] categories_whitelist: number[] is_shareable: boolean lock_date: string /* date */ payment_restrictions: PaymentRestrictions post_spend_approval_instance_policy: ApprovalPolicyLightSchema spend_eligibility_starts_at: string /* date */ spend_frequency: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' submission_policy: PolicyLight vendor_blacklist: number[] vendor_whitelist: number[] } travel_metadata: { origin: PublicTravelLocation payment_method: 'NONE' | 'SPEND_ALLOCATION' spend_estimate_line_items: TravelSpendEstimateLineItem[] travel_location: { city?: string country?: string lat?: number lng?: number state?: string timezone?: string trip_destination_id?: string } travel_request_type: 'GROUP' | 'INDIVIDUAL' trip_end_date: string /* date */ trip_start_date: string /* date */ } trip: { id: string trip_name: string } } --- title: List users path: /developer/v1/users description: No description request: none response: { data: { business_id: string custom_fields: { name: string value: string }[] department_id: string email?: string employee_id: string entity_id: string first_name?: string id?: string is_manager: boolean last_name?: string location_id: string manager_id: string phone: string role?: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' scheduled_deactivation_date: string /* date */ scheduled_invitation_date: string /* date */ status: 'INVITE_EXPIRED' | 'INVITE_PENDING' | 'USER_ACTIVE' | 'USER_DRAFT' | 'USER_INACTIVE' | 'USER_ONBOARDING' | 'USER_SUSPENDED' }[] page: { next: string } } --- title: Create a user invite path: /developer/v1/users/deferred description: Call this endpoint to trigger an async task to send out a user invite via email. Users will need to accept the invite in order to be onboarded. Assign a user to a specific entity by specifying a `location_id` on creation. Locations are mapped to entities with a many-to-one relationship. request: { department_id?: string direct_manager_id?: string email: string first_name: string idempotency_key: string is_draft?: boolean is_manager?: boolean last_name: string location_id?: string role: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' scheduled_deactivation_date?: string /* date */ } response: none --- title: Fetch deferred task status path: /developer/v1/users/deferred/status/{task_id} description: No description request: none response: { context?: { acting_user_id?: string } data?: { error?: string user_id?: string } id?: string status?: string } --- title: Fetch a user path: /developer/v1/users/{user_id} description: No description request: none response: { business_id: string custom_fields: { name: string value: string }[] department_id: string email?: string employee_id: string entity_id: string first_name?: string id?: string is_manager: boolean last_name?: string location_id: string manager_id: string phone: string role?: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' scheduled_deactivation_date: string /* date */ scheduled_invitation_date: string /* date */ status: 'INVITE_EXPIRED' | 'INVITE_PENDING' | 'USER_ACTIVE' | 'USER_DRAFT' | 'USER_INACTIVE' | 'USER_ONBOARDING' | 'USER_SUSPENDED' } --- title: Update a user path: /developer/v1/users/{user_id} description: No description request: { auto_promote?: boolean department_id?: string direct_manager_id?: string first_name?: string is_manager?: boolean last_name?: string location_id?: string role?: 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'GUEST_USER' | 'IT_ADMIN' scheduled_deactivation_date?: string /* date */ } response: none --- title: Deactivate a user path: /developer/v1/users/{user_id}/deactivate description: When users are deactivated, they will no longer be able to log in, spend on cards, or receive any notifications from Ramp. request: none response: Record --- title: Manage a user's invite lifecycle path: /developer/v1/users/{user_id}/invite description: Performs one of three actions against a draft user, delegating to the Identity-owned invite / scheduled-invitation services: - `SCHEDULE`: Create or update a scheduled invitation at `invitation_time`. - `DESCHEDULE`: Cancel any pending scheduled invitation. - `SEND_NOW`: Immediately publish the draft invite and send the invite email. The user must be in DRAFT status for `SCHEDULE` and `SEND_NOW`. `DESCHEDULE` is a no-op if no pending scheduled invitation exists. request: { action: 'DESCHEDULE' | 'SCHEDULE' | 'SEND_NOW' invitation_time?: string /* date */ } response: Record --- title: Reactivate a user path: /developer/v1/users/{user_id}/reactivate description: Upon reactivation, users can log in to Ramp again, spend on their previously issued cards and resume receiving Ramp notifications. request: none response: Record --- title: Create a spend limit and retrieve sensitive card details path: /developer/v1/vault/cards description: Vault API access is required to use this endpoint. request: { accounting_rules?: { field_id: string field_option_id: string }[] allowed_overage_percent_override?: string | number display_name?: string spend_program_id?: string spending_restrictions?: { allowed_categories?: number[] allowed_vendors?: string[] blocked_categories?: number[] blocked_mcc_codes?: string[] blocked_vendors?: string[] interval: 'ANNUAL' | 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'TERTIARY' | 'TOTAL' | 'WEEKLY' | 'YEARLY' limit: { amount: number currency_code?: string } lock_date?: string /* date */ transaction_amount_limit?: { amount: number currency_code?: string } } user_id: string } response: none --- title: Fetch a card's sensitive details path: /developer/v1/vault/cards/{card_id} description: Accepts a card's ID and returns its sensitive details. Vault API access is required to use this endpoint. request: none response: { cvv?: string expiration: string id?: string pan?: string } --- title: List vendors path: /developer/v1/vendors description: No description request: none response: { data: { accounting_vendor_remote_id: string address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } billing_frequency?: 'ANNUAL' | 'MONTHLY' | 'MULTIPLE' | 'NA' | 'OTHER' | 'QUARTERLY' | 'ROLLING' | 'TBD' | 'TWICE_A_YEAR' contacts: string[] country: string created_at: string /* date */ default_entity_id: string default_payment_method: { policy?: DefaultPaymentMethodAddressPolicy | DefaultPaymentMethodBankAccountPolicy | DefaultPaymentMethodCardPolicy update_source?: 'AUTO' | 'MANUAL' } description?: string external_vendor_id: string federal_tax_classification?: 'C_CORPORATION' | 'INDIVIDUAL_SOLE_PROPRIETOR_SINGLE_MEMBER_LLC' | 'INTERNATIONAL' | 'LLC_C_CORPORATION' | 'LLC_PARTNERSHIP' | 'LLC_S_CORPORATION' | 'OTHER' | 'PARTNERSHIP' | 'S_CORPORATION' | 'TRUST_ESTATE' id: string is_active: boolean is_deletable: boolean merchant_id?: string name: string name_legal?: string sk_category_id?: number sk_category_name?: string state?: string subsidiary?: string[] tax_address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } total_spend_all_time: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_30_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_365_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_ytd: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_owner_id: string vendor_type?: 'BUSINESS' | 'INDIVIDUAL' }[] page: { next: string } } --- title: Create a new vendor path: /developer/v1/vendors description: Vendors created in the API are approved by default, and are not subject to existing approval policies. request: { accounting_vendor_remote_id?: string address?: { address_line_1: string address_line_2?: string city: string country?: string postal_code: string state?: string } business_vendor_contacts: { email: string first_name?: string last_name?: string phone?: string } country: string external_vendor_id?: string name?: string request_payment_details?: boolean request_tax_details?: boolean state?: string vendor_owner_id?: string vendor_tracking_category_option_id?: string } response: { accounting_vendor_remote_id: string address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } billing_frequency?: 'ANNUAL' | 'MONTHLY' | 'MULTIPLE' | 'NA' | 'OTHER' | 'QUARTERLY' | 'ROLLING' | 'TBD' | 'TWICE_A_YEAR' contacts: string[] country: string created_at: string /* date */ default_entity_id: string default_payment_method: { policy?: { data: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } | { data: { account_nickname?: string currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' id: string is_default?: boolean payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' } kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } | { card_payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } update_source?: 'AUTO' | 'MANUAL' } description?: string external_vendor_id: string federal_tax_classification?: 'C_CORPORATION' | 'INDIVIDUAL_SOLE_PROPRIETOR_SINGLE_MEMBER_LLC' | 'INTERNATIONAL' | 'LLC_C_CORPORATION' | 'LLC_PARTNERSHIP' | 'LLC_S_CORPORATION' | 'OTHER' | 'PARTNERSHIP' | 'S_CORPORATION' | 'TRUST_ESTATE' id: string is_active: boolean is_deletable: boolean merchant_id?: string name: string name_legal?: string sk_category_id?: number sk_category_name?: string state?: string subsidiary?: string[] tax_address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } total_spend_all_time: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_30_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_365_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_ytd: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_owner_id: string vendor_type?: 'BUSINESS' | 'INDIVIDUAL' } --- title: List vendor agreements path: /developer/v1/vendors/agreements description: No description request: { agreement_custom_records?: { filters: Record | { filters: CustomRecordsQueryAndClauseRequestBody | CustomRecordsQueryOrClauseRequestBody | RowQueryFilterRequestBody[] type?: 'or' } | { clause: RowQueryGreaterThanClauseRequestBody | RowQueryGreaterThanOrEqualClauseRequestBody | RowQueryIsNotClauseRequestBody | RowQueryIsNotNullClauseRequestBody | RowQueryIsNullClauseRequestBody | RowQueryLessThanClauseRequestBody | RowQueryLessThanOrEqualClauseRequestBody | RowQueryOneOfClauseRequestBody column_id: string type?: 'filter' }[] type?: 'and' } auto_renews?: boolean contract_owner_ids?: string[] department_ids?: string[] end_date_range?: { end?: { offset: number unit: 'day' | 'month' | 'quarter' | 'week' | 'year' } start?: { offset: number unit: 'day' | 'month' | 'quarter' | 'week' | 'year' } } exclude_snoozed?: boolean has_end_date?: boolean has_pending_expansion_requests?: boolean has_reminders?: boolean include_archived?: boolean is_active?: boolean is_up_for_renewal?: boolean last_date_to_terminate_range?: { end?: { offset: number unit: 'day' | 'month' | 'quarter' | 'week' | 'year' } start?: { offset: number unit: 'day' | 'month' | 'quarter' | 'week' | 'year' } } max_days_remaining?: number max_end_date?: string /* date */ max_last_date_to_terminate?: string /* date */ max_start_date?: string /* date */ max_total_value?: string | number min_days_remaining?: number min_end_date?: string /* date */ min_last_date_to_terminate?: string /* date */ min_start_date?: string /* date */ min_total_value?: string | number page_size?: number payee_agreement_ids?: string[] payee_ids?: string[] payee_owner_ids?: string[] renewal_status?: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED'[] renewal_status_exclude?: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED'[] start?: string start_date_range?: { end?: { offset: number unit: 'day' | 'month' | 'quarter' | 'week' | 'year' } start?: { offset: number unit: 'day' | 'month' | 'quarter' | 'week' | 'year' } } } response: { data: { auto_renewal: boolean available_actions: Record contract_owners: { email: string first_name: string full_name: string id: string last_name: string profile_picture_url?: string }[] created_at: string /* date */ currency: string custom_record_field_values: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] days_remaining: { end_date_used?: 'END_DATE' | 'LAST_DATE_TO_TERMINATE' is_expired?: boolean is_overdue?: boolean num_days_until_end?: number } deleted_at?: string /* date */ department?: { id: string name: string } description?: string draft_spend_requests: { id: string name?: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' total_amount?: string unified_request_id: string updated_at?: string /* date */ }[] end_date?: string /* date */ has_approved_renewal_request: boolean id: string is_snoozed: boolean is_up_for_renewal: boolean last_date_to_terminate?: string /* date */ latest_renewal_request?: { currency: string id: string name?: string request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string } logo?: string name: string notifications_on: boolean payee_id: string payee_name: string renewal_status: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED' start_date?: string /* date */ total_value: { amount: number currency_code: string minor_unit_conversion_rate: number } updated_at: string /* date */ vendor_owners: { first_name: string full_name: string id: string last_name: string }[] }[] page: { next: string } } --- title: Delete a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id} description: No description request: none response: none --- title: Fetch a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id} description: No description request: none response: { archived_at?: string /* date */ auto_renewal: boolean available_actions: { can_edit: { status: 'allowed' } | { denial_reason: 'NOT_CONTRACT_OWNER' | 'NOT_VENDOR_OWNER' | 'NO_PERMISSION' status: 'denied' } delete: { status: 'allowed' } | { denial_reason: 'APPROVED_REQUEST' | 'PENDING_REQUEST' | 'REJECTED_REQUEST' status: 'denied' } request_expansion: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } request_renewal: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'MARKED_AS_WONT_RENEW' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } set_status: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } } comment_thread_uuid: string contract_owners: { email: string first_name: string full_name: string id: string last_name: string profile_picture_url?: string }[] created_at: string /* date */ currency: string custom_record_field_values: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] days_remaining: { end_date_used?: 'END_DATE' | 'LAST_DATE_TO_TERMINATE' is_expired?: boolean is_overdue?: boolean num_days_until_end?: number } deleted_at?: string /* date */ description: string draft_spend_requests: { id: string name?: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' total_amount?: string unified_request_id: string updated_at?: string /* date */ }[] end_date: string /* date */ has_approved_renewal_request: boolean id: string is_active: boolean is_snoozed: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ latest_rejected_renewal_request?: { can_view: boolean id: string reason: string rejected_at: string /* date */ unified_request_id: string user_full_name: string } line_items?: Record[] name: string notification_trigger_group?: { id: string notification_triggers: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number id: string }[] payee_business_settings_id: number recipient_approval_groups: { id: string members: { member: ApiVendorAgreementNotificationRecipientUser }[] name: string }[] recipient_users: { full_name: string id: string }[] should_notify_vendor_owner_manager: boolean type: 'CUSTOM_SETTING' | 'DEFAULT_BUSINESS_SETTING' } notifications_on: boolean payee: { approval_instance_uuid: string approval_status: 'APPROVED' | 'PENDING' | 'REJECTED' available_actions: { can_edit: boolean can_view: boolean can_view_vendors_tab: boolean } business_vendor: { uuid: string vendor_tracking_category_option_id: number } card_merchants: { merchant_name: string uuid: string }[] dba_name: string deleted_at: string /* date */ image_url: string is_draft: boolean name: string owners: { department: string email: string full_name: string id: string is_inactive: boolean is_terminated: boolean location: string profile_picture_url: string }[] uuid: string website: string } pending_spend_requests: { approval_chain_metadata: { allow_self_approvals?: boolean approval_reminder_cooldown?: { can_send_reminder: boolean period_in_days: number reminder_communication_last_sent_at: string } approvals_paused?: boolean approvals_paused_by?: { deleted_at: string email: string first_name: string id: string last_name: string lifecycle_status?: UserLifecycleStatus profile_picture_url: string role: 'ADVISOR_CONSOLE_ADMIN' | 'ADVISOR_CONSOLE_USER' | 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'DEVELOPER_ADMIN' | 'GUEST_USER' | 'IT_ADMIN' | 'PRESALES_DEMO_USER' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' | 'VENDOR_NETWORK_ADMIN' } can_add_steps?: boolean can_skip?: boolean current_step_in_chain: number has_blocking_approval_requirements?: boolean is_last_step_for_user: boolean is_pausable?: boolean last_action_date: string needs_user_action: boolean next_approvers: { approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: ApprovalTriggerType assigned_user_full_name: string assigned_user_id: string delegator_user_full_name: string delegator_user_id: string entity_full_name: string entity_id: string entity_type: 'ANY_ADMIN' | 'GROUP' | 'MANAGER' | 'TRIGGER' | 'USER' | 'VENDOR_OWNER' | 'VENDOR_OWNER_MANAGER' external_url: string notes: string provider_type?: string }[] number_of_approvals: number rejection_note?: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' total_number_of_approvals: number total_steps_in_chain: number } can_view: boolean created_at: string /* date */ created_by: string currency: string display_name: string id: string name: string request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' spend_intent_name: string submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string }[] purchase_orders: { can_view: boolean documents: Record[] end_date: string /* date */ id: string name: string paid_by_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } paid_by_card_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } pending_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } purchase_order_number: string spend_request: { approved_at: string /* date */ currency: string id: string name: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string } start_date: string /* date */ status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] ramp_event_history_id: string renewal_action?: Record renewal_status: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED' start_date: string /* date */ total_value: { amount: number currency_code: string minor_unit_conversion_rate: number } updated_at: string /* date */ } --- title: Update a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id} description: No description request: { auto_renewal?: boolean contract_owner_ids?: string[] description?: string end_date?: string /* date */ last_date_to_terminate?: string /* date */ line_items?: { discount?: number | string id?: string price_per_unit?: number | string product_or_service_name?: string quantity?: number | string term?: string time_unit?: string total_price?: number | string unit?: string }[] name?: string notifications_on?: boolean renewal_action?: { type?: 'NOT_STARTED' } | { mark_vendor_inactive?: boolean reason: string type?: 'CANCELLED' } | { reason: string type?: 'RENEWED' } renewal_notification_settings?: { notification_triggers?: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number }[] recipient_approval_group_uuids?: string[] recipient_dynamic_user_group_uuids?: string[] recipient_user_uuids?: string[] should_notify_contract_owner_managers?: boolean should_notify_vendor_owner_manager: boolean should_notify_vendor_owners?: boolean } renewal_notification_snooze?: { duration: number unit?: 'DAYS' } | { duration: number unit?: 'MONTHS' } | { duration: number unit?: 'WEEKS' } start_date?: string /* date */ total_value?: { amount: number currency_code?: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' } } response: { archived_at?: string /* date */ auto_renewal: boolean available_actions: { can_edit: { status: 'allowed' } | { denial_reason: 'NOT_CONTRACT_OWNER' | 'NOT_VENDOR_OWNER' | 'NO_PERMISSION' status: 'denied' } delete: { status: 'allowed' } | { denial_reason: 'APPROVED_REQUEST' | 'PENDING_REQUEST' | 'REJECTED_REQUEST' status: 'denied' } request_expansion: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } request_renewal: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'MARKED_AS_WONT_RENEW' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } set_status: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } } comment_thread_uuid: string contract_owners: { email: string first_name: string full_name: string id: string last_name: string profile_picture_url?: string }[] created_at: string /* date */ currency: string custom_record_field_values: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] days_remaining: { end_date_used?: 'END_DATE' | 'LAST_DATE_TO_TERMINATE' is_expired?: boolean is_overdue?: boolean num_days_until_end?: number } deleted_at?: string /* date */ description: string draft_spend_requests: { id: string name?: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' total_amount?: string unified_request_id: string updated_at?: string /* date */ }[] end_date: string /* date */ has_approved_renewal_request: boolean id: string is_active: boolean is_snoozed: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ latest_rejected_renewal_request?: { can_view: boolean id: string reason: string rejected_at: string /* date */ unified_request_id: string user_full_name: string } line_items?: Record[] name: string notification_trigger_group?: { id: string notification_triggers: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number id: string }[] payee_business_settings_id: number recipient_approval_groups: { id: string members: { member: { full_name: string id: string } }[] name: string }[] recipient_users: { full_name: string id: string }[] should_notify_vendor_owner_manager: boolean type: 'CUSTOM_SETTING' | 'DEFAULT_BUSINESS_SETTING' } notifications_on: boolean payee: { approval_instance_uuid: string approval_status: 'APPROVED' | 'PENDING' | 'REJECTED' available_actions: { can_edit: boolean can_view: boolean can_view_vendors_tab: boolean } business_vendor: { uuid: string vendor_tracking_category_option_id: number } card_merchants: { merchant_name: string uuid: string }[] dba_name: string deleted_at: string /* date */ image_url: string is_draft: boolean name: string owners: { department: string email: string full_name: string id: string is_inactive: boolean is_terminated: boolean location: string profile_picture_url: string }[] uuid: string website: string } pending_spend_requests: { approval_chain_metadata: { allow_self_approvals?: boolean approval_reminder_cooldown?: { can_send_reminder: boolean period_in_days: number reminder_communication_last_sent_at: string } approvals_paused?: boolean approvals_paused_by?: { deleted_at: string email: string first_name: string id: string last_name: string lifecycle_status?: 'ACTIVE' | 'DELETED' | 'DRAFT' | 'INACTIVE' | 'PENDING' profile_picture_url: string role: 'ADVISOR_CONSOLE_ADMIN' | 'ADVISOR_CONSOLE_USER' | 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'DEVELOPER_ADMIN' | 'GUEST_USER' | 'IT_ADMIN' | 'PRESALES_DEMO_USER' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' | 'VENDOR_NETWORK_ADMIN' } can_add_steps?: boolean can_skip?: boolean current_step_in_chain: number has_blocking_approval_requirements?: boolean is_last_step_for_user: boolean is_pausable?: boolean last_action_date: string needs_user_action: boolean next_approvers: { approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' assigned_user_full_name: string assigned_user_id: string delegator_user_full_name: string delegator_user_id: string entity_full_name: string entity_id: string entity_type: 'ANY_ADMIN' | 'GROUP' | 'MANAGER' | 'TRIGGER' | 'USER' | 'VENDOR_OWNER' | 'VENDOR_OWNER_MANAGER' external_url: string notes: string provider_type?: string }[] number_of_approvals: number rejection_note?: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' total_number_of_approvals: number total_steps_in_chain: number } can_view: boolean created_at: string /* date */ created_by: string currency: string display_name: string id: string name: string request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' spend_intent_name: string submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string }[] purchase_orders: { can_view: boolean documents: Record[] end_date: string /* date */ id: string name: string paid_by_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } paid_by_card_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } pending_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } purchase_order_number: string spend_request: { approved_at: string /* date */ currency: string id: string name: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string } start_date: string /* date */ status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] ramp_event_history_id: string renewal_action?: Record renewal_status: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED' start_date: string /* date */ total_value: { amount: number currency_code: string minor_unit_conversion_rate: number } updated_at: string /* date */ } --- title: Upload documents for a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id}/documents description: This endpoint accepts the [multipart/form-data](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format. Include each agreement file as a repeated `documents` part. The request must also include an `X-Idempotency-Key` header. request: none response: { batch_id: string document_count: number job_id: string } --- title: Link purchase orders or documents to a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id}/link description: No description request: { documents?: { id: string type?: 'CUSTOM_FORM_FILE' } | { id: string type?: 'PAYEE_DOCUMENT' } | { id: string type?: 'SPEND_REQUEST_DOCUMENT' }[] purchase_order_ids?: string[] } response: { agreement: { archived_at?: string /* date */ auto_renewal: boolean available_actions: { can_edit: { status: 'allowed' } | { denial_reason: 'NOT_CONTRACT_OWNER' | 'NOT_VENDOR_OWNER' | 'NO_PERMISSION' status: 'denied' } delete: { status: 'allowed' } | { denial_reason: 'APPROVED_REQUEST' | 'PENDING_REQUEST' | 'REJECTED_REQUEST' status: 'denied' } request_expansion: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } request_renewal: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'MARKED_AS_WONT_RENEW' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } set_status: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } } comment_thread_uuid: string contract_owners: { email: string first_name: string full_name: string id: string last_name: string profile_picture_url?: string }[] created_at: string /* date */ currency: string custom_record_field_values: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] days_remaining: { end_date_used?: 'END_DATE' | 'LAST_DATE_TO_TERMINATE' is_expired?: boolean is_overdue?: boolean num_days_until_end?: number } deleted_at?: string /* date */ description: string draft_spend_requests: { id: string name?: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' total_amount?: string unified_request_id: string updated_at?: string /* date */ }[] end_date: string /* date */ has_approved_renewal_request: boolean id: string is_active: boolean is_snoozed: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ latest_rejected_renewal_request?: { can_view: boolean id: string reason: string rejected_at: string /* date */ unified_request_id: string user_full_name: string } line_items?: Record[] name: string notification_trigger_group?: { id: string notification_triggers: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number id: string }[] payee_business_settings_id: number recipient_approval_groups: { id: string members: { member: { full_name: string id: string } }[] name: string }[] recipient_users: { full_name: string id: string }[] should_notify_vendor_owner_manager: boolean type: 'CUSTOM_SETTING' | 'DEFAULT_BUSINESS_SETTING' } notifications_on: boolean payee: { approval_instance_uuid: string approval_status: 'APPROVED' | 'PENDING' | 'REJECTED' available_actions: { can_edit: boolean can_view: boolean can_view_vendors_tab: boolean } business_vendor: { uuid: string vendor_tracking_category_option_id: number } card_merchants: { merchant_name: string uuid: string }[] dba_name: string deleted_at: string /* date */ image_url: string is_draft: boolean name: string owners: { department: string email: string full_name: string id: string is_inactive: boolean is_terminated: boolean location: string profile_picture_url: string }[] uuid: string website: string } pending_spend_requests: { approval_chain_metadata: { allow_self_approvals?: boolean approval_reminder_cooldown?: { can_send_reminder: boolean period_in_days: number reminder_communication_last_sent_at: string } approvals_paused?: boolean approvals_paused_by?: { deleted_at: string email: string first_name: string id: string last_name: string lifecycle_status?: 'ACTIVE' | 'DELETED' | 'DRAFT' | 'INACTIVE' | 'PENDING' profile_picture_url: string role: 'ADVISOR_CONSOLE_ADMIN' | 'ADVISOR_CONSOLE_USER' | 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'DEVELOPER_ADMIN' | 'GUEST_USER' | 'IT_ADMIN' | 'PRESALES_DEMO_USER' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' | 'VENDOR_NETWORK_ADMIN' } can_add_steps?: boolean can_skip?: boolean current_step_in_chain: number has_blocking_approval_requirements?: boolean is_last_step_for_user: boolean is_pausable?: boolean last_action_date: string needs_user_action: boolean next_approvers: { approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' assigned_user_full_name: string assigned_user_id: string delegator_user_full_name: string delegator_user_id: string entity_full_name: string entity_id: string entity_type: 'ANY_ADMIN' | 'GROUP' | 'MANAGER' | 'TRIGGER' | 'USER' | 'VENDOR_OWNER' | 'VENDOR_OWNER_MANAGER' external_url: string notes: string provider_type?: string }[] number_of_approvals: number rejection_note?: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' total_number_of_approvals: number total_steps_in_chain: number } can_view: boolean created_at: string /* date */ created_by: string currency: string display_name: string id: string name: string request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' spend_intent_name: string submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string }[] purchase_orders: { can_view: boolean documents: Record[] end_date: string /* date */ id: string name: string paid_by_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } paid_by_card_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } pending_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } purchase_order_number: string spend_request: { approved_at: string /* date */ currency: string id: string name: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string } start_date: string /* date */ status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] ramp_event_history_id: string renewal_action?: Record renewal_status: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED' start_date: string /* date */ total_value: { amount: number currency_code: string minor_unit_conversion_rate: number } updated_at: string /* date */ } number_of_documents_linked: number number_of_purchase_orders_linked: number } --- title: Link a spend request to a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id}/link-spend-request description: No description request: { source: 'EXPANSION_REQUEST' | 'RENEWAL' spend_request_id: string } response: { agreement: { archived_at?: string /* date */ auto_renewal: boolean available_actions: { can_edit: { status: 'allowed' } | { denial_reason: 'NOT_CONTRACT_OWNER' | 'NOT_VENDOR_OWNER' | 'NO_PERMISSION' status: 'denied' } delete: { status: 'allowed' } | { denial_reason: 'APPROVED_REQUEST' | 'PENDING_REQUEST' | 'REJECTED_REQUEST' status: 'denied' } request_expansion: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } request_renewal: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'MARKED_AS_WONT_RENEW' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } set_status: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } } comment_thread_uuid: string contract_owners: { email: string first_name: string full_name: string id: string last_name: string profile_picture_url?: string }[] created_at: string /* date */ currency: string custom_record_field_values: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] days_remaining: { end_date_used?: 'END_DATE' | 'LAST_DATE_TO_TERMINATE' is_expired?: boolean is_overdue?: boolean num_days_until_end?: number } deleted_at?: string /* date */ description: string draft_spend_requests: { id: string name?: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' total_amount?: string unified_request_id: string updated_at?: string /* date */ }[] end_date: string /* date */ has_approved_renewal_request: boolean id: string is_active: boolean is_snoozed: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ latest_rejected_renewal_request?: { can_view: boolean id: string reason: string rejected_at: string /* date */ unified_request_id: string user_full_name: string } line_items?: Record[] name: string notification_trigger_group?: { id: string notification_triggers: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number id: string }[] payee_business_settings_id: number recipient_approval_groups: { id: string members: { member: { full_name: string id: string } }[] name: string }[] recipient_users: { full_name: string id: string }[] should_notify_vendor_owner_manager: boolean type: 'CUSTOM_SETTING' | 'DEFAULT_BUSINESS_SETTING' } notifications_on: boolean payee: { approval_instance_uuid: string approval_status: 'APPROVED' | 'PENDING' | 'REJECTED' available_actions: { can_edit: boolean can_view: boolean can_view_vendors_tab: boolean } business_vendor: { uuid: string vendor_tracking_category_option_id: number } card_merchants: { merchant_name: string uuid: string }[] dba_name: string deleted_at: string /* date */ image_url: string is_draft: boolean name: string owners: { department: string email: string full_name: string id: string is_inactive: boolean is_terminated: boolean location: string profile_picture_url: string }[] uuid: string website: string } pending_spend_requests: { approval_chain_metadata: { allow_self_approvals?: boolean approval_reminder_cooldown?: { can_send_reminder: boolean period_in_days: number reminder_communication_last_sent_at: string } approvals_paused?: boolean approvals_paused_by?: { deleted_at: string email: string first_name: string id: string last_name: string lifecycle_status?: 'ACTIVE' | 'DELETED' | 'DRAFT' | 'INACTIVE' | 'PENDING' profile_picture_url: string role: 'ADVISOR_CONSOLE_ADMIN' | 'ADVISOR_CONSOLE_USER' | 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'DEVELOPER_ADMIN' | 'GUEST_USER' | 'IT_ADMIN' | 'PRESALES_DEMO_USER' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' | 'VENDOR_NETWORK_ADMIN' } can_add_steps?: boolean can_skip?: boolean current_step_in_chain: number has_blocking_approval_requirements?: boolean is_last_step_for_user: boolean is_pausable?: boolean last_action_date: string needs_user_action: boolean next_approvers: { approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' assigned_user_full_name: string assigned_user_id: string delegator_user_full_name: string delegator_user_id: string entity_full_name: string entity_id: string entity_type: 'ANY_ADMIN' | 'GROUP' | 'MANAGER' | 'TRIGGER' | 'USER' | 'VENDOR_OWNER' | 'VENDOR_OWNER_MANAGER' external_url: string notes: string provider_type?: string }[] number_of_approvals: number rejection_note?: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' total_number_of_approvals: number total_steps_in_chain: number } can_view: boolean created_at: string /* date */ created_by: string currency: string display_name: string id: string name: string request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' spend_intent_name: string submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string }[] purchase_orders: { can_view: boolean documents: Record[] end_date: string /* date */ id: string name: string paid_by_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } paid_by_card_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } pending_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } purchase_order_number: string spend_request: { approved_at: string /* date */ currency: string id: string name: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string } start_date: string /* date */ status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] ramp_event_history_id: string renewal_action?: Record renewal_status: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED' start_date: string /* date */ total_value: { amount: number currency_code: string minor_unit_conversion_rate: number } updated_at: string /* date */ } number_of_documents_linked: number number_of_purchase_orders_linked: number } --- title: Unlink purchase orders or documents from a vendor agreement path: /developer/v1/vendors/agreements/{agreement_id}/unlink description: No description request: { documents?: { id: string type?: 'CUSTOM_FORM_FILE' } | { id: string type?: 'PAYEE_DOCUMENT' } | { id: string type?: 'SPEND_REQUEST_DOCUMENT' }[] purchase_order_ids?: string[] } response: { agreement: { archived_at?: string /* date */ auto_renewal: boolean available_actions: { can_edit: { status: 'allowed' } | { denial_reason: 'NOT_CONTRACT_OWNER' | 'NOT_VENDOR_OWNER' | 'NO_PERMISSION' status: 'denied' } delete: { status: 'allowed' } | { denial_reason: 'APPROVED_REQUEST' | 'PENDING_REQUEST' | 'REJECTED_REQUEST' status: 'denied' } request_expansion: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } request_renewal: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'MARKED_AS_RENEWED' | 'MARKED_AS_WONT_RENEW' | 'PENDING_EXPANSION_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } set_status: { status: 'allowed' } | { denial_reason: 'APPROVED_RENEWAL_REQUEST' | 'PENDING_RENEWAL_REQUEST' status: 'denied' } } comment_thread_uuid: string contract_owners: { email: string first_name: string full_name: string id: string last_name: string profile_picture_url?: string }[] created_at: string /* date */ currency: string custom_record_field_values: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] days_remaining: { end_date_used?: 'END_DATE' | 'LAST_DATE_TO_TERMINATE' is_expired?: boolean is_overdue?: boolean num_days_until_end?: number } deleted_at?: string /* date */ description: string draft_spend_requests: { id: string name?: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' total_amount?: string unified_request_id: string updated_at?: string /* date */ }[] end_date: string /* date */ has_approved_renewal_request: boolean id: string is_active: boolean is_snoozed: boolean is_up_for_renewal: boolean last_date_to_terminate: string /* date */ latest_rejected_renewal_request?: { can_view: boolean id: string reason: string rejected_at: string /* date */ unified_request_id: string user_full_name: string } line_items?: Record[] name: string notification_trigger_group?: { id: string notification_triggers: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number id: string }[] payee_business_settings_id: number recipient_approval_groups: { id: string members: { member: { full_name: string id: string } }[] name: string }[] recipient_users: { full_name: string id: string }[] should_notify_vendor_owner_manager: boolean type: 'CUSTOM_SETTING' | 'DEFAULT_BUSINESS_SETTING' } notifications_on: boolean payee: { approval_instance_uuid: string approval_status: 'APPROVED' | 'PENDING' | 'REJECTED' available_actions: { can_edit: boolean can_view: boolean can_view_vendors_tab: boolean } business_vendor: { uuid: string vendor_tracking_category_option_id: number } card_merchants: { merchant_name: string uuid: string }[] dba_name: string deleted_at: string /* date */ image_url: string is_draft: boolean name: string owners: { department: string email: string full_name: string id: string is_inactive: boolean is_terminated: boolean location: string profile_picture_url: string }[] uuid: string website: string } pending_spend_requests: { approval_chain_metadata: { allow_self_approvals?: boolean approval_reminder_cooldown?: { can_send_reminder: boolean period_in_days: number reminder_communication_last_sent_at: string } approvals_paused?: boolean approvals_paused_by?: { deleted_at: string email: string first_name: string id: string last_name: string lifecycle_status?: 'ACTIVE' | 'DELETED' | 'DRAFT' | 'INACTIVE' | 'PENDING' profile_picture_url: string role: 'ADVISOR_CONSOLE_ADMIN' | 'ADVISOR_CONSOLE_USER' | 'AUDITOR' | 'BUSINESS_ADMIN' | 'BUSINESS_BOOKKEEPER' | 'BUSINESS_OWNER' | 'BUSINESS_USER' | 'DEVELOPER_ADMIN' | 'GUEST_USER' | 'IT_ADMIN' | 'PRESALES_DEMO_USER' | 'UNBUNDLED_ADMIN' | 'UNBUNDLED_BOOKKEEPER' | 'UNBUNDLED_OWNER' | 'UNBUNDLED_USER' | 'VENDOR_NETWORK_ADMIN' } can_add_steps?: boolean can_skip?: boolean current_step_in_chain: number has_blocking_approval_requirements?: boolean is_last_step_for_user: boolean is_pausable?: boolean last_action_date: string needs_user_action: boolean next_approvers: { approval_trigger_instance_error_message: string approval_trigger_instance_error_redirect_url: string approval_trigger_type: 'GLOBAL_FORM_RESPONSE' | 'LAUNCH_ESIGN_WORKFLOW' | 'LAUNCH_EXTERNAL_APPROVAL' | 'LAUNCH_IRONCLAD_WORKFLOW' | 'LAUNCH_THIRD_PARTY_RISK_MANAGEMENT_VENDOR_REVIEW_WORKFLOW' | 'LAUNCH_TICKETING_WORKFLOW' | 'LAUNCH_VENDOR_ONBOARDING' | 'WAIT_FOR_BOOKING_COMPLETION' assigned_user_full_name: string assigned_user_id: string delegator_user_full_name: string delegator_user_id: string entity_full_name: string entity_id: string entity_type: 'ANY_ADMIN' | 'GROUP' | 'MANAGER' | 'TRIGGER' | 'USER' | 'VENDOR_OWNER' | 'VENDOR_OWNER_MANAGER' external_url: string notes: string provider_type?: string }[] number_of_approvals: number rejection_note?: string status: 'APPROVED' | 'INITIALIZED' | 'PENDING' | 'REJECTED' | 'TERMINATED' total_number_of_approvals: number total_steps_in_chain: number } can_view: boolean created_at: string /* date */ created_by: string currency: string display_name: string id: string name: string request_status: 'APPROVED' | 'DRAFT' | 'REJECTED' | 'SUBMITTED' source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' spend_intent_name: string submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string }[] purchase_orders: { can_view: boolean documents: Record[] end_date: string /* date */ id: string name: string paid_by_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } paid_by_card_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } pending_bill_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } purchase_order_number: string spend_request: { approved_at: string /* date */ currency: string id: string name: string source: 'EXPANSION_REQUEST' | 'RENEWAL' | 'REQUEST_APPROVAL' | 'REQUEST_LINKED_TO_AGREEMENT' submitted_at?: string /* date */ total_amount?: { amount: number currency_code: string minor_unit_conversion_rate: number } unified_request_id: string user_full_name: string } start_date: string /* date */ status?: 'CLOSED' | 'DELETED' | 'FULLY_BILLED' | 'OPEN' | 'PARTIALLY_BILLED' total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } }[] ramp_event_history_id: string renewal_action?: Record renewal_status: 'CANCELLED' | 'EXPIRED' | 'INITIATED' | 'NOT_STARTED' | 'REJECTED' | 'RENEWED' start_date: string /* date */ total_value: { amount: number currency_code: string minor_unit_conversion_rate: number } updated_at: string /* date */ } number_of_documents_unlinked: number number_of_purchase_orders_unlinked: number } --- title: List all vendor credits for all vendors of a business path: /developer/v1/vendors/credits description: No description request: none response: { data: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] applied_bills: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_id: string }[] applied_draft_bills: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_id: string }[] created_at: string /* date */ entity_id: string expense_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string }[] id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } unit_quantity: number }[] reference_bill_id: string reference_number: string remaining_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } total_applied_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_id: string }[][] page: { next: string } } --- title: Fetch a vendor credit path: /developer/v1/vendors/credits/{vendor_credit_id} description: No description request: none response: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] applied_bills: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_id: string }[] applied_draft_bills: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_id: string }[] created_at: string /* date */ entity_id: string expense_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string }[] id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } unit_quantity: number }[] reference_bill_id: string reference_number: string remaining_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } total_applied_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_id: string } --- title: Delete a vendor path: /developer/v1/vendors/{vendor_id} description: A vendor cannot be deleted if it has associated transactions, bills, contracts, or spend requests. request: none response: none --- title: Fetch a vendor path: /developer/v1/vendors/{vendor_id} description: No description request: none response: { accounting_vendor_remote_id: string address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } billing_frequency?: 'ANNUAL' | 'MONTHLY' | 'MULTIPLE' | 'NA' | 'OTHER' | 'QUARTERLY' | 'ROLLING' | 'TBD' | 'TWICE_A_YEAR' contacts: string[] country: string created_at: string /* date */ custom_form_collection_response: { custom_form_collection_log_entry: { allow_comments: boolean forms: { fields: { attachments?: RampDocumentSchema[] conditions: WorkflowsCondition description: string field: CustomFormAddressFieldResponseDumpSchema | CustomFormBooleanFieldResponseDumpSchema | CustomFormContactFieldResponseDumpSchema | CustomFormDateFieldResponseDumpSchema | CustomFormDepartmentFieldResponseDumpSchema | CustomFormEmailFieldResponseDumpSchema | CustomFormFileUploadFieldResponseDumpSchema | CustomFormLinkFieldResponseDumpSchema | CustomFormMerchantCategoryFieldResponseDumpSchema | CustomFormMerchantFieldResponseDumpSchema | CustomFormMonetaryAmountFieldResponseDumpSchema | CustomFormNumberFieldResponseDumpSchema | CustomFormParagraphFieldResponseDumpSchema | CustomFormTextFieldResponseDumpSchema | CustomFormTextMultiSelectFieldResponseDumpSchema | CustomFormTextSingleSelectFieldResponseDumpSchema | CustomFormVendorFieldResponseDumpSchema field_id: string global_library_field_id?: string is_mapped_to_ironclad_field?: boolean is_used_in_approval_workflow_condition?: boolean is_used_in_custom_form_workflow_condition?: boolean label: string required: boolean validation_errors?: CustomFormFieldValidationErrorSchemaV2[] value_display_string: string }[] label: string }[] label: string } } custom_record_fields: { column_display_name: string column_id: string value: { display_name: string type: 'boolean' value: boolean } | { has_more: boolean rows: { display_name: string external_key: string row_id: string type: 'custom_table' }[] table_name: string type: 'custom_table' } | { display_name: string type: 'date' value: string /* date */ } | { has_more: boolean rows: { display_name: string external_key: string type: 'native_table' }[] table_name: 'accounting_field_options' | 'bills' | 'business_entities' | 'cards' | 'contracts' | 'departments' | 'external_attendees' | 'limits' | 'locations' | 'purchase_order_line_items' | 'purchase_orders' | 'reimbursements' | 'transactions' | 'users' | 'vendors' type: 'native_table' } | { display_name: string type: 'number' value: number } | { display_name: string type: 'text' value: string } }[] default_entity_id: string default_payment_method: { policy?: { data: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } | { data: { account_nickname?: string currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' id: string is_default?: boolean payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' } kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } | { card_payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } update_source?: 'AUTO' | 'MANUAL' } description?: string external_vendor_id: string federal_tax_classification?: 'C_CORPORATION' | 'INDIVIDUAL_SOLE_PROPRIETOR_SINGLE_MEMBER_LLC' | 'INTERNATIONAL' | 'LLC_C_CORPORATION' | 'LLC_PARTNERSHIP' | 'LLC_S_CORPORATION' | 'OTHER' | 'PARTNERSHIP' | 'S_CORPORATION' | 'TRUST_ESTATE' id: string is_active: boolean is_deletable: boolean merchant_id?: string name: string name_legal?: string sk_category_id?: number sk_category_name?: string state?: string subsidiary?: string[] tax_address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } total_spend_all_time: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_30_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_365_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_ytd: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_owner_id: string vendor_type?: 'BUSINESS' | 'INDIVIDUAL' } --- title: Update a vendor path: /developer/v1/vendors/{vendor_id} description: No description request: { accounting_vendor_remote_id?: string address?: { address_line_1: string address_line_2?: string city: string country?: string postal_code: string state?: string } country?: string description?: string external_vendor_id?: string is_active?: boolean state?: string vendor_tracking_category_option_id?: string } response: { accounting_vendor_remote_id: string address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } billing_frequency?: 'ANNUAL' | 'MONTHLY' | 'MULTIPLE' | 'NA' | 'OTHER' | 'QUARTERLY' | 'ROLLING' | 'TBD' | 'TWICE_A_YEAR' contacts: string[] country: string created_at: string /* date */ default_entity_id: string default_payment_method: { policy?: { data: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } | { data: { account_nickname?: string currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' id: string is_default?: boolean payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' } kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } | { card_payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' kind: 'ADDRESS' | 'BANK_ACCOUNT' | 'CARD' | 'MANUAL' } update_source?: 'AUTO' | 'MANUAL' } description?: string external_vendor_id: string federal_tax_classification?: 'C_CORPORATION' | 'INDIVIDUAL_SOLE_PROPRIETOR_SINGLE_MEMBER_LLC' | 'INTERNATIONAL' | 'LLC_C_CORPORATION' | 'LLC_PARTNERSHIP' | 'LLC_S_CORPORATION' | 'OTHER' | 'PARTNERSHIP' | 'S_CORPORATION' | 'TRUST_ESTATE' id: string is_active: boolean is_deletable: boolean merchant_id?: string name: string name_legal?: string sk_category_id?: number sk_category_name?: string state?: string subsidiary?: string[] tax_address?: { address_line_1: string address_line_2?: string city: string country: string postal_code: string state?: string } total_spend_all_time: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_30_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_last_365_days: { amount: number currency_code: string minor_unit_conversion_rate: number } total_spend_ytd: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_owner_id: string vendor_type?: 'BUSINESS' | 'INDIVIDUAL' } --- title: List vendor bank accounts path: /developer/v1/vendors/{vendor_id}/accounts description: No description request: none response: { data: { account_nickname?: string currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' id: string is_default?: boolean payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' }[] page: { next: string } } --- title: Fetch a vendor bank account path: /developer/v1/vendors/{vendor_id}/accounts/{bank_account_id} description: No description request: none response: { account_nickname?: string currency: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' id: string is_default?: boolean payment_method: 'ACH' | 'AUTOMATIC_CARD_PAYMENT' | 'CARD' | 'CHECK' | 'CRYPTO_WALLET_TRANSFER' | 'DOMESTIC_WIRE' | 'INTERNATIONAL' | 'LOCAL_BANK_TRANSFER' | 'ONE_TIME_CARD' | 'ONE_TIME_CARD_DELIVERY' | 'PAID_MANUALLY' | 'RTP' | 'SWIFT' | 'UNSPECIFIED' | 'VENDOR_CREDIT' } --- title: Archive a vendor bank account path: /developer/v1/vendors/{vendor_id}/accounts/{bank_account_id}/archive description: If the bank account has associated bills, drafts, or recurring templates, a replacement_bank_account_id must be provided in the request body. request: { replacement_bank_account_id?: string } response: none --- title: Create a vendor agreement path: /developer/v1/vendors/{vendor_id}/agreements description: No description request: { auto_renewal: boolean contract_owner_ids?: string[] description?: string end_date?: string /* date */ last_date_to_terminate?: string /* date */ line_items?: { discount?: number | string price_per_unit: number | string product_or_service_name: string quantity: number | string term?: string time_unit?: string total_price?: number | string unit?: string }[] name: string notifications_on: boolean renewal_notification_settings?: { notification_triggers?: { contract_event: 'CONTRACT_ENDS_OR_RENEWS' | 'LAST_DATE_TO_TERMINATE' days_before: number }[] recipient_approval_group_uuids?: string[] recipient_dynamic_user_group_uuids?: string[] recipient_user_uuids?: string[] should_notify_contract_owner_managers?: boolean should_notify_vendor_owner_manager: boolean should_notify_vendor_owners?: boolean } start_date: string /* date */ total_value: { amount: number currency_code?: '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' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNH' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'EURC' | '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' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'OPEN_USD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USDB' | 'USDC' | 'USDT' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | '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' } } response: none --- title: List vendor contacts for vendor path: /developer/v1/vendors/{vendor_id}/contacts description: No description request: none response: { data: { email: string first_name: string id: string is_default: boolean last_name: string phone: string }[] page: { next: string } } --- title: Fetch a vendor contact path: /developer/v1/vendors/{vendor_id}/contacts/{vendor_contact_id} description: No description request: none response: { email: string first_name: string id: string is_default: boolean last_name: string phone: string } --- title: List vendor credits by vendor path: /developer/v1/vendors/{vendor_id}/credits description: No description request: none response: { data: { accounting_date: string /* date */ accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] applied_bills: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_id: string }[] applied_draft_bills: { amount: { amount: number currency_code: string minor_unit_conversion_rate: number } bill_id: string }[] created_at: string /* date */ entity_id: string expense_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string }[] id: string inventory_line_items: { accounting_field_selections: { category_info: { external_id: string id: string name: string type: 'AMORTIZATION_TEMPLATE' | 'BILLABLE' | 'COST_CENTER' | 'CUSTOMERS_JOBS' | 'DEFERRAL_CODE' | 'EXPENSE_ENTITY' | 'GL_ACCOUNT' | 'INVENTORY_ITEM' | 'JOURNAL' | 'MERCHANT' | 'NON_ERP' | 'OTHER' | 'PROJECT' | 'REPORTING_TAG' | 'SUBSIDIARY' | 'TAX_CODE' | 'UNIT_OF_MEASURE' } external_code?: string external_id: string id: string name: string provider_name: string }[] amount: { amount: number currency_code: string minor_unit_conversion_rate: number } memo?: string unit_price: { amount: number currency_code: string minor_unit_conversion_rate: number } unit_quantity: number }[] reference_bill_id: string reference_number: string remaining_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } total_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } total_applied_amount: { amount: number currency_code: string minor_unit_conversion_rate: number } vendor_id: string }[][] page: { next: string } } --- title: Add to a vendor's bank account details path: /developer/v1/vendors/{vendor_id}/update-bank-accounts description: Adds payment details for the vendor through the approval workflow. The proposal may require approval depending on the business's approval policies. Supported payment methods: - ACH: US bank account with routing and account numbers - Wire: US wire transfer with routing and account numbers request: { account_nickname?: string ach_details?: { account_name?: string account_number: string account_owner_type?: 'BUSINESS' | 'INDIVIDUAL' account_type?: 'Checking' | 'Savings' routing_number: string } is_default?: boolean wire_details?: { account_name?: string account_number: string routing_number: string } } response: none --- title: Get all webhook subscriptions path: /developer/v1/webhooks description: No description request: none response: { business_id?: string created_at: string /* date */ endpoint_url: string event_types: 'applications.status_updated' | 'bills.approved' | 'bills.archived' | 'bills.created' | 'bills.paid' | 'bills.ready_to_sync' | 'bills.rejected' | 'entities.created' | 'item_receipts.created' | 'payments.updated' | 'purchase_orders.archived' | 'purchase_orders.created' | 'purchase_orders.updated' | 'reimbursements.batch_payment_reimbursed' | 'reimbursements.ready_for_review' | 'reimbursements.ready_to_sync' | 'reimbursements.sync_requested' | 'spend_requests.comment_created' | 'tests.test_event' | 'transactions.authorized' | 'transactions.cleared' | 'transactions.declined' | 'transactions.ready_for_review' | 'transactions.ready_to_sync' | 'transactions.sync_requested' | 'transactions.synced' | 'unified_requests.created' | 'unified_requests.external_approval_request' | 'unified_requests.external_approval_request_reset' | 'unified_requests.modified' | 'unified_requests.node_advanced' | 'unified_requests.override_approved' | 'unified_requests.updated' | 'users.invite_accepted' | 'vendors.activated' | 'vendors.updated' | 'webhooks.verification'[] id: string status: 'active' | 'inactive' | 'pending_verification' updated_at: string /* date */ }[] --- title: Creates a new webhook subscription path: /developer/v1/webhooks description: The newly registered subscription will be in the pending verficiation state. You will need to verify your endpoint with the provided challenge. request: { additional_headers?: Record endpoint_url: string event_types: 'applications.status_updated' | 'bills.approved' | 'bills.archived' | 'bills.created' | 'bills.paid' | 'bills.ready_to_sync' | 'bills.rejected' | 'entities.created' | 'item_receipts.created' | 'payments.updated' | 'purchase_orders.archived' | 'purchase_orders.created' | 'purchase_orders.updated' | 'reimbursements.batch_payment_reimbursed' | 'reimbursements.ready_for_review' | 'reimbursements.ready_to_sync' | 'reimbursements.sync_requested' | 'spend_requests.comment_created' | 'tests.test_event' | 'transactions.authorized' | 'transactions.cleared' | 'transactions.declined' | 'transactions.ready_for_review' | 'transactions.ready_to_sync' | 'transactions.sync_requested' | 'transactions.synced' | 'unified_requests.created' | 'unified_requests.external_approval_request' | 'unified_requests.external_approval_request_reset' | 'unified_requests.modified' | 'unified_requests.node_advanced' | 'unified_requests.override_approved' | 'unified_requests.updated' | 'users.invite_accepted' | 'vendors.activated' | 'vendors.updated' | 'webhooks.verification'[] } response: none --- title: Create a mock webhook event for active subscriptions matching the event type path: /developer/v1/webhooks/mock-webhook-event description: No description request: { event_type: 'applications.status_updated' | 'bills.approved' | 'bills.archived' | 'bills.created' | 'bills.paid' | 'bills.ready_to_sync' | 'bills.rejected' | 'entities.created' | 'item_receipts.created' | 'payments.updated' | 'purchase_orders.archived' | 'purchase_orders.created' | 'purchase_orders.updated' | 'reimbursements.batch_payment_reimbursed' | 'reimbursements.ready_for_review' | 'reimbursements.ready_to_sync' | 'reimbursements.sync_requested' | 'spend_requests.comment_created' | 'tests.test_event' | 'transactions.authorized' | 'transactions.cleared' | 'transactions.declined' | 'transactions.ready_for_review' | 'transactions.ready_to_sync' | 'transactions.sync_requested' | 'transactions.synced' | 'unified_requests.created' | 'unified_requests.external_approval_request' | 'unified_requests.external_approval_request_reset' | 'unified_requests.modified' | 'unified_requests.node_advanced' | 'unified_requests.override_approved' | 'unified_requests.updated' | 'users.invite_accepted' | 'vendors.activated' | 'vendors.updated' | 'webhooks.verification' object_id: string object_metadata: Record } response: none --- title: Delete a webhook subscription by id path: /developer/v1/webhooks/{webhook_id} description: No description request: none response: none --- title: Get a webhook subscription by id path: /developer/v1/webhooks/{webhook_id} description: No description request: none response: { business_id?: string created_at: string /* date */ endpoint_url: string event_types: 'applications.status_updated' | 'bills.approved' | 'bills.archived' | 'bills.created' | 'bills.paid' | 'bills.ready_to_sync' | 'bills.rejected' | 'entities.created' | 'item_receipts.created' | 'payments.updated' | 'purchase_orders.archived' | 'purchase_orders.created' | 'purchase_orders.updated' | 'reimbursements.batch_payment_reimbursed' | 'reimbursements.ready_for_review' | 'reimbursements.ready_to_sync' | 'reimbursements.sync_requested' | 'spend_requests.comment_created' | 'tests.test_event' | 'transactions.authorized' | 'transactions.cleared' | 'transactions.declined' | 'transactions.ready_for_review' | 'transactions.ready_to_sync' | 'transactions.sync_requested' | 'transactions.synced' | 'unified_requests.created' | 'unified_requests.external_approval_request' | 'unified_requests.external_approval_request_reset' | 'unified_requests.modified' | 'unified_requests.node_advanced' | 'unified_requests.override_approved' | 'unified_requests.updated' | 'users.invite_accepted' | 'vendors.activated' | 'vendors.updated' | 'webhooks.verification'[] id: string status: 'active' | 'inactive' | 'pending_verification' updated_at: string /* date */ } --- title: Verify a webhook subscription path: /developer/v1/webhooks/{webhook_id}/verify description: No description request: { challenge: string } response: { success: boolean } ---