{"info":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","description":"<html><head></head><body><h1 id=\"superpos-as-service-integration\">SuperPOS as Service Integration</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>This API enables third-party systems to integrate with PVS SuperPOS devices, using them as payment channels for collection orders created by client systems.</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>All requests require JWT authentication via Keycloak. Include the token in the Authorization header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer {jwt_token}\n\n</code></pre><h2 id=\"payment-flow\">Payment Flow</h2>\n<ol>\n<li><p><strong>Authenticate</strong> - Obtain JWT token from Keycloak</p>\n</li>\n<li><p><strong>Create Payment Order</strong> - Submit order with device ID, amount, and payment channels</p>\n</li>\n<li><p><strong>Process Payment</strong> - Operator selects and processes order on SuperPOS device</p>\n</li>\n<li><p><strong>Receive Callback</strong> - System notifies via callback URL (retries at 30s, 3min, 5min)</p>\n</li>\n<li><p><strong>Query Status</strong> - Check transaction status via API</p>\n</li>\n<li><p><strong>Manage Orders</strong> - Cancel orders or request refunds as needed</p>\n</li>\n</ol>\n<h2 id=\"supported-payment-channels\">Supported Payment Channels</h2>\n<ul>\n<li><p><code>QR_ARG</code> - QR Code Argentina</p>\n</li>\n<li><p><code>TD</code> - Debit Card</p>\n</li>\n<li><p><code>TC</code> - Credit Card (supports installments)</p>\n</li>\n<li><p><code>QR_ALIPAY</code> - Alipay QR Code</p>\n</li>\n<li><p><code>QR_PER</code> - QR Code Peru</p>\n</li>\n<li><p><code>CASH</code> - Cash Payment</p>\n</li>\n<li><p><code>TRANSFER</code> - Bank Transfer</p>\n</li>\n<li><p><code>QR_PIX</code> - QR Pix</p>\n</li>\n</ul>\n<h2 id=\"base-url\">Base URL</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://api.superpos.pvs.com/v1\n\n</code></pre><h2 id=\"support\">Support</h2>\n<p>For technical support, contact: <a href=\"https://mailto:api-support@pvs.com\">api-support@pvs.com</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"SuperPOS as Service Integration","slug":"superpos-as-service-integration"}],"owner":"40824655","collectionId":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","publishedId":"2sBXVfkBjp","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-01-12T19:11:25.000Z"},"item":[{"name":"Authentication","item":[{"name":"Obtain JWT Token","event":[{"listen":"test","script":{"exec":["if (pm.response.code === 200) {","    var jsonData = pm.response.json();","    pm.collectionVariables.set('jwt_token', jsonData.access_token);","    console.log('JWT Token saved to collection variable');","}"],"type":"text/javascript","id":"fd2b2d1e-c23e-441a-925c-39970615f517"}}],"id":"d7e07d9a-900a-4fcf-99ed-ceb0bff242b6","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":"client_credentials","description":"<p>OAuth2 grant type</p>\n"},{"key":"client_id","value":"your_client_id","description":"<p>Your client ID provided by PVS</p>\n"},{"key":"client_secret","value":"your_client_secret","description":"<p>Your client secret provided by PVS</p>\n"}]},"url":"https://auth.superpos.pvs.com/realms/superpos/protocol/openid-connect/token","description":"<h2 id=\"authenticate-with-keycloak\">Authenticate with Keycloak</h2>\n<p>Obtains a JWT access token required for all subsequent API requests.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><code>grant_type</code>: Must be \"client_credentials\"</li>\n<li><code>client_id</code>: Your unique client identifier</li>\n<li><code>client_secret</code>: Your confidential client secret</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"expires_in\": 3600,\n  \"token_type\": \"Bearer\"\n}\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Token expires after 3600 seconds (1 hour)</li>\n<li>The test script automatically saves the token to collection variables</li>\n<li>All other endpoints require this token in the Authorization header</li>\n</ul>\n","urlObject":{"path":["realms","superpos","protocol","openid-connect","token"],"host":["https://auth.superpos.pvs.com"],"query":[],"variable":[]}},"response":[{"id":"9b9ca93d-99c5-488f-89f9-f16e9893359a","name":"Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","value":"client_credentials"},{"key":"client_id","value":"demo_client"},{"key":"client_secret","value":"demo_secret"}]},"url":"https://auth.superpos.pvs.com/realms/superpos/protocol/openid-connect/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJxNVNGY...\",\n  \"expires_in\": 3600,\n  \"refresh_expires_in\": 0,\n  \"token_type\": \"Bearer\",\n  \"not-before-policy\": 0,\n  \"scope\": \"profile email\"\n}"}],"_postman_id":"d7e07d9a-900a-4fcf-99ed-ceb0bff242b6"}],"id":"27bac853-a10f-4c88-98d0-9f31b91c1945","description":"<p>Authentication endpoints for obtaining JWT tokens from Keycloak.</p>\n","_postman_id":"27bac853-a10f-4c88-98d0-9f31b91c1945","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}}},{"name":"Payment Orders","item":[{"name":"Create Payment Order","id":"45b0cd0c-5cf9-4edd-a12a-0d9ea4b091ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"device_id\": \"SPOS-12345\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"currency\": \"ARS\",\n  \"amount\": 15000.50,\n  \"description\": \"Coffee shop order #1234\",\n  \"callback_url\": \"https://your-system.com/api/payment-callback\",\n  \"accepted_payment_channels\": [\n    \"QR_ARG\",\n    \"TD\",\n    \"TC\"\n  ],\n  \"max_installments\": 6,\n  \"metadata\": {\n    \"order_id\": \"ORD-2025-5678\",\n    \"customer_id\": \"CUST-9012\",\n    \"store_location\": \"Downtown Branch\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.superpos.pvs.com/v1/payment-orders","description":"<h2 id=\"create-payment-order\">Create Payment Order</h2>\n<p>Creates a new payment order that will be displayed on the specified SuperPOS device for processing.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<h4 id=\"required-fields\">Required Fields</h4>\n<ul>\n<li><p><code>device_id</code> (string): SuperPOS device identifier</p>\n</li>\n<li><p><code>transaction_id</code> (string): Unique transaction ID in your system</p>\n</li>\n<li><p><code>currency</code> (string): ISO 4217 currency code (e.g., ARS, USD, PEN)</p>\n</li>\n<li><p><code>amount</code> (number): Payment amount with up to 2 decimal places</p>\n</li>\n<li><p><code>description</code> (string): Payment description/concept (max 255 characters)</p>\n</li>\n<li><p><code>callback_url</code> (string): HTTPS URL for payment result notifications</p>\n</li>\n</ul>\n<h4 id=\"optional-fields\">Optional Fields</h4>\n<ul>\n<li><p><code>accepted_payment_channels</code> (array): List of allowed payment methods</p>\n<ul>\n<li><p>If omitted, all channels are accepted</p>\n</li>\n<li><p>Valid values: QR_ARG, CREDIT_CARD, DEBIT_CARD, QR_ALIPAY, QR_PER, CASH, TRANSFER, QR_PIX</p>\n</li>\n</ul>\n</li>\n<li><p><code>max_installments</code> (integer): Maximum number of installments for credit card payments</p>\n<ul>\n<li><p>Only applicable when CREDIT_CARD is in accepted channels</p>\n</li>\n<li><p>Valid range: 1-12</p>\n</li>\n</ul>\n</li>\n<li><p><code>metadata</code> (object): Additional custom data for your reference</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"status\": \"pending\",\n  \"created_at\": \"2025-01-12T10:30:00Z\",\n  \"expires_at\": \"2025-01-12T18:30:00Z\"\n}\n\n</code></pre>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><p><code>201</code>: Order created successfully</p>\n</li>\n<li><p><code>400</code>: Invalid request (missing required fields or invalid data)</p>\n</li>\n<li><p><code>401</code>: Unauthorized (invalid or expired JWT token)</p>\n</li>\n<li><p><code>404</code>: Device not found or not enabled</p>\n</li>\n<li><p><code>409</code>: Duplicate transaction_id</p>\n</li>\n</ul>\n<h3 id=\"callback-notifications\">Callback Notifications</h3>\n<p>The system will send POST requests to your callback_url with payment results:</p>\n<ul>\n<li><p>Immediate notification upon payment completion</p>\n</li>\n<li><p>Retry schedule on failure: 30 seconds, 3 minutes, 5 minutes</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["payment-orders"],"host":["https://api.superpos.pvs.com/v1"],"query":[],"variable":[]}},"response":[{"id":"f1eb4fa3-bafd-46cf-8cbd-36538d495faf","name":"Success - Order Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"device_id\": \"SPOS-12345\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"currency\": \"ARS\",\n  \"amount\": 15000.50,\n  \"description\": \"Coffee shop order #1234\",\n  \"callback_url\": \"https://your-system.com/api/payment-callback\",\n  \"accepted_payment_channels\": [\"QR_ARG\", \"TD\", \"TC\"],\n  \"max_installments\": 6\n}","options":{"raw":{"language":"json"}}},"url":"https://api.superpos.pvs.com/v1/payment-orders"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"device_id\": \"SPOS-12345\",\n  \"status\": \"pending\",\n  \"currency\": \"ARS\",\n  \"amount\": 15000.50,\n  \"description\": \"Coffee shop order #1234\",\n  \"created_at\": \"2025-01-12T10:30:00Z\",\n  \"expires_at\": \"2025-01-12T18:30:00Z\"\n}"}],"_postman_id":"45b0cd0c-5cf9-4edd-a12a-0d9ea4b091ef"},{"name":"Get Payment Order Status","id":"5607ef8e-9655-4390-919b-012a704132fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/payment-orders/:transaction_id","description":"<h2 id=\"query-payment-order-status\">Query Payment Order Status</h2>\n<p>Retrieves the current status and details of a payment order using your transaction ID.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>transaction_id</code> (string): Your unique transaction identifier</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"device_id\": \"SPOS-12345\",\n  \"status\": \"completed\",\n  \"currency\": \"ARS\",\n  \"amount\": 15000.50,\n  \"description\": \"Coffee shop order #1234\",\n  \"payment_method\": \"TC\",\n  \"installments\": 3,\n  \"created_at\": \"2025-01-12T10:30:00Z\",\n  \"processed_at\": \"2025-01-12T10:35:22Z\",\n  \"payment_details\": {\n    \"card_brand\": \"VISA\",\n    \"last_four_digits\": \"4532\",\n    \"authorization_code\": \"AUTH123456\",\n    \"receipt_number\": \"REC-789012\"\n  }\n}\n</code></pre>\n<h3 id=\"status-values\">Status Values</h3>\n<ul>\n<li><code>pending</code>: Order created, awaiting payment</li>\n<li><code>processing</code>: Payment in progress</li>\n<li><code>completed</code>: Payment successful</li>\n<li><code>failed</code>: Payment failed</li>\n<li><code>cancelled</code>: Order cancelled</li>\n<li><code>refunded</code>: Payment refunded</li>\n<li><code>partial_refund</code>: Partial refund applied</li>\n</ul>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>200</code>: Request successful</li>\n<li><code>401</code>: Unauthorized</li>\n<li><code>404</code>: Transaction not found</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["payment-orders",":transaction_id"],"host":["https://api.superpos.pvs.com/v1"],"query":[],"variable":[{"id":"1bcbb99d-a075-435f-a88c-dbe9c77aa186","description":{"content":"<p>Your system's transaction ID</p>\n","type":"text/plain"},"type":"any","value":"TXN-2025-001234","key":"transaction_id"}]}},"response":[{"id":"c9ef005f-bacc-40b7-88a2-7f8dc31e4d30","name":"Completed Payment","originalRequest":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/payment-orders/TXN-2025-001234"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"device_id\": \"SPOS-12345\",\n  \"status\": \"completed\",\n  \"currency\": \"ARS\",\n  \"amount\": 15000.50,\n  \"description\": \"Coffee shop order #1234\",\n  \"payment_method\": \"TC\",\n  \"installments\": 3,\n  \"created_at\": \"2025-01-12T10:30:00Z\",\n  \"processed_at\": \"2025-01-12T10:35:22Z\",\n  \"payment_details\": {\n    \"card_brand\": \"VISA\",\n    \"last_four_digits\": \"4532\",\n    \"authorization_code\": \"AUTH123456\",\n    \"receipt_number\": \"REC-789012\"\n  },\n  \"metadata\": {\n    \"order_id\": \"ORD-2025-5678\",\n    \"customer_id\": \"CUST-9012\"\n  }\n}"}],"_postman_id":"5607ef8e-9655-4390-919b-012a704132fd"},{"name":"Cancel Payment Order","id":"7112f5cd-f4c7-4f88-b587-e826f5733705","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"reason\": \"Customer requested cancellation\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.superpos.pvs.com/v1/payment-orders/:transaction_id/cancel","description":"<h2 id=\"cancel-payment-order\">Cancel Payment Order</h2>\n<p>Cancels a pending payment order. Only orders with status \"pending\" can be cancelled.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>transaction_id</code> (string): Your unique transaction identifier</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>reason</code> (string, optional): Cancellation reason for audit purposes</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"status\": \"cancelled\",\n  \"cancelled_at\": \"2025-01-12T11:00:00Z\",\n  \"reason\": \"Customer requested cancellation\"\n}\n</code></pre>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>200</code>: Order cancelled successfully</li>\n<li><code>400</code>: Order cannot be cancelled (already processed/completed)</li>\n<li><code>401</code>: Unauthorized</li>\n<li><code>404</code>: Transaction not found</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Completed or processing orders cannot be cancelled</li>\n<li>Use the refund endpoint for completed payments</li>\n<li>The order will be immediately removed from the device's pending orders list</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["payment-orders",":transaction_id","cancel"],"host":["https://api.superpos.pvs.com/v1"],"query":[],"variable":[{"id":"a9cf76d9-dc78-4f14-a8f9-b5fcff582da5","description":{"content":"<p>Your system's transaction ID</p>\n","type":"text/plain"},"type":"any","value":"TXN-2025-001234","key":"transaction_id"}]}},"response":[{"id":"51d4f6d0-a34a-410f-a77d-3c2bd28d4415","name":"Success - Order Cancelled","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"reason\": \"Customer requested cancellation\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.superpos.pvs.com/v1/payment-orders/TXN-2025-001234/cancel"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"status\": \"cancelled\",\n  \"cancelled_at\": \"2025-01-12T11:00:00Z\",\n  \"reason\": \"Customer requested cancellation\"\n}"}],"_postman_id":"7112f5cd-f4c7-4f88-b587-e826f5733705"},{"name":"Request Refund","id":"d38b1acd-ce63-42fa-948b-9dd820bedb1f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"amount\": 15000.50,\n  \"reason\": \"Product defect - full refund\",\n  \"metadata\": {\n    \"support_ticket\": \"TICKET-12345\",\n    \"approved_by\": \"manager@company.com\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.superpos.pvs.com/v1/payment-orders/:transaction_id/refund","description":"<h2 id=\"request-payment-refund\">Request Payment Refund</h2>\n<p>Initiates a refund for a completed payment. Supports both full and partial refunds.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>transaction_id</code> (string): Your unique transaction identifier</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>amount</code> (number): Refund amount (must not exceed original payment amount)</li>\n<li><code>reason</code> (string): Refund reason for audit purposes</li>\n<li><code>metadata</code> (object, optional): Additional refund information</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"refund_id\": \"REF-SPOS-456789\",\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"status\": \"pending_card\",\n  \"amount\": 15000.50,\n  \"reason\": \"Product defect - full refund\",\n  \"created_at\": \"2025-01-12T14:20:00Z\"\n}\n</code></pre>\n<h3 id=\"refund-status-values\">Refund Status Values</h3>\n<ul>\n<li><code>pending_card</code>: Refund requires customer card presentation at device</li>\n<li><code>processing</code>: Refund in progress</li>\n<li><code>completed</code>: Refund successful</li>\n<li><code>failed</code>: Refund failed</li>\n</ul>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>201</code>: Refund request created successfully</li>\n<li><code>400</code>: Invalid amount or order not refundable</li>\n<li><code>401</code>: Unauthorized</li>\n<li><code>404</code>: Transaction not found</li>\n</ul>\n<h3 id=\"card-present-refunds\">Card-Present Refunds</h3>\n<p>If the refund requires the customer's card:</p>\n<ul>\n<li>The refund order will appear in the device's \"Collection Orders\" section</li>\n<li>Status will be <code>pending_card</code></li>\n<li>Operator must process the refund when customer presents their card</li>\n<li>System will notify via callback upon completion</li>\n</ul>\n<h3 id=\"partial-refunds\">Partial Refunds</h3>\n<ul>\n<li>Multiple partial refunds can be processed</li>\n<li>Total refunds cannot exceed the original payment amount</li>\n<li>Each partial refund generates a unique <code>refund_id</code></li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["payment-orders",":transaction_id","refund"],"host":["https://api.superpos.pvs.com/v1"],"query":[],"variable":[{"id":"90d5ea7c-777f-47b2-93a0-ac702c974e84","description":{"content":"<p>Your system's transaction ID</p>\n","type":"text/plain"},"type":"any","value":"TXN-2025-001234","key":"transaction_id"}]}},"response":[{"id":"884cbb88-8846-4265-8ddf-8bd4545cf9ba","name":"Refund Request Created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"amount\": 15000.50,\n  \"reason\": \"Product defect - full refund\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.superpos.pvs.com/v1/payment-orders/TXN-2025-001234/refund"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"refund_id\": \"REF-SPOS-456789\",\n  \"order_id\": \"ORD-SPOS-789456\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"status\": \"pending_card\",\n  \"original_amount\": 15000.50,\n  \"refund_amount\": 15000.50,\n  \"reason\": \"Product defect - full refund\",\n  \"created_at\": \"2025-01-12T14:20:00Z\",\n  \"message\": \"Refund requires customer card. Order sent to device SPOS-12345.\"\n}"}],"_postman_id":"d38b1acd-ce63-42fa-948b-9dd820bedb1f"},{"name":"List Transactions","id":"3b97b00c-ccfc-4704-a285-96f4f825b702","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/payment-orders?start_date=2025-01-12T00:00:00Z&end_date=2025-01-12T23:59:59Z&page=1&page_size=50","description":"<h2 id=\"list-payment-transactions\">List Payment Transactions</h2>\n<p>Retrieves a paginated list of payment orders within a specified date-time range.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<h4 id=\"required\">Required</h4>\n<ul>\n<li><code>start_date</code> (string): Start of date-time range (ISO 8601 format)</li>\n<li><code>end_date</code> (string): End of date-time range (ISO 8601 format)</li>\n</ul>\n<h4 id=\"optional\">Optional</h4>\n<ul>\n<li><code>status</code> (string): Filter by order status<ul>\n<li>Values: pending, processing, completed, failed, cancelled, refunded</li>\n</ul>\n</li>\n<li><code>device_id</code> (string): Filter by specific device</li>\n<li><code>payment_method</code> (string): Filter by payment channel<ul>\n<li>Values: QR_ARG, TD, TC, QR_ALIPAY, QR_PER, CASH, TRANSFER</li>\n</ul>\n</li>\n<li><code>page</code> (integer): Page number (default: 1)</li>\n<li><code>page_size</code> (integer): Results per page (default: 50, max: 100)</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"order_id\": \"ORD-SPOS-789456\",\n      \"transaction_id\": \"TXN-2025-001234\",\n      \"device_id\": \"SPOS-12345\",\n      \"status\": \"completed\",\n      \"currency\": \"ARS\",\n      \"amount\": 15000.50,\n      \"payment_method\": \"TC\",\n      \"created_at\": \"2025-01-12T10:30:00Z\",\n      \"processed_at\": \"2025-01-12T10:35:22Z\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"page_size\": 50,\n    \"total_records\": 245,\n    \"total_pages\": 5\n  },\n  \"summary\": {\n    \"total_amount\": 1250000.00,\n    \"count_by_status\": {\n      \"completed\": 200,\n      \"pending\": 30,\n      \"failed\": 15\n    }\n  }\n}\n</code></pre>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>200</code>: Request successful</li>\n<li><code>400</code>: Invalid date range or parameters</li>\n<li><code>401</code>: Unauthorized</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Maximum date range: 31 days</li>\n<li>Results are ordered by creation date (newest first)</li>\n<li>Large exports should use multiple paginated requests</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["payment-orders"],"host":["https://api.superpos.pvs.com/v1"],"query":[{"description":{"content":"<p>Start of date-time range (ISO 8601 format)</p>\n","type":"text/plain"},"key":"start_date","value":"2025-01-12T00:00:00Z"},{"description":{"content":"<p>End of date-time range (ISO 8601 format)</p>\n","type":"text/plain"},"key":"end_date","value":"2025-01-12T23:59:59Z"},{"disabled":true,"description":{"content":"<p>Filter by status (optional)</p>\n","type":"text/plain"},"key":"status","value":"completed"},{"disabled":true,"description":{"content":"<p>Filter by device (optional)</p>\n","type":"text/plain"},"key":"device_id","value":"SPOS-12345"},{"description":{"content":"<p>Page number (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Results per page (default: 50, max: 100)</p>\n","type":"text/plain"},"key":"page_size","value":"50"}],"variable":[]}},"response":[{"id":"23a67817-6d2c-480f-ab72-0fb5744e7ddf","name":"Success - Transaction List","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.superpos.pvs.com/v1/payment-orders?start_date=2025-01-12T00:00:00Z&end_date=2025-01-12T23:59:59Z&page=1&page_size=50","host":["https://api.superpos.pvs.com/v1"],"path":["payment-orders"],"query":[{"key":"start_date","value":"2025-01-12T00:00:00Z"},{"key":"end_date","value":"2025-01-12T23:59:59Z"},{"key":"page","value":"1"},{"key":"page_size","value":"50"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"order_id\": \"ORD-SPOS-789456\",\n      \"transaction_id\": \"TXN-2025-001234\",\n      \"device_id\": \"SPOS-12345\",\n      \"status\": \"completed\",\n      \"currency\": \"ARS\",\n      \"amount\": 15000.50,\n      \"description\": \"Coffee shop order #1234\",\n      \"payment_method\": \"TC\",\n      \"installments\": 3,\n      \"created_at\": \"2025-01-12T10:30:00Z\",\n      \"processed_at\": \"2025-01-12T10:35:22Z\"\n    },\n    {\n      \"order_id\": \"ORD-SPOS-789457\",\n      \"transaction_id\": \"TXN-2025-001235\",\n      \"device_id\": \"SPOS-12345\",\n      \"status\": \"completed\",\n      \"currency\": \"ARS\",\n      \"amount\": 8500.00,\n      \"description\": \"Retail purchase\",\n      \"payment_method\": \"QR_ARG\",\n      \"created_at\": \"2025-01-12T11:15:00Z\",\n      \"processed_at\": \"2025-01-12T11:16:05Z\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"page_size\": 50,\n    \"total_records\": 2,\n    \"total_pages\": 1\n  },\n  \"summary\": {\n    \"total_amount\": 23500.50,\n    \"count_by_status\": {\n      \"completed\": 2\n    },\n    \"count_by_method\": {\n      \"TC\": 1,\n      \"QR_ARG\": 1\n    }\n  }\n}"}],"_postman_id":"3b97b00c-ccfc-4704-a285-96f4f825b702"}],"id":"0adf07f4-d515-470d-980f-5ccbc88587a9","description":"<p>Endpoints for creating, querying, and managing payment orders.</p>\n","_postman_id":"0adf07f4-d515-470d-980f-5ccbc88587a9","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}}},{"name":"Device Management","item":[{"name":"List Available Devices","id":"8d96a220-1547-42f1-a597-41c3df7f2d67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/devices?status=enabled&page=1&page_size=50","description":"<h2 id=\"list-superpos-devices\">List SuperPOS Devices</h2>\n<p>Retrieves a list of SuperPOS devices available for sending payment orders.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<ul>\n<li><code>status</code> (string, optional): Filter devices by status<ul>\n<li><code>enabled</code>: Only active devices (default)</li>\n<li><code>disabled</code>: Only inactive devices</li>\n<li><code>all</code>: All devices regardless of status</li>\n</ul>\n</li>\n<li><code>page</code> (integer): Page number (default: 1)</li>\n<li><code>page_size</code> (integer): Results per page (default: 50, max: 100)</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"device_id\": \"SPOS-12345\",\n      \"device_name\": \"Downtown Store - POS 1\",\n      \"status\": \"enabled\",\n      \"location\": \"Downtown Branch\",\n      \"supported_channels\": [\n        \"QR_ARG\",\n        \"TD\",\n        \"TC\",\n        \"CASH\"\n      ],\n      \"last_online\": \"2025-01-12T14:30:00Z\",\n      \"firmware_version\": \"2.5.1\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"page_size\": 50,\n    \"total_records\": 15,\n    \"total_pages\": 1\n  }\n}\n</code></pre>\n<h3 id=\"device-status\">Device Status</h3>\n<ul>\n<li><code>enabled</code>: Device is active and can receive payment orders</li>\n<li><code>disabled</code>: Device is inactive and cannot receive orders</li>\n<li><code>online</code>: Device is currently connected</li>\n<li><code>offline</code>: Device is not connected (orders will queue)</li>\n</ul>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>200</code>: Request successful</li>\n<li><code>401</code>: Unauthorized</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["devices"],"host":["https://api.superpos.pvs.com/v1"],"query":[{"description":{"content":"<p>Filter by device status (enabled/disabled/all)</p>\n","type":"text/plain"},"key":"status","value":"enabled"},{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Results per page (max: 100)</p>\n","type":"text/plain"},"key":"page_size","value":"50"}],"variable":[]}},"response":[{"id":"662a2595-bb16-42b2-a801-08ebc6fabf64","name":"Success - Device List","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.superpos.pvs.com/v1/devices?status=enabled","host":["https://api.superpos.pvs.com/v1"],"path":["devices"],"query":[{"key":"status","value":"enabled"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"device_id\": \"SPOS-12345\",\n      \"device_name\": \"Downtown Store - POS 1\",\n      \"status\": \"enabled\",\n      \"location\": \"Downtown Branch\",\n      \"supported_channels\": [\"QR_ARG\", \"TD\", \"TC\", \"QR_ALIPAY\", \"CASH\"],\n      \"last_online\": \"2025-01-12T14:30:00Z\",\n      \"firmware_version\": \"2.5.1\",\n      \"timezone\": \"America/Argentina/Buenos_Aires\"\n    },\n    {\n      \"device_id\": \"SPOS-12346\",\n      \"device_name\": \"Airport Branch - POS 2\",\n      \"status\": \"enabled\",\n      \"location\": \"International Airport\",\n      \"supported_channels\": [\"TD\", \"TC\", \"QR_ALIPAY\", \"QR_PER\"],\n      \"last_online\": \"2025-01-12T14:28:15Z\",\n      \"firmware_version\": \"2.5.1\",\n      \"timezone\": \"America/Argentina/Buenos_Aires\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"page_size\": 50,\n    \"total_records\": 2,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"8d96a220-1547-42f1-a597-41c3df7f2d67"},{"name":"Get Device Details","id":"5ebe7910-3d0c-43a4-8463-cafc6621b76d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/devices/:device_id","description":"<h2 id=\"get-device-details\">Get Device Details</h2>\n<p>Retrieves detailed information about a specific SuperPOS device.</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>device_id</code> (string): SuperPOS device identifier</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"device_id\": \"SPOS-12345\",\n  \"device_name\": \"Downtown Store - POS 1\",\n  \"status\": \"enabled\",\n  \"connection_status\": \"online\",\n  \"location\": \"Downtown Branch\",\n  \"address\": \"123 Main St, Buenos Aires\",\n  \"supported_channels\": [\n    \"QR_ARG\",\n    \"TD\",\n    \"TC\",\n    \"CASH\"\n  ],\n  \"max_installments\": 12,\n  \"last_online\": \"2025-01-12T14:30:00Z\",\n  \"firmware_version\": \"2.5.1\",\n  \"timezone\": \"America/Argentina/Buenos_Aires\",\n  \"pending_orders_count\": 3,\n  \"daily_transactions\": {\n    \"count\": 45,\n    \"total_amount\": 675000.50\n  }\n}\n</code></pre>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>200</code>: Request successful</li>\n<li><code>401</code>: Unauthorized</li>\n<li><code>404</code>: Device not found</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["devices",":device_id"],"host":["https://api.superpos.pvs.com/v1"],"query":[],"variable":[{"id":"1271087f-96e6-497a-8570-94d3be45cd7b","description":{"content":"<p>SuperPOS device identifier</p>\n","type":"text/plain"},"type":"any","value":"SPOS-12345","key":"device_id"}]}},"response":[{"id":"49eda69b-91ca-4c47-802c-e395315abb2c","name":"Success - Device Details","originalRequest":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/devices/SPOS-12345"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"device_id\": \"SPOS-12345\",\n  \"device_name\": \"Downtown Store - POS 1\",\n  \"status\": \"enabled\",\n  \"connection_status\": \"online\",\n  \"location\": \"Downtown Branch\",\n  \"address\": \"123 Main St, Buenos Aires, Argentina\",\n  \"supported_channels\": [\"QR_ARG\", \"TD\", \"TC\", \"QR_ALIPAY\", \"CASH\"],\n  \"max_installments\": 12,\n  \"last_online\": \"2025-01-12T14:30:00Z\",\n  \"firmware_version\": \"2.5.1\",\n  \"hardware_model\": \"SuperPOS Pro X1\",\n  \"serial_number\": \"SN-2024-12345\",\n  \"timezone\": \"America/Argentina/Buenos_Aires\",\n  \"pending_orders_count\": 3,\n  \"daily_transactions\": {\n    \"date\": \"2025-01-12\",\n    \"count\": 45,\n    \"total_amount\": 675000.50,\n    \"currency\": \"ARS\"\n  }\n}"}],"_postman_id":"5ebe7910-3d0c-43a4-8463-cafc6621b76d"}],"id":"29452baa-a13d-4aad-b32b-521f69cabb99","description":"<p>Endpoints for managing and querying SuperPOS devices.</p>\n","_postman_id":"29452baa-a13d-4aad-b32b-521f69cabb99","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}}},{"name":"Configuration","item":[{"name":"List Payment Channels","id":"e4b303c3-71b8-40b6-9ea6-43b1c193d6a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/payment-channels","description":"<h2 id=\"list-payment-channels\">List Payment Channels</h2>\n<p>Retrieves all available payment channels/methods supported by the SuperPOS system.</p>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"code\": \"QR_ARG\",\n      \"name\": \"QR Code Argentina\",\n      \"description\": \"Argentine QR code payments (Modo, Mercado Pago)\",\n      \"supports_installments\": false,\n      \"currencies\": [\"ARS\"],\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/qr_arg.png\"\n    },\n    {\n      \"code\": \"TC\",\n      \"name\": \"Credit Card\",\n      \"description\": \"Credit card payments with installment options\",\n      \"supports_installments\": true,\n      \"max_installments\": 12,\n      \"currencies\": [\"ARS\", \"USD\"],\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/credit_card.png\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"payment-channel-codes\">Payment Channel Codes</h3>\n<ul>\n<li><p><code>QR_ARG</code>: QR Code Argentina (Modo, Mercado Pago, etc.)</p>\n</li>\n<li><p>DEBIT_CARD: Debit Card</p>\n</li>\n<li><p>CREDIT_CARD: Credit Card (supports installments)</p>\n</li>\n<li><p><code>QR_ALIPAY</code>: Alipay QR Code</p>\n</li>\n<li><p><code>QR_PER</code>: QR Code Peru (Yape)</p>\n</li>\n<li><p><code>CASH</code>: Cash Payment</p>\n</li>\n<li><p><code>TRANSFER</code>: Bank Transfer</p>\n</li>\n</ul>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><p><code>200</code>: Request successful</p>\n</li>\n<li><p><code>401</code>: Unauthorized</p>\n</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Available channels may vary by device</p>\n</li>\n<li><p>Check device details for specific channel support</p>\n</li>\n<li><p>Some channels may have country or currency restrictions</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["payment-channels"],"host":["https://api.superpos.pvs.com/v1"],"query":[],"variable":[]}},"response":[{"id":"feb8abfd-c331-432e-bb0c-dd1b12e81fcc","name":"Success - Payment Channels","originalRequest":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/payment-channels"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"code\": \"QR_ARG\",\n      \"name\": \"QR Code Argentina\",\n      \"description\": \"Argentine QR code payments (Modo, Mercado Pago, BNA+)\",\n      \"supports_installments\": false,\n      \"currencies\": [\"ARS\"],\n      \"processing_time\": \"instant\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/qr_arg.png\"\n    },\n    {\n      \"code\": \"TD\",\n      \"name\": \"Debit Card\",\n      \"description\": \"Debit card payments (Visa Debit, Mastercard Debit)\",\n      \"supports_installments\": false,\n      \"currencies\": [\"ARS\", \"USD\"],\n      \"processing_time\": \"instant\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/debit_card.png\"\n    },\n    {\n      \"code\": \"TC\",\n      \"name\": \"Credit Card\",\n      \"description\": \"Credit card payments with installment options\",\n      \"supports_installments\": true,\n      \"max_installments\": 12,\n      \"currencies\": [\"ARS\", \"USD\"],\n      \"processing_time\": \"instant\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/credit_card.png\"\n    },\n    {\n      \"code\": \"QR_ALIPAY\",\n      \"name\": \"Alipay\",\n      \"description\": \"Alipay QR code payments\",\n      \"supports_installments\": false,\n      \"currencies\": [\"CNY\", \"USD\", \"ARS\"],\n      \"processing_time\": \"instant\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/alipay.png\"\n    },\n    {\n      \"code\": \"QR_PER\",\n      \"name\": \"QR Code Peru\",\n      \"description\": \"Peruvian QR code payments (Yape, Plin)\",\n      \"supports_installments\": false,\n      \"currencies\": [\"PEN\"],\n      \"processing_time\": \"instant\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/qr_per.png\"\n    },\n    {\n      \"code\": \"CASH\",\n      \"name\": \"Cash\",\n      \"description\": \"Cash payment\",\n      \"supports_installments\": false,\n      \"currencies\": [\"ARS\", \"USD\", \"PEN\"],\n      \"processing_time\": \"instant\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/cash.png\"\n    },\n    {\n      \"code\": \"TRANSFER\",\n      \"name\": \"Bank Transfer\",\n      \"description\": \"Direct bank transfer\",\n      \"supports_installments\": false,\n      \"currencies\": [\"ARS\", \"USD\"],\n      \"processing_time\": \"24-48 hours\",\n      \"icon_url\": \"https://cdn.superpos.pvs.com/icons/transfer.png\"\n    }\n  ]\n}"}],"_postman_id":"e4b303c3-71b8-40b6-9ea6-43b1c193d6a4"},{"name":"List Available Installments","id":"7eaffc9a-d703-433a-a568-879b31eb2a7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.superpos.pvs.com/v1/installments?currency=ARS","description":"<h2 id=\"list-available-installments\">List Available Installments</h2>\n<p>Retrieves available installment options for credit card payments.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<ul>\n<li><code>currency</code> (string, optional): Filter by currency code (e.g., ARS, USD)</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"installments\": 1,\n      \"description\": \"Single payment\",\n      \"interest_rate\": 0,\n      \"currencies\": [\"ARS\", \"USD\"]\n    },\n    {\n      \"installments\": 3,\n      \"description\": \"3 monthly installments\",\n      \"interest_rate\": 0,\n      \"currencies\": [\"ARS\"]\n    },\n    {\n      \"installments\": 6,\n      \"description\": \"6 monthly installments\",\n      \"interest_rate\": 15.5,\n      \"currencies\": [\"ARS\"]\n    },\n    {\n      \"installments\": 12,\n      \"description\": \"12 monthly installments\",\n      \"interest_rate\": 28.0,\n      \"currencies\": [\"ARS\"]\n    }\n  ]\n}\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<ul>\n<li><code>installments</code>: Number of installment payments</li>\n<li><code>description</code>: Human-readable description</li>\n<li><code>interest_rate</code>: Annual interest rate percentage (0 for interest-free)</li>\n<li><code>currencies</code>: Supported currencies for this installment option</li>\n</ul>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><code>200</code>: Request successful</li>\n<li><code>401</code>: Unauthorized</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li>Installment availability may vary by card issuer and bank</li>\n<li>Interest rates are subject to change</li>\n<li>Some promotions may offer interest-free installments</li>\n<li>Maximum installments can be restricted per transaction using <code>max_installments</code> parameter when creating an order</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"path":["installments"],"host":["https://api.superpos.pvs.com/v1"],"query":[{"description":{"content":"<p>Currency code (optional)</p>\n","type":"text/plain"},"key":"currency","value":"ARS"}],"variable":[]}},"response":[{"id":"d2606b85-99bb-4ebd-abac-cd3bb81f355b","name":"Success - Installments List","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.superpos.pvs.com/v1/installments?currency=ARS","host":["https://api.superpos.pvs.com/v1"],"path":["installments"],"query":[{"key":"currency","value":"ARS"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"installments\": 1,\n      \"description\": \"Single payment\",\n      \"interest_rate\": 0,\n      \"total_rate\": 1.0,\n      \"currencies\": [\"ARS\", \"USD\"],\n      \"card_brands\": [\"VISA\", \"MASTERCARD\", \"AMEX\", \"CABAL\"]\n    },\n    {\n      \"installments\": 3,\n      \"description\": \"3 monthly installments\",\n      \"interest_rate\": 0,\n      \"total_rate\": 1.0,\n      \"currencies\": [\"ARS\"],\n      \"card_brands\": [\"VISA\", \"MASTERCARD\", \"CABAL\"],\n      \"promotion\": \"Interest-free promotion\"\n    },\n    {\n      \"installments\": 6,\n      \"description\": \"6 monthly installments\",\n      \"interest_rate\": 15.5,\n      \"total_rate\": 1.155,\n      \"currencies\": [\"ARS\"],\n      \"card_brands\": [\"VISA\", \"MASTERCARD\", \"AMEX\", \"CABAL\"]\n    },\n    {\n      \"installments\": 9,\n      \"description\": \"9 monthly installments\",\n      \"interest_rate\": 22.0,\n      \"total_rate\": 1.22,\n      \"currencies\": [\"ARS\"],\n      \"card_brands\": [\"VISA\", \"MASTERCARD\", \"CABAL\"]\n    },\n    {\n      \"installments\": 12,\n      \"description\": \"12 monthly installments\",\n      \"interest_rate\": 28.0,\n      \"total_rate\": 1.28,\n      \"currencies\": [\"ARS\"],\n      \"card_brands\": [\"VISA\", \"MASTERCARD\", \"AMEX\", \"CABAL\"]\n    }\n  ],\n  \"last_updated\": \"2025-01-12T00:00:00Z\",\n  \"notes\": \"Interest rates may vary by card issuer. Some banks offer additional promotions.\"\n}"}],"_postman_id":"7eaffc9a-d703-433a-a568-879b31eb2a7d"}],"id":"5ccbbec8-8970-4649-beb4-b7339bcd86d4","description":"<p>Configuration and reference data endpoints.</p>\n","_postman_id":"5ccbbec8-8970-4649-beb4-b7339bcd86d4","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}}},{"name":"Webhooks","item":[{"name":"Payment Callback (Example)","id":"5b4432b6-1505-4691-8a44-7203afba212f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-SuperPOS-Signature","value":"sha256=abc123...","description":"<p>HMAC signature for webhook verification</p>\n"}],"body":{"mode":"raw","raw":"{\n  \"event_type\": \"payment.completed\",\n  \"event_id\": \"EVT-2025-123456\",\n  \"timestamp\": \"2025-01-12T10:35:22Z\",\n  \"data\": {\n    \"order_id\": \"ORD-SPOS-789456\",\n    \"transaction_id\": \"TXN-2025-001234\",\n    \"device_id\": \"SPOS-12345\",\n    \"status\": \"completed\",\n    \"currency\": \"ARS\",\n    \"amount\": 15000.50,\n    \"payment_method\": \"TC\",\n    \"installments\": 3,\n    \"processed_at\": \"2025-01-12T10:35:22Z\",\n    \"payment_details\": {\n      \"card_brand\": \"VISA\",\n      \"last_four_digits\": \"4532\",\n      \"authorization_code\": \"AUTH123456\",\n      \"receipt_number\": \"REC-789012\",\n      \"merchant_id\": \"MERCH-456\"\n    },\n    \"metadata\": {\n      \"order_id\": \"ORD-2025-5678\",\n      \"customer_id\": \"CUST-9012\"\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-system.com/api/payment-callback","description":"<h2 id=\"payment-callback-webhook\">Payment Callback Webhook</h2>\n<p>This is an EXAMPLE of the callback request that SuperPOS will send to your system when a payment is processed.</p>\n<p><strong>IMPORTANT</strong>: You must implement this endpoint in YOUR system to receive payment notifications.</p>\n<h3 id=\"request-headers\">Request Headers</h3>\n<ul>\n<li><p><code>Content-Type</code>: application/json</p>\n</li>\n<li><p><code>X-SuperPOS-Signature</code>: HMAC-SHA256 signature for verification</p>\n</li>\n</ul>\n<h3 id=\"event-types\">Event Types</h3>\n<ul>\n<li><p><code>payment.completed</code>: Payment successfully processed</p>\n</li>\n<li><p><code>payment.failed</code>: Payment processing failed</p>\n</li>\n<li><p><code>payment.cancelled</code>: Payment was cancelled</p>\n</li>\n<li><p><code>refund.completed</code>: Refund successfully processed</p>\n</li>\n<li><p><code>refund.failed</code>: Refund processing failed</p>\n</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event_type\": \"payment.completed\",\n  \"event_id\": \"EVT-2025-123456\",\n  \"timestamp\": \"2025-01-12T10:35:22Z\",\n  \"data\": {\n    \"order_id\": \"ORD-SPOS-789456\",\n    \"transaction_id\": \"TXN-2025-001234\",\n    \"status\": \"completed\",\n    \"payment_details\": {...}\n  }\n}\n\n</code></pre>\n<h3 id=\"your-implementation-requirements\">Your Implementation Requirements</h3>\n<ol>\n<li><p><strong>Endpoint Security</strong></p>\n<ul>\n<li><p>Must use HTTPS</p>\n</li>\n<li><p>Verify the <code>X-SuperPOS-Signature</code> header</p>\n</li>\n<li><p>Use the webhook secret provided during onboarding</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Response Requirements</strong></p>\n<ul>\n<li><p>Return HTTP 200 for successful receipt</p>\n</li>\n<li><p>Respond within 5 seconds</p>\n</li>\n<li><p>Non-200 responses trigger retry logic</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Idempotency</strong></p>\n<ul>\n<li><p>Use <code>event_id</code> to prevent duplicate processing</p>\n</li>\n<li><p>Store processed event IDs</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Retry Schedule</strong></p>\n<ul>\n<li><p>First retry: 30 seconds after failure</p>\n</li>\n<li><p>Second retry: 3 minutes after failure</p>\n</li>\n<li><p>Third retry: 5 minutes after failure</p>\n</li>\n<li><p>After 3 failures, manual intervention required</p>\n</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"signature-verification-python-example\">Signature Verification (Python Example)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\">import hmac\nimport hashlib\ndef verify_webhook(payload, signature, secret):\n    computed = hmac.new(\n        secret.encode(),\n        payload.encode(),\n        hashlib.sha256\n    ).hexdigest()\n    expected = f\"sha256={computed}\"\n    return hmac.compare_digest(expected, signature)\n\n</code></pre>\n<h3 id=\"example-implementation\">Example Implementation</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\">@app.route('/api/payment-callback', methods=['POST'])\ndef payment_callback():\n    signature = request.headers.get('X-SuperPOS-Signature')\n    payload = request.get_data(as_text=True)\n    if not verify_webhook(payload, signature, WEBHOOK_SECRET):\n        return jsonify({'error': 'Invalid signature'}), 401\n    data = request.json\n    event_id = data['event_id']\n    # Check for duplicate\n    if is_processed(event_id):\n        return jsonify({'status': 'already_processed'}), 200\n    # Process the payment\n    process_payment(data)\n    mark_processed(event_id)\n    return jsonify({'status': 'received'}), 200\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}},"urlObject":{"protocol":"https","path":["api","payment-callback"],"host":["your-system","com"],"query":[],"variable":[]}},"response":[{"id":"3972d644-72fe-45fe-9af4-a87765bd8e7a","name":"Successful Receipt","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"event_type\": \"payment.completed\",\n  \"event_id\": \"EVT-2025-123456\",\n  \"timestamp\": \"2025-01-12T10:35:22Z\",\n  \"data\": {...}\n}","options":{"raw":{"language":"json"}}},"url":"https://your-system.com/api/payment-callback"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"status\": \"received\",\n  \"transaction_id\": \"TXN-2025-001234\",\n  \"processed_at\": \"2025-01-12T10:35:25Z\"\n}"}],"_postman_id":"5b4432b6-1505-4691-8a44-7203afba212f"}],"id":"2a37f687-0df3-403e-8cea-516cb9716a93","description":"<p>Example webhook callbacks that YOUR system must implement to receive payment notifications from SuperPOS.</p>\n","_postman_id":"2a37f687-0df3-403e-8cea-516cb9716a93","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","id":"21ea5d37-e298-483c-ba3f-0a4d83af4d86","name":"SuperPOS as Service","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"event":[{"listen":"prerequest","script":{"id":"5d5c520a-5873-4795-89f6-988f96d5b199","type":"text/javascript","requests":{},"exec":["// Check if JWT token exists and is not expired","// This runs before each request in the collection"]}},{"listen":"test","script":{"id":"7c5dd837-e5f8-4fde-9842-10ddc2bcd074","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"https://api.superpos.pvs.com/v1"},{"key":"keycloak_url","value":"https://auth.superpos.pvs.com"},{"key":"jwt_token","value":""},{"key":"client_id","value":"your_client_id"},{"key":"client_secret","value":"your_client_secret"}]}