{"info":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","description":"<html><head></head><body><p>Welcome to Roger's API reference documentation. <a href=\"https://www.getpostman.com/collections/0e1f1e19c0e3432104a7\">Here</a> you can download and import Roger API Postman collection. Feel free to reach out to <a href=\"mailto:support@roger.ai\">support@roger.ai</a> if you have any questions. We also have a Slack community where you will be able to get even faster assistance or answers for your questions. Join <a href=\"https://join.slack.com/t/roger-community/shared_invite/enQtMjg1MjEyOTE3ODExLTAyOGZmNjM3ZTMzOTdkMzJjZGIyOTBiNjNmNTkxM2VmZGIwNTI0MDU1MDhmYzNmYzM3NzNkYzI3NzQ2OGVkNmI\">here</a></p>\n<h1 id=\"expense-life-cycle\">Expense life-cycle</h1>\n<p>Before starting it is important to understand a few concepts in Roger. A crucial and central concept is  the life-cycle of an expense. When any expense is uploaded to Roger, the expense will follow a flow representing the life-cycle of an expense. The life-cycle is defined as a graph G = (V,E) where all vertices in V is the available states an expense can have. An expense can only hold one state at any time. E is the abstract set of valid paths between two or more vertices. All states have a set of predefined actions associated with every exit and entry transition of a vertex.</p>\n<img src=\"https://rogereu.s3.eu-central-1.amazonaws.com/static-assets/export.fsm.png\">\n\n<h2 id=\"states\">States</h2>\n<p>This is the list of available state for any expense in Roger.</p>\n<h3 id=\"pending\">Pending</h3>\n<p>This state identifies the process where the expense is getting recognized. The progressing time can vary depending on the complexity or/and the need for additional compliance checks.</p>\n<hr>\n<h3 id=\"awaiting\">Awaiting</h3>\n<p>If the corresponding company has an active Workflow and the expense properties match an active rule with the need for approval, the expense will reside in this state until a user has either approve or decline the expense. Please note that an expense waiting for approval might reside in this state eventhough it got approve if there is a rule waiting for two approvers. You could imagine a flow where User A and User B is required for the given expense to be approved, when User A approves the webhook emitted would be <code>expense.approval.approve</code> and when User B then consecutively approves it will change state and emit <code>expense.approval.approve</code> and <code>expense.state.booked</code> (Assuming it moves to the <code>Booked</code> state)</p>\n<p><br>Webhook emitted when entering: <code>expense.state.awating</code></p>\n<hr>\n<h3 id=\"booked\">Booked</h3>\n<p>When an expense of the type <code>bill</code> is ready for payment it will reside in this state until canceled or initialized. It can move to initialized automatically on due or by manually paying the bill.\n<br>Webhook emitted when entering: <code>expense.state.booked</code></p>\n<hr>\n<h3 id=\"initialized\">Initialized</h3>\n<h2 id=\"if-the-expense-is-getting-paid-outside-banking-hours---either-by-a-user-or-by-the-api---the-expense-will-move-to-initialized-and-automatically-get-paid-when-the-sending-bank-allows-for-a-successful-transaction-webhook-emitted-when-entering-expensesstateinitialized\">If the expense is getting paid outside banking hours - either by a user or by the API - the expense will move to <code>Initialized</code> and automatically get paid when the sending bank allows for a successful transaction\n<br>Webhook emitted when entering: <code>expenses.state.initialized</code></h2>\n<h3 id=\"paid\">Paid</h3>\n<p>This state identifies that an expense has been either been paid successfully or has been marked as paid.\n<br>Webhook emitted when entering: <code>expenses.state.paid</code></p>\n<hr>\n<h3 id=\"paused\">Paused</h3>\n<p>If an expense of the type bill has failed due to issues related to a third party such as the bank, insufficient funds etc. it will be moved to this state.\n<br>Webhook emitted when entering: <code>expense.state.paused</code></p>\n<hr>\n<h3 id=\"canceled--declined\">Canceled / Declined</h3>\n<p>If an expense is deleted - either by Roger or by a user associated to the company - it will end in this state. This state is a final state and no modifications to the expense is possible here.\n<br>Webhook emitted when entering: <code>expense.state.canceled</code></p>\n<h1 id=\"using-webhooks\">Using Webhooks</h1>\n<p>In addition to the common REST calls available in this documentation, you will be able to get your application to react on every state (described above) change in the system e.g. if a bill is paid, you want your application to write out message. In this case you subscribe to the emitted webhook <code>expense.state.booked</code> and from the corresponding payload you will be able to extract the context.</p>\n<h2 id=\"events\">Events</h2>\n<p>Webhook events are identified by a string constructed by the following: [entity].[concept].[operation]. The <code>entity</code> defined the top-level objects e.g. <code>expense</code>, <code>paymentmethod</code>. The <code>concept</code> and <code>operation</code> is defining the action that emitted the webhook. So let's assume you have a user that is approving a certain bill waiting for approval. Here a webhook with the event <code>expense.approval.approved</code> is emitted. If the user instead declined the bill, the webhook would look like this <code>expense.approval.declined</code>. </p>\n<h3 id=\"expense-events\">Expense events</h3>\n<p>The following the events are emitted when changes are happening to any given bill applicable for this event. Note that some expense e.g. don't allow date change.</p>\n<p>Concept: <code>note</code>, operation <code>{ updated }</code>\n<br>\nConcept: <code>label</code>, operation <code>{ updated }</code>\n<br>\nConcept: <code>date</code>, operation <code>{ updated }</code>\n<br>\nConcept: <code>amountlines</code>, operation <code>{ updated }</code>\n<br>\nConcept: <code>department</code>, operation <code>{ updated }</code></p>\n<h3 id=\"team-events\">Team events</h3>\n<p>The following the events are emitted when changes are happening to the company account.</p>\n<p>Concept: <code>paymentmethod</code> : Operation <code>{ created, deleted }</code></p>\n<h1 id=\"endpoints\">Endpoints</h1>\n<ul>\n<li>Test: <code>https://staging-external.roger.ai</code></li>\n<li>Demo: <code>https://sandbox.roger.ai</code></li>\n<li>Production: <code>https://external.roger.ai</code> (will move to <code>https://api.roger.ai</code> shortly)</li>\n</ul>\n<h1 id=\"oauth\">OAUTH</h1>\n<ul>\n<li>Authorize URI: <code>{{host}}/connect/authorize</code></li>\n<li>Token URI: <code>{{host}}/connect/token</code></li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Expense life-cycle","slug":"expense-life-cycle"},{"content":"Using Webhooks","slug":"using-webhooks"},{"content":"Endpoints","slug":"endpoints"},{"content":"OAUTH","slug":"oauth"}],"owner":"7731170","collectionId":"d1926441-fcff-43b1-907a-1a240d7eefbc","publishedId":"TzeUm8ZB","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2021-06-14T09:47:38.000Z"},"item":[{"name":"Auth","item":[{"name":"Token (refresh token)","event":[{"listen":"test","script":{"id":"1080fe4d-b44f-406f-982b-0158901142c6","exec":["var data = JSON.parse(responseBody);","postman.setGlobalVariable(\"external-api-token\", data.access_token);"],"type":"text/javascript"}}],"id":"e9868581-1c88-4c81-9c5f-9affeaa29bb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","value":"authorization_code","type":"text"},{"key":"client_id","value":"{{client_id}}","type":"text"},{"key":"client_secret","value":"{{client_secret}}","type":"text"},{"key":"code","value":"{{code}}","type":"text"},{"key":"redirect_uri","value":"{{redirect_uri}}","type":"text"}]},"url":"{{host}}/connect/token","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>In order to generate a new refresh token you need to provide the following <code>client_id</code>, <code>client_secret</code>, <code>authorization_code</code> and <code>redirect_uri</code> in your request.</p>\n","urlObject":{"path":["connect","token"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e9868581-1c88-4c81-9c5f-9affeaa29bb6"},{"name":"Token (access token)","event":[{"listen":"test","script":{"id":"83259cbf-a5fb-4ffa-a241-252503b5ee3d","exec":["var data = JSON.parse(responseBody);","postman.setGlobalVariable(\"external-api-token\", data.access_token);"],"type":"text/javascript"}}],"id":"e6c7f23f-7d90-4e7d-825f-d685e2d539a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"basic","basic":{"basicConfig":[{"key":"username","value":"<username>"},{"key":"password","value":"<password>"}],"advancedConfig":[{"key":"showPassword","value":"<show-password>"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","type":"text","value":"refresh_token"},{"key":"refresh_token","type":"text","value":"{{refresh_token}}"}]},"url":"{{host}}/connect/token","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>In order to generate a new token you need to provide the following <code>refresh_token</code>, <code>client_id</code> and <code>client_secret</code> in your request. In order to successfully generate the access token, you need to use the basic authentication for the  request and provide the <code>client_id</code> as the user name and the <code>client_secret</code> as the password.</p>\n","urlObject":{"path":["connect","token"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e6c7f23f-7d90-4e7d-825f-d685e2d539a5"}],"id":"7ee052a1-46bb-40fc-bb9b-462439356f72","description":"<p>This API uses the OAuth 2.0 standard to handle authorization.</p>\n<h3 id=\"create-a-roger-app\">Create a Roger App</h3>\n<p>Please contact <a href=\"mailto:support@roger.ai\">support@roger.ai</a> to enable for you the <code>Developer Portal</code> feature. As soon as you have it enabled please go in Roger Web navigate to <code>/developers</code> and choose to create a new App.</p>\n<h3 id=\"refresh-token\">Refresh Token</h3>\n<p>In order to generate a new refresh token, you need to have the <code>offline_access</code> API scope enabled for your Roger App and <code>authorization code</code> which can be generated by accessing the <code>Auth Url</code> in your newly created Roger application. Bear in mind the authorization code can be used only once, as soon as a request has been made to the server the authorization code becomes invalid.</p>\n<h4 id=\"access-token\">Access Token</h4>\n<p>Please use your refresh token for generating access tokens.</p>\n","event":[{"listen":"prerequest","script":{"id":"e57f9684-3378-42ce-9455-e057de3a36a2","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"92b23224-df78-4354-862b-05416634ccb9","type":"text/javascript","exec":[""]}}],"_postman_id":"7ee052a1-46bb-40fc-bb9b-462439356f72","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Expenses","item":[{"name":"Upload","id":"0cdc3aa7-aa1d-4891-96b6-d2fccdfee0fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"multipart/form-data","type":"text"}],"body":{"mode":"formdata","formdata":[{"description":"<p>Supported formats \"pdf\", \"png\", \"jpeg\", \"bmp\", \"tiff\"</p>\n","key":"files","type":"file","value":null},{"key":"teamId","value":"{{teamId}}","description":"<p>Required field</p>\n","type":"text"},{"key":"financialDocumentType","value":"{{financialDocumentType}}","description":"<p><em>Optional.</em> \nFinancial document types (<code>{{financial_documentType}}</code>): <code>0</code> for Bill, <code>1</code> for Receipt, <code>2</code> for Credit Note. The default is the <code>Bill</code> value.</p>\n","type":"text"}]},"url":"{{host}}/v2/expenses","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>Upload an expense.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.create</code>. <br /><br />\nSupported formats: <code>pdf</code>, <code>png</code>, <code>jpeg</code>, <code>bmp</code>, <code>tiff</code>, <code>xml</code>. <br /><br />\nOn a successful request the endpoint will respond with <code>201 Created</code> with a full expense payload:</p>\n<ul>\n<li><code>id</code>: the ID of the expense.</li>\n<li><code>amount</code>: the amount in smallest common currency unit i.e. cents, øre etc.</li>\n<li><code>currency</code>: the currency e.g. <code>DKK</code>, <code>USD</code> etc.</li>\n<li><code>state</code>: the state can be <code>pending</code>, <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> or <code>cancelled</code>.</li>\n<li><code>referenceDate</code>: timestamp for current <code>state</code>.</li>\n<li><code>issueDate</code>: available in <code>state</code> of <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>.</li>\n<li><code>dueDate</code>: available in <code>state</code> of <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>.</li>\n<li><code>isDueDateOverwritten</code>: in cases where the due date is changed e.g. when payment is done prior to this due date, this field will be <code>true</code>.</li>\n<li><code>originalDueDate</code>: see above - the original due date is available from this field in case it’s overwritten.</li>\n<li><code>paymentDate</code>: the date of which the payment was done and the <code>state</code> is <code>paid</code>.</li>\n<li><code>paymentMethod</code>: a shallow object provided when the <code>state</code> of the bill is <code>paid</code>, containing <code>id</code> and <code>type</code>.</li>\n<li><code>attachments</code>: array of objects each containing a signed <code>attachmentUrl</code>, <code>created</code> and <code>isOriginal</code> fields.</li>\n<li><code>notes</code>: array of objects each containing <code>value</code> and <code>created</code> fields.</li>\n<li><code>creditor</code>: an object which <em>may</em> be provided, depending on the <code>state</code> of the bill (usually <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>), containing just the <code>id</code>.</li>\n<li><code>owner</code>: an object which <em>may</em> be provided, depending on the way the bill was received - in such cases it <em>will</em> contain a shallow <code>user</code> object and <em>may</em> contain a shallow <code>team</code> object.</li>\n<li><code>source</code>: an object containing <code>id</code> and <code>name</code> of the API client.</li>\n</ul>\n","urlObject":{"path":["v2","expenses"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0cdc3aa7-aa1d-4891-96b6-d2fccdfee0fc"},{"name":"Generate","event":[{"listen":"test","script":{"id":"cb4c4086-f8a4-4f30-ba8d-3b32f49da56f","exec":["pm.test('status code is 200', function () {","    pm.response.to.have.status(200);","})"],"type":"text/javascript"}}],"id":"fc09062b-841f-4887-9a90-72e2a91f9cab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n\r\n\tteamId: {{teamId}}, // required\r\n\tinvoiceId: {{invoiceId}},\r\n\tfinancialDocumentType: {{financialDocumentType}}, // required\r\n\tamount: {{amount}}, // required\r\n\tdueDate: {{dueDate}}, // required\r\n\tissueDate: {{issueDate}}, // required\r\n\tmemo: {{memo}},\r\n\tcreditorName: {{creditorName}},  // required if vendorId not specified\r\n\tcreditorVAT: {{creditorVAT}},\r\n\tcurrency: {{currency}}, // required\r\n\tpaymentInstructions: {{paymentInstructions}},\r\n\tkeywords: {{keywords}},\r\n\tvendorId: {{vendorId}}, // required if it already exists in your vendor list\r\n\temail: {{email}}, // required only if the vendorId isn't passed in\r\n\tcountry: {{country_code}}, // required only if the vendorId isn't passed in\r\n\taddress: {\r\n                address: {{address}}, \r\n                postal: {{postal}}, \r\n                city: {{city}}, \r\n                stateProvince: {{stateProvince}}, \r\n                country: {{country}}\r\n             } // required only if the vendorId isn't passed in\r\n}"},"url":"{{host}}/v2/expenses/generate","description":"<p>⚠️ <strong>PREVIEW</strong>\nGenerate an expense.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.create</code>.</p>\n<p>Financial document types (<code>{{financial_documentType}}</code>): <code>0</code> for Bill, <code>1</code> for Receipt, <code>2</code> for Credit Note. The default is the <code>Bill</code> value. <br /><br />\nExpense keywords (<code>{{keywords}}</code>): is an array of <code>strings</code> which can be used during approval workflow. <br /><br /></p>\n<p>While generating an expense the payment instructions are required to be to include in the <code>POST</code> request payload. The following payment instructions are supported:\n<br /><br />\nEmpty Payment instructions:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    TransferType: 0\n}\n</code></pre><p><br /><br />\nAccount Transfer Payment instructions:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    transferType: 1,\n    regNumber: {{reg_number}},\n    accountReference: {{account_reference}}\n}\n</code></pre><p><br /><br />\nFIK Transfer Payment instructions:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    transferType: 2,\n    fikType: {{fik_type}}, // It is an int value\n    paymentReference: {{payment_reference}},\n    accountReference: {{account_reference}}\n}\n</code></pre><p><br /><br />\nIBAN Transfer Payment instructions:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    transferType: 3,\n    IBAN: {{iban}},\n    SWIFT: {{swift}}\n}\n</code></pre><p><br /><br />\nACH Transfer Payment instructions:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    TransferType: 4,\n    RoutingNumber: {{routingnumber}},\n    AccountNumber: {{accountnumber}},\n    AccountName: {{accountname}},\n    ACHRoutingEmail: {{email}}\n}\n</code></pre><p><br /><br />\nCheck Transfer Payment instructions:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n    TransferType: 5,\n    RemittanceName: {{name}},\n    Address1: {{address1}},\n    Address2: {{address2}},\n    City: {{city}},\n    ZipCode: {{zipcode}},\n    State: {{state}}\n}\n</code></pre><p>On a successful request the endpoint will respond with <code>201 Created</code> with a full expense payload:</p>\n<ul>\n<li><code>id</code>: the ID of the expense.</li>\n<li><code>amount</code>: the amount in smallest common currency unit i.e. cents, øre etc.</li>\n<li><code>currency</code>: the currency e.g. <code>DKK</code>, <code>USD</code> etc.</li>\n<li><code>state</code>: the state can be <code>pending</code>, <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> or <code>cancelled</code>.</li>\n<li><code>referenceDate</code>: timestamp for current <code>state</code>.</li>\n<li><code>issueDate</code>: available in <code>state</code> of <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>.</li>\n<li><code>dueDate</code>: available in <code>state</code> of <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>.</li>\n<li><code>isDueDateOverwritten</code>: in cases where the due date is changed e.g. when payment is done prior to this due date, this field will be <code>true</code>.</li>\n<li><code>originalDueDate</code>: see above - the original due date is available from this field in case it’s overwritten.</li>\n<li><code>paymentDate</code>: the date of which the payment was done and the <code>state</code> is <code>paid</code>.</li>\n<li><code>paymentMethod</code>: a shallow object provided when the <code>state</code> of the bill is <code>paid</code>, containing <code>id</code> and <code>type</code>.</li>\n<li><code>attachments</code>: array of objects each containing a signed <code>attachmentUrl</code>, <code>created</code> and <code>isOriginal</code> fields.</li>\n<li><code>notes</code>: array of objects each containing <code>value</code> and <code>created</code> fields.</li>\n<li><code>creditor</code>: an object which <em>may</em> be provided, depending on the <code>state</code> of the bill (usually <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>), containing just the <code>id</code>.</li>\n<li><code>owner</code>: an object which <em>may</em> be provided, depending on the way the bill was received - in such cases it <em>will</em> contain a shallow <code>user</code> object and <em>may</em> contain a shallow <code>team</code> object.</li>\n<li><code>source</code>: an object containing <code>id</code> and <code>name</code> of the API client.</li>\n</ul>\n","urlObject":{"path":["v2","expenses","generate"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fc09062b-841f-4887-9a90-72e2a91f9cab"},{"name":"Approve","event":[{"listen":"test","script":{"id":"121f6281-6d59-4b4b-928c-f6e4cc4c32e0","exec":["pm.test('status code is 200', function () {","    pm.response.to.have.status(200);","})"],"type":"text/javascript"}}],"id":"fa40efaf-4d0d-4e1c-a3f2-2becc8ff6d2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"url":"{{host}}/v2/expenses/approve","description":"<p>⚠️ <strong>PREVIEW</strong>\nApprove an expense waiting for approval.\nScopes: <code>expenses.all</code> (optional) and/or <code>expenses.create</code>.</p>\n","urlObject":{"path":["v2","expenses","approve"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fa40efaf-4d0d-4e1c-a3f2-2becc8ff6d2c"},{"name":"Decline","event":[{"listen":"test","script":{"id":"d09940ab-918f-4486-8ae6-39f12a27bf23","exec":["pm.test('status code is 200', function () {","    pm.response.to.have.status(200);","})"],"type":"text/javascript"}}],"id":"d8c8fac5-e8dc-4968-a53b-e02458f9a2b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n\tnote: {{note}}\r\n}"},"url":"{{host}}/v2/expenses/decline","description":"<p>⚠️ <strong>PREVIEW</strong>\nDecline an expense waiting for approval.\nScopes: <code>expenses.all</code> (optional) and/or <code>expenses.create</code>.\nA <code>note</code> as the reason for decline is mandatory</p>\n","urlObject":{"path":["v2","expenses","decline"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d8c8fac5-e8dc-4968-a53b-e02458f9a2b9"},{"name":"Get","id":"80707985-0c96-44fc-ae11-ab3e343748ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v2/expenses/{{expense_id}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>View/read an expense.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a full bill payload:</p>\n<ul>\n<li><code>id</code>: the ID of the expense.</li>\n<li><code>amount</code>: the amount in smallest common currency unit i.e. cents, øre etc.</li>\n<li><code>currency</code>: the currency e.g. <code>DKK</code>, <code>USD</code> etc.</li>\n<li><code>state</code>: the state can be <code>pending</code>, <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> or <code>cancelled</code>.</li>\n<li><code>referenceDate</code>: timestamp for current <code>state</code>.</li>\n<li><code>issueDate</code>: available in <code>state</code> of <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>.</li>\n<li><code>dueDate</code>: available in <code>state</code> of <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>.</li>\n<li><code>isDueDateOverwritten</code>: in cases where the due date is changed e.g. when payment is done prior to this due date, this field will be <code>true</code>.</li>\n<li><code>originalDueDate</code>: see above - the original due date is available from this field in case it’s overwritten.</li>\n<li><code>paymentDate</code>: the date of which the payment was done and the <code>state</code> is <code>paid</code>.</li>\n<li><code>paymentMethod</code>: a shallow object provided when the <code>state</code> of the bill is <code>paid</code>, containing <code>id</code> and <code>type</code>.</li>\n<li><code>attachments</code>: array of objects each containing a signed <code>attachmentUrl</code>, <code>created</code> and <code>isOriginal</code> fields.</li>\n<li><code>notes</code>: array of objects each containing <code>value</code> and <code>created</code> fields.</li>\n<li><code>creditor</code>: an object which <em>may</em> be provided, depending on the <code>state</code> of the bill (usually <code>booked</code>, <code>awaiting</code>, <code>paid</code>, <code>duplicate</code> and sometimes <code>cancelled</code>), containing just the <code>id</code>.</li>\n<li><code>owner</code>: an object which <em>may</em> be provided, depending on the way the bill was received - in such cases it <em>will</em> contain a shallow <code>user</code> object and <em>may</em> contain a shallow <code>team</code> object.</li>\n<li><code>source</code>: an object containing <code>id</code> and <code>name</code> of the API client.</li>\n<li><code>declineReason</code>: a string containing the reason why the expense has been declined.</li>\n</ul>\n","urlObject":{"path":["v2","expenses","{{expense_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"1a01d7c7-8342-4d6e-9910-fa2a78cc5c46","name":"Read","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/bills/{{bill_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"expense\": {\n            \"id\": \"M6gdyLr3\",\n            \"type\": \"bill\",\n            \"reference\": \"14227295\",\n            \"number\": 2,\n            \"amount\": 96793,\n            \"currency\": \"USD\",\n            \"state\": \"awaiting\",\n            \"referenceDate\": \"2022-03-19T00:00:00Z\",\n            \"issueDate\": \"2020-12-15T00:00:00Z\",\n            \"dueDate\": \"2022-03-19T00:00:00Z\",\n            \"attachments\": [\n                {\n                    \"id\": \"a1LepgbG\",\n                    \"url\": \"https://attachments...\",\n                    \"created\": \"2021-01-14T11:24:02Z\",\n                    \"isOriginal\": true\n                }\n            ],\n            \"notes\": [\n                {\n                    \"id\": \"wXLJnLWy\",\n                    \"value\": \"note3\",\n                    \"created\": \"2021-01-14T11:24:24Z\"\n                }\n            ],\n            \"category\": {\n                \"id\": \"2ymnkg9O\",\n                \"name\": \"Salg af ydelser til udland(UpdatedSecond)\",\n                \"number\": \"1021\"\n            },\n            \"departments\": [\n                {\n                    \"externalId\": \"2\",\n                    \"id\": \"4em12gxk\",\n                    \"name\": \"2 B2B\",\n                    \"color\": \"\",\n                    \"created\": \"2021-01-14T10:33:36Z\"\n                }\n            ],\n            \"isPayable\": true,\n            \"labels\": [\n                {\n                    \"id\": \"M6gdyLr3\",\n                    \"value\": \"2 Projekt NYC\",\n                    \"listId\": \"74mjYBn0\",\n                    \"externalId\": \"2\"\n                },\n                {\n                    \"id\": \"nAmYGLaX\",\n                    \"value\": \"1 TestCostType\",\n                    \"listId\": \"4em12gxk\",\n                    \"externalId\": \"1\"\n                },\n                {\n                    \"id\": \"kyB3pmMr\",\n                    \"value\": \"B25 - Byggeydelser udland\",\n                    \"listId\": \"5ELZjL4K\",\n                    \"externalId\": \"B25\"\n                }\n            ],\n            \"creditor\": {\n                \"id\": \"M6gdyLr3\"\n            },\n            \"owner\": {\n                \"user\": {\n                    \"id\": \"a1LepgbG\"\n                },\n                \"team\": {\n                    \"id\": \"5ELZjL4K\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"80707985-0c96-44fc-ae11-ab3e343748ab"},{"name":"Get Activities","id":"88aeb16c-2652-48cf-a238-8ce47ee95561","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman."}],"url":"{{host}}/v2/expenses/{{expense_id}}/activities","description":"<p>View/read an expense activities.</p>\n<p>Scopes: <code>expenses.all</code> (optional) or <code>expenses.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a list of activities with the payload:</p>\n<ul>\n<li><code>activityType</code> the type of activtity can be <code>message</code>, <code>timeLineEvent</code></li>\n<li><code>body</code>: the body of the activity</li>\n<li><code>userId</code>: user who has performed the activity.</li>\n<li><code>created</code>: the date when the activity was created</li>\n</ul>\n","urlObject":{"path":["v2","expenses","{{expense_id}}","activities"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"50530d39-fe96-476c-9a52-ba03a612b122","name":"Read","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/bills/{{bill_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"bill\": {\n            \"id\": \"{{bill_id}}\",\n            \"amount\": 12345,\n            \"currency\": \"DKK\",\n            \"state\": \"paid\",\n            \"referenceDate\": \"ISO 8601 Date\",\n            \"issueDate\": \"ISO 8601 Date\",\n            \"dueDate\": \"ISO 8601 Date\",\n            \"isDueDateOverwritten\": false,\n            \"paymentDate\": \"ISO 8601 Date\",\n            \"paymentMethod\": {\n            \t\"id\": \"{{card_id}}\",\n            \t\"type\": \"PaymentCard\"\n            },\n            \"attachments\": [\n                {\n                    \"attachmentUrl\": \"https://....\",\n                    \"created\": \"ISO 8601 Date\",\n                    \"isOriginal\": true\n                }\n            ],\n            \"notes\": [\n                {\n                    \"value\": \"Some text...\",\n                    \"created\": \"ISO 8601 Date\"\n                }\n            ],\n            \"creditor\": {\n                \"id\": \"{{creditor_id}}\"\n            },\n            \"owner\": {\n                \"user\": {\n                    \"id\": \"{{user_id}}\"\n                },\n                \"team\": {\n                    \"id\": \"{{team_id}}\"\n                }\n            },\n            \"source\": {\n                \"id\": \"{{source_id}}\",\n                \"name\": \"Partner\"\n            }\n        }\n    }\n}"}],"_postman_id":"88aeb16c-2652-48cf-a238-8ce47ee95561"},{"name":"Post Activities","id":"df7a6239-2174-4a50-bc79-5010653ef750","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}","warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman."}],"body":{"mode":"urlencoded","urlencoded":[{"description":"<p><em>Required</em> body of the message e.g. @<a href=\"nAmYGLaX\">User Testaccount</a> Be Awesome!!!</p>\n","key":"body","type":"text","value":"{{body}}"},{"description":"<p><em>Required</em> type of message <code>0</code> for Text, <code>1</code> for StandaloneEmoji</p>\n","key":"type","type":"text","value":"{{type}}"},{"description":"<p><em>Optional</em> parrent message id, e.g an Emoji should be attached to a specific message id</p>\n","key":"parentId","type":"text","value":"{{parentId}}"}]},"url":"{{host}}/v2/expenses/{{expense_id}}/activities","description":"<p>Create an expense activity (message).</p>\n<p>Scopes: <code>expenses.all</code> (optional) or <code>expenses.create</code>.</p>\n<p>On a successful request the endpoint will respond with <code>201 Created</code> with the created message id.</p>\n","urlObject":{"path":["v2","expenses","{{expense_id}}","activities"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"84decf52-8bca-4d4f-8188-0c2234eac52b","name":"Read","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/bills/{{bill_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"bill\": {\n            \"id\": \"{{bill_id}}\",\n            \"amount\": 12345,\n            \"currency\": \"DKK\",\n            \"state\": \"paid\",\n            \"referenceDate\": \"ISO 8601 Date\",\n            \"issueDate\": \"ISO 8601 Date\",\n            \"dueDate\": \"ISO 8601 Date\",\n            \"isDueDateOverwritten\": false,\n            \"paymentDate\": \"ISO 8601 Date\",\n            \"paymentMethod\": {\n            \t\"id\": \"{{card_id}}\",\n            \t\"type\": \"PaymentCard\"\n            },\n            \"attachments\": [\n                {\n                    \"attachmentUrl\": \"https://....\",\n                    \"created\": \"ISO 8601 Date\",\n                    \"isOriginal\": true\n                }\n            ],\n            \"notes\": [\n                {\n                    \"value\": \"Some text...\",\n                    \"created\": \"ISO 8601 Date\"\n                }\n            ],\n            \"creditor\": {\n                \"id\": \"{{creditor_id}}\"\n            },\n            \"owner\": {\n                \"user\": {\n                    \"id\": \"{{user_id}}\"\n                },\n                \"team\": {\n                    \"id\": \"{{team_id}}\"\n                }\n            },\n            \"source\": {\n                \"id\": \"{{source_id}}\",\n                \"name\": \"Partner\"\n            }\n        }\n    }\n}"}],"_postman_id":"df7a6239-2174-4a50-bc79-5010653ef750"},{"name":"Delete","id":"48e73ec1-6ade-449b-8be5-64b9f20d4444","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v2/expenses/{{expense_id}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>Delete an expense.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.delete</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code>.</p>\n","urlObject":{"path":["v2","expenses","{{expense_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"b23807ae-8de5-46ea-a9a7-4ddf972117f2","name":"Read","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/bills/{{bill_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"bill\": {\n            \"id\": \"{{bill_id}}\",\n            \"amount\": 12345,\n            \"currency\": \"DKK\",\n            \"state\": \"paid\",\n            \"referenceDate\": \"ISO 8601 Date\",\n            \"issueDate\": \"ISO 8601 Date\",\n            \"dueDate\": \"ISO 8601 Date\",\n            \"isDueDateOverwritten\": false,\n            \"paymentDate\": \"ISO 8601 Date\",\n            \"paymentMethod\": {\n            \t\"id\": \"{{card_id}}\",\n            \t\"type\": \"PaymentCard\"\n            },\n            \"attachments\": [\n                {\n                    \"attachmentUrl\": \"https://....\",\n                    \"created\": \"ISO 8601 Date\",\n                    \"isOriginal\": true\n                }\n            ],\n            \"notes\": [\n                {\n                    \"value\": \"Some text...\",\n                    \"created\": \"ISO 8601 Date\"\n                }\n            ],\n            \"creditor\": {\n                \"id\": \"{{creditor_id}}\"\n            },\n            \"owner\": {\n                \"user\": {\n                    \"id\": \"{{user_id}}\"\n                },\n                \"team\": {\n                    \"id\": \"{{team_id}}\"\n                }\n            },\n            \"source\": {\n                \"id\": \"{{source_id}}\",\n                \"name\": \"Partner\"\n            }\n        }\n    }\n}"}],"_postman_id":"48e73ec1-6ade-449b-8be5-64b9f20d4444"},{"name":"List","id":"4ad9a666-1526-4452-a5e2-ebbd86d741ab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v2/expenses?teamId={{team_id}}&offset={{offset}}&count={{count}}&type={{type}}&state={{state}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>Get/list expenses.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.list</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a shallow list of expenses.</p>\n","urlObject":{"path":["v2","expenses"],"host":["{{host}}"],"query":[{"description":{"content":"<p>Required field</p>\n","type":"text/plain"},"key":"teamId","value":"{{team_id}}"},{"description":{"content":"<p><em>Optional.</em></p>\n","type":"text/plain"},"key":"offset","value":"{{offset}}"},{"description":{"content":"<p><em>Optional.</em></p>\n","type":"text/plain"},"key":"count","value":"{{count}}"},{"description":{"content":"<p><em>Optional.</em> \nFinancial document types (<code>{{type}}</code>): <code>0</code> for Bill, <code>1</code> for Receipt, <code>2</code> for Credit Note. If not specified all document types will be included.</p>\n","type":"text/plain"},"key":"type","value":"{{type}}"},{"description":{"content":"<p><em>Optional.</em> \nBill state  (<code>{{state}}</code>): <code>0</code> for Pending,<code>1</code> for Booked,<code>2</code> for Paid,<code>4</code> for Cancelled,<code>5</code> for Awaiting,<code>6</code> for Paused,<code>7</code> for Duplicate,<code>8</code> for Refunded,<code>9</code> for Initialized</p>\n","type":"text/plain"},"key":"state","value":"{{state}}"}],"variable":[]}},"response":[{"id":"99a26510-87fe-4119-966d-f85eb6453b19","name":"List","originalRequest":{"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{host}}/v2/expenses?teamId={{team_id}}&offset={{offset}}&count={{count}}&type={{type}}&state={{state}}","host":["{{host}}"],"path":["v2","expenses"],"query":[{"key":"teamId","value":"{{team_id}}","description":"Required field"},{"key":"offset","value":"{{offset}}","description":"*Optional.*"},{"key":"count","value":"{{count}}","description":"*Optional.*"},{"key":"type","value":"{{type}}","description":"*Optional.* \nFinancial document types (`{{type}}`): `0` for Bill, `1` for Receipt, `2` for Credit Note. If not specified all document types will be included.\n"},{"key":"state","value":"{{state}}","description":"*Optional.* \nBill state  (`{{state}}`): `0` for Pending,`1` for Booked,`2` for Paid,`4` for Cancelled,`5` for Awaiting,`6` for Paused,`7` for Duplicate,`8` for Refunded,`9` for Initialized\n"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"total\": 2,\r\n    \"offset\": 0,\r\n    \"count\": 2,\r\n    \"data\": {\r\n        \"bills\": [\r\n            {\r\n                \"id\": \"M6gdyLr3\",\r\n                \"number\": 2,\r\n                \"amount\": 96793,\r\n                \"currency\": \"USD\",\r\n                \"state\": \"awaiting\",\r\n                \"referenceDate\": \"2022-03-19T00:00:00Z\",\r\n                \"issueDate\": \"2020-12-15T00:00:00Z\",\r\n                \"dueDate\": \"2022-03-19T00:00:00Z\",\r\n                \"isDueDateOverwritten\": false,\r\n                \"category\": {\r\n                    \"id\": \"2ymnkg9O\"\r\n                },\r\n                \"vendor\": {\r\n                    \"id\": \"M6gdyLr3\"\r\n                },\r\n                \"owner\": {\r\n                    \"user\": {\r\n                        \"id\": \"a1LepgbG\"\r\n                    },\r\n                    \"team\": {\r\n                        \"id\": \"5ELZjL4K\"\r\n                    }\r\n                },\r\n                \"type\": \"bill\"\r\n            },\r\n            {\r\n                \"id\": \"wXLJnLWy\",\r\n                \"number\": 1,\r\n                \"amount\": 21488,\r\n                \"currency\": \"USD\",\r\n                \"state\": \"awaiting\",\r\n                \"referenceDate\": \"2022-06-25T00:00:00Z\",\r\n                \"issueDate\": \"2020-12-15T00:00:00Z\",\r\n                \"dueDate\": \"2022-06-25T00:00:00Z\",\r\n                \"isDueDateOverwritten\": false,\r\n                \"category\": {\r\n                    \"id\": \"2ymnkg9O\"\r\n                },\r\n                \"vendor\": {\r\n                    \"id\": \"wXLJnLWy\"\r\n                },\r\n                \"owner\": {\r\n                    \"user\": {\r\n                        \"id\": \"a1LepgbG\"\r\n                    },\r\n                    \"team\": {\r\n                        \"id\": \"5ELZjL4K\"\r\n                    }\r\n                },\r\n                \"type\": \"bill\"\r\n            }\r\n        ]\r\n    }\r\n}"}],"_postman_id":"4ad9a666-1526-4452-a5e2-ebbd86d741ab"},{"name":"Attachments","id":"3a00162f-edc8-45eb-be5d-7414afe54b65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","type":"text","value":"multipart/form-data"}],"body":{"mode":"formdata","formdata":[{"description":"<p>Supported formats \"pdf\", \"png\", \"jpeg\", \"bmp\", \"tiff\"</p>\n","key":"files","type":"file","value":null},{"key":"replaceMainAttachment","value":"","description":"<p><em>optional</em></p>\n","type":"text"},{"key":"generateUnifiedAttachment","value":"","description":"<p><em>optional</em> If true will combine all the attachments into a single PDF</p>\n","type":"text"}]},"url":"{{host}}/v2/expenses/{{expense_id}}/attachments","description":"<p>Attach a document to an expense.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.create</code>. <br /><br />\nSupported formats: <code>pdf</code>, <code>png</code>, <code>jpeg</code>, <code>bmp</code>, <code>tiff</code>, <code>xml</code>. <br /><br />\nOn a successful request the endpoint will respond with <code>201 Created</code>.</p>\n","urlObject":{"path":["v2","expenses","{{expense_id}}","attachments"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3a00162f-edc8-45eb-be5d-7414afe54b65"},{"name":"Labels","id":"d332b3a7-aadd-48a1-81a3-6d52371380f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}","warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman."},{"key":"Content-Type","type":"text","value":"multipart/form-data"}],"body":{"mode":"formdata","formdata":[{"description":"<p><em>Required</em> </p>\n","key":"labelId","type":"text","value":""}]},"url":"{{host}}/v2/expenses/{{expense_id}}/labels","description":"<p>Set a label on an expense.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.create</code>. <br /><br />\nOn a successful request the endpoint will respond with <code>200 OK</code>.</p>\n","urlObject":{"path":["v2","expenses","{{expense_id}}","labels"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"d332b3a7-aadd-48a1-81a3-6d52371380f9"},{"name":"Amountlines","id":"be3869aa-b497-406a-a924-de26b24b3024","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{host}}/v2/expenses/{{expense_id}}/amountlines","description":"<p>View/read an expense amount lines.</p>\n<p>Scopes: <code>expenses.all</code> (optional) and/or <code>expenses.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a full list of expense amount lines</p>\n","urlObject":{"path":["v2","expenses","{{expense_id}}","amountlines"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"be3869aa-b497-406a-a924-de26b24b3024"}],"id":"4f536930-c542-429f-a17f-d23a9ad99c8c","description":"<p>Handling of expenses. It's currently possible to upload, generate new expenses also view (read) existing expenses of users created by the same API client.</p>\n<p>Available scopes: <code>expenses.all</code>, <code>expenses.create</code>, <code>expenses.read</code> and <code>expenses.list</code>.</p>\n","event":[{"listen":"prerequest","script":{"id":"c700afb5-c6cd-4a60-809e-75f9921c3c43","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"26fd7161-18eb-487d-900a-30685391aa8a","type":"text/javascript","exec":[""]}}],"_postman_id":"4f536930-c542-429f-a17f-d23a9ad99c8c","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Webhooks","item":[{"name":"Create","id":"442f3d4c-8d03-41b1-a3a8-7e1ce09a66bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/x-www-form-urlencoded","description":"<p><code>application/json</code> is also supported.</p>\n"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"url","value":"https://example.com/webhook","type":"text"},{"key":"events","value":"bill.state.booked,bill.state.paid,bill.state.refunded,paymentmethod.created,paymentmethod.deleted","type":"text","description":"<p>If using <code>application/json</code>, this needs to be provided as an array of strings.</p>\n"},{"key":"teamId","value":"{{team_id}}","description":"<p><em>Optional.</em> Will be created for user-related events if left out.</p>\n","type":"text"}]},"url":"{{host}}/v1/webhooks","description":"<p>⚠️ <strong>PREVIEW</strong>\nAdd/create webhooks.</p>\n<p>Scopes: <code>webhooks.all</code> (optional) and/or <code>webhooks.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request. The <code>Location</code> header contains the API location of the newly created entity (WIP).</p>\n<p>While validating the supplied URL, a <code>POST</code> request with the following payload (prettified for clarity) will be sent:\n<br /><br /></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"data\": {\n    \"event\": \"webhook.validation\",\n    \"timestamp\": \"2017-07-27T21:46:00.0800000Z\"\n  }\n}\n</code></pre><p> </p>\n<p>The supplied URL <strong>must</strong> respond with <code>200 OK</code> for the webhook to be saved correctly (any payload will be ignored).</p>\n","urlObject":{"path":["v1","webhooks"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"0fe1b1d8-8ae0-4233-abda-9c719dad1c3d","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/x-www-form-urlencoded","description":"`application/json` is also supported."}],"body":{"mode":"urlencoded","urlencoded":[{"key":"url","value":"{{webhook_url}}","type":"text"},{"key":"events","value":"bill.state.booked,bill.state.paid,bill.state.refunded,paymentmethod.created,paymentmethod.deleted","type":"text","description":"If using `application/json`, this needs to be provided as an array of strings."},{"key":"teamId","value":"{{team_id}}","description":"*Optional.* Will be created for user-related events if left out.","type":"text"}]},"url":"{{host}}/v1/webhooks"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:33:25 GMT","name":"Date","description":""},{"key":"Link","value":"</webhooks.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Location","value":"/v1/webhooks/Q6LlRmao","name":"Location","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""},{"key":"transfer-encoding","value":"chunked","name":"transfer-encoding","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"webhook\": {\n            \"id\": \"{{webhook_id}}\",\n            \"url\": \"{{webhook_url}}\",\n            \"events\": [\n                \"bill.state.booked\",\n                \"bill.state.paid\",\n                \"bill.state.refunded\",\n                \"paymentmethod.created\",\n                \"paymentmethod.deleted\"\n            ],\n            \"source\": {\n                \"id\": \"{{apiclient_id}}\",\n                \"name\": \"{{apiclient_name}}\"\n            }\n        }\n    }\n}"}],"_postman_id":"442f3d4c-8d03-41b1-a3a8-7e1ce09a66bb"},{"name":"Read","id":"4adde9ef-219c-47ae-9024-4a0b1e662d2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/webhooks/{{webhook_id}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>Get/read a specific webhook created by the authenticated user (only by this API client/consumer).</p>\n<p>Scopes: <code>webhooks.all</code> (optional) and/or <code>webhooks.read</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","webhooks","{{webhook_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"4adde9ef-219c-47ae-9024-4a0b1e662d2c"},{"name":"Delete","id":"93171437-cdb4-41a5-92fc-18a81a219e7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{host}}/v1/webhooks/{{webhook_id}}","description":"<p>⚠️ <strong>PREVIEW</strong>\nRemove/delete webhooks.</p>\n<p>Scopes: <code>webhooks.all</code> (optional) and/or <code>webhooks.delete</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","webhooks","{{webhook_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"93171437-cdb4-41a5-92fc-18a81a219e7f"},{"name":"List","id":"872ebae3-e832-479c-bbcd-bdd5d0f15e8a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/webhooks?teamId={{teamId}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>Get/list webhooks created by the authenticated user (only by this API client/consumer).</p>\n<p>Scopes: <code>webhooks.all</code> (optional) and/or <code>webhooks.list</code>.</p>\n<p>The endpoint will respond with <code>201 OK</code> on a successful request.</p>\n","urlObject":{"path":["","v1","webhooks"],"host":["{{host}}"],"query":[{"key":"teamId","value":"{{teamId}}"}],"variable":[]}},"response":[],"_postman_id":"872ebae3-e832-479c-bbcd-bdd5d0f15e8a"}],"id":"3612df47-9266-4917-825a-8e157d39dc51","description":"<p>Subscribe or unsubscribe to events with webhooks.</p>\n<p>All expenses on the Roger platform are treated as an abstract mathematical model known as a finite-state machine (FSM). The dominating property is that any expense can only be in exactly one of the finite number of states at any given time. By abstracting the actual lifetime of an expense as a FSM we simply the calculation and look-up operations on any given expense at anytime. The event in this context is describing the overall status of the expense, wether a expense is analyzing, booked, paid etc. The state machine is designed to remember preceding events and called the <strong>state</strong> of the system.</p>\n\n\n<h2 id=\"events\">Events</h2>\n<p>We currently support the following events: <code>expense.state.pending</code>, <code>expense.state.booked</code>, <code>expense.state.paid</code>, <code>expense.state.refunded</code>, <code>expense.state.cancelled</code>, <code>expense.approval.declined</code>, <code>expense.state.paused</code>, <code>expense.state.duplicate</code>, <code>paymentmethod.created</code>, <code>paymentmethod.deleted</code>, <code>team.category.update</code>, <code>team.department.update</code>, <code>team.list.update</code>, <code>expense.vendor.updated</code>, <code>team.vendor.updated</code>, and <code>team.vendor.added</code>.</p>\n<h6 id=\"payload-example-for-event-expensestatepaid\">Payload example for Event <code>expense.state.paid</code>:</h6>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"data\": {\n    \"event\": \"expense.state.paid\",\n    \"timestamp\": \"2017-06-26T20:45:00.0700000Z\",\n    \"bill\": {\n      \"id\": \"{{expense_id}}\",\n      \"state\": \"{{expense_state}}\"\n    }\n  }\n}\n</code></pre><br />\n\n<p>Issue a <code>GET</code> request to <code>{{host}}/v2/expenses/{{expense_id}}</code> to get the full expense object.\n<br /><br /></p>\n<h2 id=\"security\">Security</h2>\n<p>A <code>X-Roger-Signature</code> header is added to <strong>all</strong> requests originating from our services. This prevents malicious third-parties from forging requests, and we therefore <strong>highly recommend</strong> you to validate the request signature. Signatures are generated using a hash-based message authentication code (<a href=\"https://en.wikipedia.org/wiki/Hash-based_message_authentication_code\">HMAC</a>) with <a href=\"https://en.wikipedia.org/wiki/SHA-512\">SHA-512</a>.</p>\n<p>A value of a header should have the following format: <code>t={{epoch_timestamp}};v1={{signed_hash}}</code>. To validate the signature, please follow the steps below:</p>\n<ol>\n<li>Extract the timestamp (<code>epoch_timestamp</code>) from <code>t</code> and the value (<code>signed_hash</code>) for <code>v1</code> for comparison.</li>\n<li>Prepare your own signed hash (<code>own_signed_hash</code>) by concatenating <code>epoch_timestamp</code> (as a string), a dot (the character <code>.</code>) and the actual JSON payload (the request body).</li>\n<li>Compute HMAC with the SHA-512 hash function using your separate <em>webhook</em> <code>secret</code> as the key and concatenated string from the previous step as the message.</li>\n<li>Compare <code>signed_hash</code> from the request header to <code>own_signed_hash</code>, which you've just computed. If the signatures match, compute the difference between the current timestamp and the received timestamp (<code>epoch_timestamp</code>), then decide if the difference is within your tolerance.</li>\n</ol>\n","event":[{"listen":"prerequest","script":{"id":"9afbbf78-0d9d-4f2e-9717-70c1881a4c6b","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"4f390c67-340a-4f6f-b3aa-f7a9162f1785","type":"text/javascript","exec":[""]}}],"_postman_id":"3612df47-9266-4917-825a-8e157d39dc51","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Health","item":[{"name":"Ping","event":[{"listen":"test","script":{"id":"2c456d7a-2e60-46c7-991d-65161f797d45","type":"text/javascript","exec":["pm.test('status is 200', function() {","    pm.response.to.have.status(200);","});","","pm.test('ping to pong', function() {","    pm.response.to.have.body('pong');","});"]}}],"id":"a97678cd-d26c-420b-a74a-b628332d86b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"{{host}}/v1/health/ping","description":"<p>Will return <code>200 OK</code> with a body of <code>pong</code>.</p>\n","urlObject":{"path":["v1","health","ping"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"a97678cd-d26c-420b-a74a-b628332d86b0"},{"name":"Info","event":[{"listen":"test","script":{"id":"0d3fec5c-8c7c-4432-bd1d-98bbad8f0eeb","exec":["var data = JSON.parse(responseBody);","postman.setGlobalVariable(\"external-api-token\", data.access_token);"],"type":"text/javascript"}}],"id":"1d140f3d-9b3e-4f91-be83-5be274a27a0f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[],"url":"{{host}}/v1/health/info","description":"<p>Will return various information about the current environment etc.</p>\n","urlObject":{"path":["v1","health","info"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1d140f3d-9b3e-4f91-be83-5be274a27a0f"}],"id":"4133155c-8534-4ca1-bfb2-3f17a9f99f4a","_postman_id":"4133155c-8534-4ca1-bfb2-3f17a9f99f4a","description":"","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Users","item":[{"name":"Me","id":"07effb6e-1ca5-4588-ac87-bd5e032279e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/users/me","description":"<p>View/read the current authenticated user.</p>\n<p>🚩 <em>Support for retrieving/reading team members is in development.</em></p>\n<p>Scopes: <code>users.all</code> (optional) and/or <code>users.read</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","users","me"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"07effb6e-1ca5-4588-ac87-bd5e032279e1"}],"id":"d773653f-7a2c-4ac0-8b49-b8703e5f2f0f","description":"<p>Handling of users. It's currently only possible to get (read) the current user, as well as adding (create) new users (available for selected partners).</p>\n<p>Available scopes: <code>users.all</code>, <code>users.create</code>, <code>users.read</code> and <code>users.update</code>.</p>\n","event":[{"listen":"prerequest","script":{"id":"921b09fc-6618-4d6f-93f3-314dc63c42a8","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"c7f639ef-f98e-465b-be85-8390433c8caf","type":"text/javascript","exec":[""]}}],"_postman_id":"d773653f-7a2c-4ac0-8b49-b8703e5f2f0f","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Teams","item":[{"name":"General","item":[{"name":"Create","id":"938e9e9a-18df-4601-a4ad-fb795c8fff2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/x-www-form-urlencoded","description":"<p><code>application/json</code> is also supported.</p>\n"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"{{team_name}}","type":"text","description":"<p>Team name e.g. your company's name.</p>\n"},{"key":"country","value":"{{team_country}}","description":"<p>Team country e.g. dk, us</p>\n","type":"text"},{"key":"vat","value":"{{team_vat}}","type":"text"}]},"url":"{{host}}/v1/teams","description":"<p>Add/create teams.</p>\n<p>Scopes: <code>teams.all</code> (optional) and/or <code>teams.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request. The <code>Location</code> header contains the API location of the newly created entity.</p>\n","urlObject":{"path":["v1","teams"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"7a8c4935-efdc-46a2-aec5-f91fed6e4fa8","name":"Create","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/x-www-form-urlencoded","description":"`application/json` is also supported."}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","value":"{{team_name}}","type":"text","description":"Team name e.g. your company's name."}]},"url":"{{host}}/v1/teams"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:32:52 GMT","name":"Date","description":""},{"key":"Link","value":"</teams.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Location","value":"/v1/teams/nzBW3OBb","name":"Location","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""},{"key":"transfer-encoding","value":"chunked","name":"transfer-encoding","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"team\": {\n            \"id\": \"{{team_id}}\",\n            \"name\": \"{{team_name}}\",\n            \"rogerAddress\": \"generated-handle@pay.roger.ai\",\n            \"owner\": {\n                \"id\": \"{{user_id}}\"\n            },\n            \"source\": {\n                \"id\": \"{{apiclient_id}}\",\n                \"name\": \"{{apiclient_name}}\"\n            }\n        }\n    }\n}"}],"_postman_id":"938e9e9a-18df-4601-a4ad-fb795c8fff2e"},{"name":"Read","id":"672a65c4-a565-429e-aaf9-f5bd1d8f7ed9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{team_id}}","description":"<p>View/read a team (where authenticated user must be a member).</p>\n<p>Scopes: <code>teams.all</code> (optional) and/or <code>teams.read</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"b0e5b3a5-3ad1-4ef8-a289-abf32846f262","name":"Read","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/teams/{{team_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:20:16 GMT","name":"Date","description":""},{"key":"Link","value":"</V4gbEVmQ.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""},{"key":"transfer-encoding","value":"chunked","name":"transfer-encoding","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"team\": {\n            \"id\": \"{{team_id}}\",\n            \"name\": \"{{team_name}}\",\n            \"rogerAddress\": \"generated-handle@pay.roger.ai\",\n            \"owner\": {\n                \"id\": \"{{user_id}}\"\n            }\n        }\n    }\n}"}],"_postman_id":"672a65c4-a565-429e-aaf9-f5bd1d8f7ed9"},{"name":"List","id":"c916317a-c972-4d9b-b51b-28cc9a0239bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams","description":"<p>Get/list teams of the authenticated user.</p>\n<p>Scopes: <code>teams.all</code> (optional) and/or <code>teams.list</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"fc3136f5-e1a7-4108-97e3-2dcfbce85f17","name":"List","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman."}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/teams"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Length","value":"21","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:32:36 GMT","name":"Date","description":""},{"key":"Link","value":"</teams.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"teams\": [\n            {\n                \"name\": \"Company1\",\n                \"vat\": \"\",\n                \"id\": \"wXLJnLWy\"\n            },\n            {\n                \"name\": \"Company2\",\n                \"vat\": \"\",\n                \"id\": \"5ELZjL4K\"\n            }\n        ]\n    }\n}"}],"_postman_id":"c916317a-c972-4d9b-b51b-28cc9a0239bd"},{"name":"Delete","id":"e02c197c-4844-4abc-8006-41f92b204912","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{team_id}}","description":"<p>Delete a team (where authenticated user must be a member).</p>\n<p>Scopes: <code>teams.all</code> (optional) and/or <code>teams.delete</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"eaf38d6f-38f4-426f-a440-4c85c453ba1e","name":"Read","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/teams/{{team_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:20:16 GMT","name":"Date","description":""},{"key":"Link","value":"</V4gbEVmQ.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""},{"key":"transfer-encoding","value":"chunked","name":"transfer-encoding","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"team\": {\n            \"id\": \"{{team_id}}\",\n            \"name\": \"{{team_name}}\",\n            \"rogerAddress\": \"generated-handle@pay.roger.ai\",\n            \"owner\": {\n                \"id\": \"{{user_id}}\"\n            }\n        }\n    }\n}"}],"_postman_id":"e02c197c-4844-4abc-8006-41f92b204912"}],"id":"f15f7c24-f9fe-4464-a013-0e66f558182d","_postman_id":"f15f7c24-f9fe-4464-a013-0e66f558182d","description":"","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Categories","item":[{"name":"Create (import)","id":"7a6ade60-077c-4e74-9397-8255b4645a5a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"raw","raw":"{\n\t\"categories\": [\n\t\t{\n\t\t\t\"id\": 1,\n    \t\t\"name\": \"Category A\",\n    \t\t\"number\": \"1030\",\n    \t\t\"selectable\": true\n\t\t},\n\t\t{\n\t\t\t\"id\": 2,\n\t\t\t\"name\": \"Category B\",\n\t\t\t\"number\": \"1045\",\n\t\t\t\"selectable\": true\n\t\t},\n\t\t{\n\t\t\t\"id\": 3,\n\t\t\t\"name\": \"Category A, Child 1\",\n\t\t\t\"number\": \"1033\",\n\t\t\t\"selectable\": true,\n\t\t\t\"parentId\": 1\n\t\t}\n\t]\n}"},"url":"{{host}}/v1/teams/{{team_id}}/categories","description":"<p>Import team categories. Given IDs must be unique and can be used to contruct an abitary parent to children relationship (maximum two levels, including parent). The IDs will be returned when created will be internal identifiers.</p>\n<p>Scopes: <code>teams.categories.all</code> (optional) and/or <code>teams.categories.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n<p>⚠️ <strong>THIS WILL DELETE ALL EXISTING CATEGORIES AND CREDITOR MAPPINGS.</strong></p>\n","urlObject":{"path":["v1","teams","{{team_id}}","categories"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"7a6ade60-077c-4e74-9397-8255b4645a5a"},{"name":"Create (merge)","id":"c0d339fa-d4bf-47bf-b03a-509d9408d104","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"raw","raw":"{\n\t\"categories\": [\n\t\t{\n\t\t\t\"id\": 1,\n    \t\t\"name\": \"Category A\",\n    \t\t\"number\": \"1030\",\n    \t\t\"selectable\": true\n\t\t},\n\t\t{\n\t\t\t\"id\": 2,\n\t\t\t\"name\": \"Category B\",\n\t\t\t\"number\": \"1045\",\n\t\t\t\"selectable\": true\n\t\t},\n\t\t{\n\t\t\t\"id\": 3,\n\t\t\t\"name\": \"Category A, Child 1\",\n\t\t\t\"number\": \"1033\",\n\t\t\t\"selectable\": true,\n\t\t\t\"parentId\": 1\n\t\t}\n\t]\n}"},"url":"{{host}}/v1/teams/{{team_id}}/categories","description":"<p>Merge team categories. Given IDs must be unique and can be used to contruct an abitary parent to children relationship (maximum two levels, including parent). The IDs will be returned when created will be internal identifiers.</p>\n<p>Scopes: <code>teams.categories.all</code> (optional) and/or <code>teams.categories.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n<p>⚠️ <strong>THIS WILL KEEP ALL EXISTING CATEGORIES AND CREDITOR MAPPINGS.</strong></p>\n","urlObject":{"path":["v1","teams","{{team_id}}","categories"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c0d339fa-d4bf-47bf-b03a-509d9408d104"},{"name":"List","id":"1882162f-9a78-4a51-b4af-918644f149ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{team_id}}/categories","description":"<p>List team categories.</p>\n<p>Scopes: <code>teams.categories.all</code> (optional) and/or <code>teams.categories.list</code>.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","categories"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"1882162f-9a78-4a51-b4af-918644f149ef"},{"name":"Read","id":"9b4aac97-45c1-48e4-a31f-8ace249883b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{team_id}}/categories/{{category_id}}","description":"<p>Get a team category.</p>\n<p>Scopes: <code>teams.categories.all</code> (optional) and/or <code>teams.categories.read</code>.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","categories","{{category_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"9b4aac97-45c1-48e4-a31f-8ace249883b8"},{"name":"Delete","id":"efbe3a06-f952-486b-82c4-cee0411edf30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{team_id}}/categories/{{category_id}}","description":"<p>Delete a team category.</p>\n<p>Scopes: <code>teams.categories.all</code> (optional) and/or <code>teams.categories.delete</code>.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","categories","{{category_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"efbe3a06-f952-486b-82c4-cee0411edf30"}],"id":"f620992b-8e2d-4b8d-821b-b703e5cbff46","description":"<p>The categories for a team, which can be assigned to a bill. Currently, a category number is only available if the categories have been imported and set during this process.</p>\n<p>⚠️ <strong>PREVIEW</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"65990830-703c-4536-92fe-24991d48b6d6","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"1c94f1c9-016d-4e41-bd84-3e784baca769","type":"text/javascript","exec":[""]}}],"_postman_id":"f620992b-8e2d-4b8d-821b-b703e5cbff46","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Departments","item":[{"name":"Create","id":"6b555e43-d4b1-4e63-a277-d03d490d7631","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"formdata","formdata":[{"key":"name","value":"{{departmentName}}","type":"text"}]},"url":"{{host}}/v1/teams/{{team_id}}/departments","description":"<p>Create team department. </p>\n<p>Scopes: <code>departments.all</code> (optional) and/or <code>departments.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","departments"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"6b555e43-d4b1-4e63-a277-d03d490d7631"},{"name":"Read","id":"2a84a4ab-4866-4fa0-85a2-27e94a23311e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{host}}/v1/teams/{{team_id}}/departments/{{department_id}}","description":"<p>Get team department.</p>\n<p>Scopes: <code>departments.all</code> (optional) and/or <code>departments.read</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","departments","{{department_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2a84a4ab-4866-4fa0-85a2-27e94a23311e"},{"name":"Delete","id":"eddfa9ea-4d97-4ab3-9552-5f34bda8af7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{host}}/v1/teams/{{team_id}}/departments/{{department_id}}","description":"<p>Delete team department.</p>\n<p>Scopes: <code>departments.all</code> (optional) and/or <code>departments.delete</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","departments","{{department_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"eddfa9ea-4d97-4ab3-9552-5f34bda8af7e"},{"name":"List","id":"e7660cf3-2b22-4033-8c68-b420610c8cda","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{team_id}}/departments","description":"<p>Get/list team's departments of the authenticated user.</p>\n<p>Scopes: <code>departments.all</code> (optional) and/or <code>departments.list</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","departments"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"b11bceb0-907d-45f2-88a8-e78f5b174271","name":"List","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman."}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/teams"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Length","value":"21","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:32:36 GMT","name":"Date","description":""},{"key":"Link","value":"</teams.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"teams\": [\n          {\n            \"id\": \"{{team_id}}\"\n          }\n        ]\n    }\n}"}],"_postman_id":"e7660cf3-2b22-4033-8c68-b420610c8cda"},{"name":"Merge","id":"c8b9230e-10e5-4d0d-ad46-d73c1faf00c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","value":"text/plain","type":"text"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"raw","raw":"{\n departments:[{\n\tname: \"Departmen1\"\n },\n {\n \tname: \"Departmen2\"\n }]\n}"},"url":"{{host}}/v1/teams/{{team_id}}/departments","description":"<p>Merge team's departments. </p>\n<p>Scopes: <code>departments.all</code> (optional) and/or <code>departments.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","departments"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c8b9230e-10e5-4d0d-ad46-d73c1faf00c1"}],"id":"f604dddf-001e-428d-87f4-952c7bdd9e21","description":"<p>The departments for a team, which can be assigned to a bill.</p>\n","event":[{"listen":"prerequest","script":{"id":"c418f572-bd30-4aa6-b659-29e8155b09a0","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"bd91c7d8-053c-4dd9-afc5-98dfe94c2ae8","type":"text/javascript","exec":[""]}}],"_postman_id":"f604dddf-001e-428d-87f4-952c7bdd9e21","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Lists","item":[{"name":"Labels","item":[{"name":"Create(import)","id":"0b6d42b4-ef6f-4718-bd50-83c8f7a0c4ce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"labels\": [\n\t\t{\n\t\t\t\"value\": 1,\n    \t\t\"externalId\": \"Category A\"\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{llist_id}}/labels","description":"<p>Import team list labels.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n<p>⚠️ <strong>THIS WILL OVERRIDE ALL EXISTING LABELS.</strong></p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{llist_id}}","labels"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"0b6d42b4-ef6f-4718-bd50-83c8f7a0c4ce"},{"name":"Create(import) Async","id":"c5bb7a72-04c1-4384-99b7-90c6a98606df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"labels\": [\n\t\t{\n\t\t\t\"value\": 1,\n    \t\t\"externalId\": \"Category A\"\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{llist_id}}/labels/async","description":"<p>Import team list labels in background.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n<p>⚠️ <strong>THIS WILL OVERRIDE ALL EXISTING LABELS.</strong></p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{llist_id}}","labels","async"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c5bb7a72-04c1-4384-99b7-90c6a98606df"},{"name":"Create(merge)","id":"c1b7f8d1-5e10-44a4-bd97-61a39afce44a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"labels\": [\n\t\t{\n\t\t\t\"value\": 1,\n    \t\t\"externalId\": \"Category A\"\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{llistId}}/labels","description":"<p>Merge team list labels.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n<p>⚠️ <strong>THIS WILL MERGE THE LABELS. THE EXISTING USED LABELS WILL NOT BE DELETED.</strong></p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{llistId}}","labels"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"c1b7f8d1-5e10-44a4-bd97-61a39afce44a"},{"name":"Create(merge) Async","id":"8b34363c-9a5a-400c-9d7d-f47e7f2458b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"labels\": [\n\t\t{\n\t\t\t\"value\": 1,\n    \t\t\"externalId\": \"Category A\"\n\t\t}\n\t]\n}","options":{"raw":{"language":"json"}}},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{llistId}}/labels/async","description":"<p>Merge team list labels in background.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n<p>⚠️ <strong>THIS WILL MERGE THE LABELS. THE EXISTING USED LABELS WILL NOT BE DELETED.</strong></p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{llistId}}","labels","async"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"8b34363c-9a5a-400c-9d7d-f47e7f2458b8"},{"name":"Read","id":"83e9fb61-b3e6-4280-923c-1deaba49a140","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"type","type":"text","value":""},{"key":"name","type":"text","value":""},{"key":"origin","type":"text","value":""}]},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{llist_id}}/labels/{{label_id}}","description":"<p>Get a team list label.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.read</code>.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{llist_id}}","labels","{{label_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"83e9fb61-b3e6-4280-923c-1deaba49a140"},{"name":"List","id":"965ebf5f-0801-4185-a82a-a8d743e8b332","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"type","type":"text","value":""},{"key":"name","type":"text","value":""},{"key":"origin","type":"text","value":""}]},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{llist_id}}/labels","description":"<p>List team list label</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.list</code>.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{llist_id}}","labels"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"965ebf5f-0801-4185-a82a-a8d743e8b332"}],"id":"437d467d-e38d-419a-8b3c-89b5d6640fd6","_postman_id":"437d467d-e38d-419a-8b3c-89b5d6640fd6","description":"","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Create","id":"b105e118-d68b-41b9-a3b7-df7f26a744d1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text","description":"<p><code>application/json</code> is also supported.</p>\n"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"type","value":"","type":"text","description":"<p>Required field</p>\n"},{"key":"name","value":"","type":"text"},{"key":"origin","value":"","type":"text"},{"key":"onBills","value":"","type":"text"},{"key":"onCreditnotes","value":"","type":"text"},{"key":"onReceipts","value":"","type":"text"}]},"url":"{{host}}/v1/teams/{{team_id}}/lists","description":"<p>Create team list. </p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b105e118-d68b-41b9-a3b7-df7f26a744d1"},{"name":"Update","id":"444d2b45-8ccd-4575-8ec3-a6de6059d7b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded","description":"<p><code>application/json</code> is also supported.</p>\n"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"name","type":"text","value":""},{"key":"origin","type":"text","value":""},{"key":"onBills","type":"text","value":""},{"key":"onCreditnotes","type":"text","value":""},{"key":"onReceipts","type":"text","value":""}]},"url":"{{host}}/v1/teams/{{team_id}}/lists/{{list_id}}","description":"<p>Update team list. </p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.update</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists","{{list_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"444d2b45-8ccd-4575-8ec3-a6de6059d7b4"},{"name":"List","id":"f9d1d80e-74bc-48af-80b1-9083ad90d41f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"url":"{{host}}/v1/teams/{{team_id}}/lists","description":"<p>List team lists.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.list</code>.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","lists"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"ec3d5cc2-0ccc-4dba-b011-c0f14ad65d86","name":"List","originalRequest":{"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"url":"{{host}}/v1/teams/{{team_id}}/lists"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"lists\": [\r\n            {\r\n                \"id\": \"74mjYBn0\",\r\n                \"name\": \"Projects\",\r\n                \"created\": \"2021-01-14T10:33:31Z\",\r\n                \"dataType\": \"any\",\r\n                \"origin\": \"the-origin\",\r\n                \"onBills\": true,\r\n                \"onCreditnotes\": true,\r\n                \"onReceipts\": true,\r\n                \"domain\": \"documents\",\r\n                \"type\": \"Projects\",\r\n                \"isLocked\": true,\r\n                \"labels\": [\r\n                    {\r\n                        \"id\": \"M6gdyLr3\",\r\n                        \"externalId\": \"2\",\r\n                        \"value\": \"2 Projekt NYC\",\r\n                        \"listId\": \"74mjYBn0\"\r\n                    },\r\n                    {\r\n                        \"id\": \"74mjYBn0\",\r\n                        \"externalId\": \"3\",\r\n                        \"value\": \"3 Project CPH\",\r\n                        \"listId\": \"74mjYBn0\"\r\n                    },\r\n                    {\r\n                        \"id\": \"4em12gxk\",\r\n                        \"externalId\": \"6\",\r\n                        \"value\": \"6 55555\",\r\n                        \"listId\": \"74mjYBn0\"\r\n                    },\r\n                    {\r\n                        \"id\": \"5ELZjL4K\",\r\n                        \"externalId\": \"9\",\r\n                        \"value\": \"9 Projeckt EU\",\r\n                        \"listId\": \"74mjYBn0\"\r\n                    },\r\n                    {\r\n                        \"id\": \"a1LepgbG\",\r\n                        \"externalId\": \"10\",\r\n                        \"value\": \"10 Project DKK\",\r\n                        \"listId\": \"74mjYBn0\"\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                \"id\": \"4em12gxk\",\r\n                \"name\": \"CostNumbers\",\r\n                \"created\": \"2021-01-14T10:33:31Z\",\r\n                \"dataType\": \"any\",\r\n                \"origin\": \"the-origin\",\r\n                \"onBills\": true,\r\n                \"onCreditnotes\": true,\r\n                \"onReceipts\": true,\r\n                \"domain\": \"documents\",\r\n                \"type\": \"CostNumbers\",\r\n                \"isLocked\": true,\r\n                \"labels\": [\r\n                    {\r\n                        \"id\": \"nAmYGLaX\",\r\n                        \"externalId\": \"1\",\r\n                        \"value\": \"1 TestCostType\",\r\n                        \"listId\": \"4em12gxk\"\r\n                    },\r\n                    {\r\n                        \"id\": \"wXLJnLWy\",\r\n                        \"externalId\": \"2\",\r\n                        \"value\": \"2 CostTypeWithVat\",\r\n                        \"listId\": \"4em12gxk\"\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                \"id\": \"5ELZjL4K\",\r\n                \"name\": \"VatCodes\",\r\n                \"created\": \"2021-01-14T10:33:32Z\",\r\n                \"dataType\": \"any\",\r\n                \"origin\": \"the-origin\",\r\n                \"onBills\": true,\r\n                \"onCreditnotes\": true,\r\n                \"onReceipts\": true,\r\n                \"domain\": \"documents\",\r\n                \"type\": \"VatCodes\",\r\n                \"isLocked\": true,\r\n                \"labels\": [\r\n                    {\r\n                        \"id\": \"Q6LlRmao\",\r\n                        \"externalId\": \"Ingen moms\",\r\n                        \"value\": \"Ingen moms - Momsfri køb\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"dYgz7Lb2\",\r\n                        \"externalId\": \"Abr\",\r\n                        \"value\": \"Abr - Salg udenfor EU\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"kyB3pmMr\",\r\n                        \"externalId\": \"B25\",\r\n                        \"value\": \"B25 - Byggeydelser udland\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"QABNYLd6\",\r\n                        \"externalId\": \"I25\",\r\n                        \"value\": \"I25 - Indgående (køb)\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"jZgwKg6J\",\r\n                        \"externalId\": \"IV25\",\r\n                        \"value\": \"IV25 - Indgående (køb) varer udland\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"yrBxoLz5\",\r\n                        \"externalId\": \"IY25\",\r\n                        \"value\": \"IY25 - Indgående (køb) ydelser udland\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"JKg5ag7N\",\r\n                        \"externalId\": \"OBPK\",\r\n                        \"value\": \"OBPK - Køb med omvendt betalingspligt\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"KamkbBN3\",\r\n                        \"externalId\": \"OBPS\",\r\n                        \"value\": \"OBPS - Salg med omvendt betalingspligt\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"vlgo7g09\",\r\n                        \"externalId\": \"REP\",\r\n                        \"value\": \"REP - Repræsentation\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"yvBXKLkJ\",\r\n                        \"externalId\": \"U25\",\r\n                        \"value\": \"U25 - Udgående (salg)\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"4Mg9XmrN\",\r\n                        \"externalId\": \"UEUV\",\r\n                        \"value\": \"UEUV - Salg af varer indenfor EU\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    },\r\n                    {\r\n                        \"id\": \"97B2Gmzl\",\r\n                        \"externalId\": \"UY0\",\r\n                        \"value\": \"UY0 - Udgående (salg) ydelser indenfor EU\",\r\n                        \"listId\": \"5ELZjL4K\"\r\n                    }\r\n                ]\r\n            }\r\n        ]\r\n    }\r\n}"}],"_postman_id":"f9d1d80e-74bc-48af-80b1-9083ad90d41f"},{"name":"Read","id":"956fd956-64d4-42e5-80ab-997a14dda642","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{host}}/v1/teams/{{teamId}}/lists/{{list_id}}","description":"<p>Get team list.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.read</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{teamId}}","lists","{{list_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"956fd956-64d4-42e5-80ab-997a14dda642"},{"name":"Delete","id":"eddc6880-d294-49c5-804c-3e04e24439a7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{host}}/v1/teams/{{teamId}}/lists/{{list_id}}","description":"<p>Delete team list.</p>\n<p>Scopes: <code>teams.lists.all</code> (optional) and/or <code>teams.lists.delete</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{teamId}}","lists","{{list_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"eddc6880-d294-49c5-804c-3e04e24439a7"}],"id":"02a70bf7-dd15-4221-9dce-0f67fc6ffd6b","description":"<p>The lists for a team, which can be assigned to an expense. Currently, an external id is used to identified an entry from the source.</p>\n","event":[{"listen":"prerequest","script":{"id":"232fbeb6-c3e8-4723-9dad-ed202ff4ab21","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ac292c26-3e53-4f09-aa88-244d7f181300","type":"text/javascript","exec":[""]}}],"_postman_id":"02a70bf7-dd15-4221-9dce-0f67fc6ffd6b","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Members","item":[{"name":"List","id":"e8d171b1-77db-4f13-b9ac-a728db518c06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/teams/{{teamId}}/members","description":"<p>Get/list team's members of the authenticated user.</p>\n<p>Scopes: <code>team.members.all</code> (optional) and/or <code>team.members.list</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{teamId}}","members"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"80cb35aa-96cc-47f3-8731-e7c9da375f00","name":"List","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman."}],"body":{"mode":"formdata","formdata":[]},"url":"{{host}}/v1/teams"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"private","name":"Cache-Control","description":""},{"key":"Connection","value":"keep-alive","name":"Connection","description":""},{"key":"Content-Length","value":"21","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json; charset=utf-8","name":"Content-Type","description":""},{"key":"Date","value":"Mon, 19 Mar 2018 09:32:36 GMT","name":"Date","description":""},{"key":"Link","value":"</teams.xml>; rel=\"application/xml\"","name":"Link","description":""},{"key":"Server","value":"Microsoft-IIS/10.0","name":"Server","description":""},{"key":"Vary","value":"Accept","name":"Vary","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"teams\": [\n          {\n            \"id\": \"{{team_id}}\"\n          }\n        ]\n    }\n}"}],"_postman_id":"e8d171b1-77db-4f13-b9ac-a728db518c06"},{"name":"Create","id":"055883a8-9edc-4bd4-a5f6-63fae1dcb1c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/x-www-form-urlencoded","type":"text"},{"warning":"This is a duplicate header and will be overridden by the Authorization header generated by Postman.","key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","type":"text","value":"","description":"<p>Email of the new team member</p>\n"},{"key":"name","type":"text","value":"","description":"<p>Full name of the new team member</p>\n"},{"key":"isConfined ","value":"","description":"<p>Can team member only see their own expenses</p>\n","type":"text"},{"key":"requireApproval","value":"","description":"<p>Expenses uploaded by this user will require approval</p>\n","type":"text"},{"key":"isAppointer ","value":"","description":"<p>Can appoint new users as approvers on an expense</p>\n","type":"text"},{"key":"appointerLevel","value":"","description":"<p>What level of appointer is this user. Note: The <code>isAppointer</code> has to be true. Values: 0 = All expenses, 1 = Own expenses</p>\n","type":"text"},{"key":"role","value":"","description":"<p>What role should be assigned \n         OWNER = 0,\n          ADMIN = 1,<br />          CONTRIBUTER = 2,<br />           VIEWER = 3,\n           ACCOUNTANT = 4</p>\n","type":"text"}]},"url":"{{host}}/v1/teams/{{team_id}}/members","description":"<p>Scopes: <code>teams.members.all</code> (optional) and/or <code>teams.members.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","members"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"055883a8-9edc-4bd4-a5f6-63fae1dcb1c0"},{"name":"Update","id":"79276574-6c90-4a23-9795-be11e92a3156","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"urlencoded","urlencoded":[{"description":"<p>Can team member only see their own expenses</p>\n","key":"isConfined ","type":"text","value":""},{"description":"<p>Expenses uploaded by this user will require approval</p>\n","key":"requireApproval","type":"text","value":""},{"description":"<p>Can appoint new users as approvers on an expense</p>\n","key":"isAppointer ","type":"text","value":""},{"description":"<p>What level of appointer is this user. Note: The <code>isAppointer</code> has to be true. Values: 0 = All expenses, 1 = Own expenses</p>\n","key":"appointerLevel","type":"text","value":""},{"key":"role","value":"","description":"<p>What role should be assigned \n         OWNER = 0,\n          ADMIN = 1,<br />          CONTRIBUTER = 2,<br />           VIEWER = 3,\n           ACCOUNTANT = 4</p>\n","type":"text"}]},"url":"{{host}}/v1/teams/{{team_id}}/members/{{userId}}","description":"<p>Scopes: <code>teams.members.all</code> (optional) and/or <code>teams.members.create</code>.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","members","{{userId}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"79276574-6c90-4a23-9795-be11e92a3156"},{"name":"Delete","id":"723f4df8-aa8b-4aa9-9844-d05a223ea1ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"DELETE","header":[{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/x-www-form-urlencoded"},{"key":"Authorization","value":"Bearer {{access_token}}"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"{{host}}/v1/teams/{{team_id}}/members/{{user_id}}","description":"<p>Scopes: <code>teams.members.all</code> (optional) and/or <code>teams.members.create</code>.</p>\n<p>The endpoint will respond with <code>200 OK</code> on a successful request.</p>\n","urlObject":{"path":["v1","teams","{{team_id}}","members","{{user_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"723f4df8-aa8b-4aa9-9844-d05a223ea1ea"}],"id":"18864dec-6374-4bd9-bd2b-594d2e1bbae6","_postman_id":"18864dec-6374-4bd9-bd2b-594d2e1bbae6","description":"","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Vendors","item":[{"name":"Create","id":"577edff0-2ccf-4ff1-9d6f-33f3ae6f9767","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"[{\n\t\t\"Name\": \"Vendor 1\",\n\t\t\"Website\": \"www.vendor.com\",\n\t\t\"Email\": \"email@email.com\",\n\t\t\"Address\": \"1 Main St\",\n\t\t\"City\": \"San Francisco\",\n\t\t\"State\": \"CA\",\n\t\t\"Postal\": \"94102\",\n\t\t\"Country\": \"US\" // 2-Alpha country code\n\t},\n\t{\n\t\t\"Name\": \"Vendor 2\",\n\t\t\"Website\": \"www.vendor.com\",\n\t\t\"Email\": \"email@email.com\",\n\t\t\"Address\": \"2 Main St\",\n\t\t\"City\": \"San Francisco\",\n\t\t\"State\": \"CA\",\n\t\t\"Postal\": \"94102\",\n\t\t\"Country\": \"US\" // 2-Alpha country code\n\t}\n]","options":{"raw":{"language":"javascript"}}},"url":"{{host}}/v2/teams/{{teamId}}/vendors","description":"<p>View/read a vendor.</p>\n<p>Scopes: <code>teams.vendors.all</code> (optional) and/or <code>teams.vendors.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a full vendor payload.</p>\n","urlObject":{"path":["v2","teams","{{teamId}}","vendors"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"577edff0-2ccf-4ff1-9d6f-33f3ae6f9767"},{"name":"Read","id":"61aaf7a2-3254-4df8-837a-0187d9257a6b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{host}}/v2/teams/{{teamId}}/vendors/{{vendor_id}}","description":"<p>View/read a vendor.</p>\n<p>Scopes: <code>teams.vendors.all</code> (optional) and/or <code>teams.vendors.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a full vendor payload.</p>\n","urlObject":{"path":["v2","teams","{{teamId}}","vendors","{{vendor_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"61aaf7a2-3254-4df8-837a-0187d9257a6b"},{"name":"List","id":"925e2c62-8884-4355-907e-d317f6ea1abc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{host}}/v2/teams/{{teamId}}/vendors","description":"<p>List vendors.</p>\n<p>Scopes: <code>teams.vendors.all</code> (optional) and/or <code>teams.vendors.list</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a full vendors list payload.</p>\n","urlObject":{"path":["v2","teams","{{teamId}}","vendors"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"925e2c62-8884-4355-907e-d317f6ea1abc"}],"id":"da7d18d4-286a-4bc1-9cf3-21396b32813d","_postman_id":"da7d18d4-286a-4bc1-9cf3-21396b32813d","description":"","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}}],"id":"2484394b-d762-44d5-8fb2-1c1ce96dcf7a","description":"<p>In Roger a team corresponds to a company. \nAvailable scopes: <code>teams.all</code>, <code>teams.create</code>, <code>teams.read</code>, <code>teams.update</code>, <code>teams.delete</code> and <code>teams.list</code>.</p>\n","event":[{"listen":"prerequest","script":{"id":"353a268c-af3c-485c-9437-695563f1d752","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"264151f0-c634-480d-9e67-3d91d4e7cfee","type":"text/javascript","exec":[""]}}],"_postman_id":"2484394b-d762-44d5-8fb2-1c1ce96dcf7a","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Payments","item":[{"name":"Methods","item":[{"name":"Create","id":"dd9190fe-67e6-427c-8cfe-0eb5990e6b08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\r\n  \"type\": \"card\",\r\n  \"userId\": \"{{user_id}}\",\r\n  \"teamId\": \"{{team_id}}\",\r\n  \"card\": {\r\n    \"cvc\": 123,\r\n    \"cardHolder\": \"Jane Doe\",\r\n    \"expiration\": {\r\n      \"month\": 4,\r\n      \"year\": 2020\r\n    },\r\n    \"number\": \"4242424242424242\"\r\n  }\r\n}"},"url":"{{host}}/v1/payments/methods","description":"<p>Add/create payment methods. The payment method type of <code>card</code> is currently the only supported one.</p>\n<p>🛡 <strong>This request currently requires the API consumer to be PCI compliant, and is only supported with the client credentials flow for selected partners.</strong></p>\n<p>Scopes: <code>payments.methods.all</code> (optional) and/or <code>payments.methods.create</code>.</p>\n<p>Due to the complexity, a JSON payload <strong>must</strong> be sent in the body of the request. <code>teamId</code> is optional, and for all the fields for the <code>card</code> <em>object</em>, only <code>card.cvc</code> and <code>card.cardHolder</code> are optional.</p>\n<p>The endpoint will respond with <code>201 Created</code> on a successful request. The <code>Location</code> header contains the API location of the newly created entity (WIP).</p>\n","urlObject":{"path":["v1","payments","methods"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dd9190fe-67e6-427c-8cfe-0eb5990e6b08"},{"name":"Read (card)","id":"38a8c7d5-3678-4848-a050-bab777ef5ec9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/payments/methods/cards/{{card_id}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>View/read a card (payment method).</p>\n<p>Scopes: <code>payments.methods.all</code> (optional) and/or <code>payments.methods.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a full card (payment method) payload.</p>\n","urlObject":{"path":["v1","payments","methods","cards","{{card_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"6dc40b11-0e1f-40f9-aef7-dbb4afbb070c","name":"Read (card)","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/payments/methods/cards/{{card_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"card\": {\n      \"id\": \"{{card_id}}\",\n      \"created\": \"ISO Date\",\n      \"type\": \"VISA\",\n      \"friendlyName\": \"My favorite card\",\n      \"expireMonth\": 1,\n      \"expireYear\": 2020,\n      \"lastFour\": \"1234\",\n      \"isFailing\": false,\n      \"owner\": {\n        \"user\": {\n          \"id\": \"{{user_id}}\"\n        },\n        \"team\": {\n          \"id\": \"{{team_id}}\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"38a8c7d5-3678-4848-a050-bab777ef5ec9"},{"name":"Read (bank account)","id":"38dd3762-2a28-45d3-9865-250d27147861","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/payments/methods/bank/accounts/{{account_id}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>View/read a bank account info (payment method).</p>\n<p>Scopes: <code>payments.methods.all</code> (optional) and/or <code>payments.methods.read</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with bank account general info (payment method) payload.</p>\n","urlObject":{"path":["v1","payments","methods","bank","accounts","{{account_id}}"],"host":["{{host}}"],"query":[],"variable":[]}},"response":[{"id":"8778936a-1da0-44f2-985e-2c78df95d526","name":"Read (bank account)","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/payments/methods/bank/accounts/{{account_id}}"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\r\n    \"data\": {\r\n        \"bankAccount\": {\r\n            \"id\": \"wXLJnLWy\",\r\n            \"name\": \"Plaid Saving\",\r\n            \"currency\": \"\",\r\n            \"state\": 1,\r\n            \"owner\": {\r\n                \"user\": {\r\n                    \"id\": \"a1LepgbG\"\r\n                },\r\n                \"team\": {\r\n                    \"id\": \"5ELZjL4K\"\r\n                }\r\n            }\r\n        }\r\n    }\r\n}"}],"_postman_id":"38dd3762-2a28-45d3-9865-250d27147861"},{"name":"List","id":"20a06cfb-60c6-4731-94bc-b9ede993f6f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{external-api-token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"{{host}}/v1/payments/methods?teamId={{team_id}}","description":"<p>⚠️ <strong>PREVIEW</strong></p>\n<p>Get/list cards (payment methods).</p>\n<p>Scopes: <code>payments.methods.all</code> (optional) and/or <code>payments.methods.list</code>.</p>\n<p>On a successful request the endpoint will respond with <code>200 OK</code> with a shallow list of cards (payment methods).</p>\n","urlObject":{"path":["v1","payments","methods"],"host":["{{host}}"],"query":[{"description":{"content":"<p><em>Optional.</em></p>\n","type":"text/plain"},"key":"teamId","value":"{{team_id}}"}],"variable":[]}},"response":[{"id":"ac5ff6f8-a58e-4d5c-b259-a96bc7896af0","name":"List","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":{"raw":"{{host}}/v1/payments/methods?teamId={{team_id}}","host":["{{host}}"],"path":["v1","payments","methods"],"query":[{"key":"teamId","value":"{{team_id}}","description":"*Optional.*"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"cards\": [\n            {\n                \"id\": \"{{card_id}}\"\n            },\n            {\n                \"id\": \"{{card_id}}\"\n            }\n        ]\n    }\n}"}],"_postman_id":"20a06cfb-60c6-4731-94bc-b9ede993f6f4"}],"id":"9ca83441-5cc3-4bd3-b8a7-cca8a4e99bf7","description":"<p>Handle various payment methods.</p>\n<p>Available scopes: <code>payments.methods.all</code>, <code>payments.methods.create</code>, <code>payments.methods.read</code>, <code>payments.methods.update</code> and <code>payments.methods.delete</code>.</p>\n","event":[{"listen":"prerequest","script":{"id":"2043fe94-5fac-4699-8a00-f9c83df5a51d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"06743c2c-a755-41a6-ac93-e3550ddfca62","type":"text/javascript","exec":[""]}}],"_postman_id":"9ca83441-5cc3-4bd3-b8a7-cca8a4e99bf7","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Deposits","item":[],"id":"356a4476-b48f-4fca-93d8-78c6076a20c1","description":"<p>⚠️ <strong>UNDER DEVELOPMENT</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"14cc5d98-5672-47f7-9602-9bcdfebfd461","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"421ed8f8-da6c-4999-a485-d44e9571829c","type":"text/javascript","exec":[""]}}],"_postman_id":"356a4476-b48f-4fca-93d8-78c6076a20c1","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Withdrawals","item":[],"id":"6a6813c7-c9f7-4a07-8589-689c287e265f","description":"<p>⚠️ <strong>UNDER DEVELOPMENT</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"ab83372d-1059-46b5-b5cb-ad5900bc6ff4","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"834f56b5-2abd-445b-922c-618a6e15f8d0","type":"text/javascript","exec":[""]}}],"_postman_id":"6a6813c7-c9f7-4a07-8589-689c287e265f","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}},{"name":"Transfers","item":[],"id":"89391136-29e2-4871-b6d4-2a0f1b52fede","description":"<p>⚠️ <strong>UNDER DEVELOPMENT</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"b28bb7f0-a6a4-4087-9e46-c06ffe7b8c68","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ffb270ff-c0f6-49ce-abca-6c8bfa9fd42a","type":"text/javascript","exec":[""]}}],"_postman_id":"89391136-29e2-4871-b6d4-2a0f1b52fede","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}}],"id":"030fd1d5-b897-4d65-850b-ac81f4b8609f","description":"<p>Handling of payment methods, deposits, withdrawals and transfers.</p>\n","_postman_id":"030fd1d5-b897-4d65-850b-ac81f4b8609f","auth":{"type":"oauth2","oauth2":{"basicConfig":[]},"isInherited":true,"source":{"_postman_id":"d1926441-fcff-43b1-907a-1a240d7eefbc","id":"d1926441-fcff-43b1-907a-1a240d7eefbc","name":"Roger API (Roger.ai)","type":"collection"}}}],"auth":{"type":"oauth2","oauth2":{"basicConfig":[]}},"event":[{"listen":"prerequest","script":{"id":"1e3e969c-5190-426f-a686-a8b9d83bfcf6","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"bd38d004-2441-4b41-935f-4dd05c39f043","type":"text/javascript","exec":[""]}}]}