{
  "opencollection": "1.0.0",
  "info": {
    "name": "Grid Agent Management Sandbox API",
    "version": "2025-10-13"
  },
  "request": {
    "auth": {
      "type": "basic",
      "username": "{{username}}",
      "password": "{{password}}"
    }
  },
  "items": [
    {
      "info": {
        "name": "Sandbox",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Send a test webhook",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/webhooks/test",
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Send a test webhook to the configured endpoint"
        },
        {
          "info": {
            "name": "Simulate sending funds",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/send",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Simulate sending funds to the bank account as instructed in the quote.\nThis endpoint is only for the sandbox environment and will fail for production platforms/keys.\n"
        },
        {
          "info": {
            "name": "Simulate payment send to test receiving an UMA payment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/uma/receive",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Simulate sending payment from an sandbox uma address to a platform customer to test payment receive.\nThis endpoint is only for the sandbox environment and will fail for production platforms/keys.\n"
        },
        {
          "info": {
            "name": "Simulate funding an internal account",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/internal-accounts/:accountId/fund",
            "params": [
              {
                "name": "accountId",
                "value": "InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123",
                "type": "path",
                "description": "The ID of the internal account to fund"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Simulate receiving funds into an internal account in the sandbox environment. This is useful for testing scenarios where you need to add funds to a customer's or platform's internal account without going through a real bank transfer or following payment instructions.\nThis endpoint is only for the sandbox environment and will fail for production platforms/keys.\n"
        },
        {
          "info": {
            "name": "Simulate a card authorization",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/cards/:id/simulate/authorization",
            "params": [
              {
                "name": "id",
                "value": "Card:019542f5-b3e7-1d02-0000-000000000010",
                "type": "path",
                "description": "The id of the card to simulate an authorization against."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Simulate an inbound card authorization in the sandbox environment. Drives the same internal `authorize` + `reconcile` paths the card issuer would call in production, so platforms can exercise Grid's decisioning + funding-source pull behavior end-to-end without an external network round-trip.\n\nThe decisioning outcome is controlled by the last three characters of `merchant.descriptor`:\n\n| Suffix | Outcome | | ------ | ------- | | `002`  | Decline — `INSUFFICIENT_FUNDS` (the pull on the funding sou"
        },
        {
          "info": {
            "name": "Simulate a card clearing",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/cards/:id/simulate/clearing",
            "params": [
              {
                "name": "id",
                "value": "Card:019542f5-b3e7-1d02-0000-000000000010",
                "type": "path",
                "description": "The id of the card the clearing applies to."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Simulate a clearing (settlement) event against an existing `CardTransaction` in the sandbox environment.\n\n- A clearing `amount` greater than the authorized amount exercises the over-auth post-hoc-pull path (e.g. restaurant tip on top of a 20% over-auth).\n- A clearing `amount` of `0` exercises the `AUTHORIZATION_EXPIRY` path — the auth expires with no clearing posted.\n- Suffix-driven outcomes on the parent transaction's id govern whether the post-hoc pull succeeds (use the suffix table from `simu"
        },
        {
          "info": {
            "name": "Simulate a card return",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.lightspark.com/grid/2025-10-13/sandbox/cards/:id/simulate/return",
            "params": [
              {
                "name": "id",
                "value": "Card:019542f5-b3e7-1d02-0000-000000000010",
                "type": "path",
                "description": "The id of the card the return applies to."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "Simulate a merchant-initiated `RETURN` against an existing settled card transaction in the sandbox environment. Creates a `CardRefund` on the parent and either flips the parent to `REFUNDED` (full refund) or keeps it `SETTLED` with a non-zero `refundedAmount` (partial refund).\n\nProduction returns `404` on this path.\n"
        }
      ]
    }
  ],
  "bundled": true
}