{
  "info": {
    "name": "A2A InstaPay Tenant API v1.1 (Sandbox)",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "A2A InstaPay (Fintechnology Asia Pacific Lanka Ltd, licensed to FINAP USA LLC). Run Get an access token first; it stores accessToken in the environment."
  },
  "item": [
    {
      "name": "Authentication",
      "item": [
        {
          "name": "Get an access token",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.environment.set('accessToken', pm.response.json().access_token);"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/x-www-form-urlencoded"
              }
            ],
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "grant_type",
                  "value": "client_credentials"
                },
                {
                  "key": "client_id",
                  "value": "{{clientId}}"
                },
                {
                  "key": "client_secret",
                  "value": "{{clientSecret}}"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/oauth/token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "oauth",
                "token"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Customers",
      "item": [
        {
          "name": "Register a customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Registers a consumer or merchant and returns the customer with an onboarding session. Open the session with the SDK to start verification.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"individual\",\n  \"external_ref\": \"member-10482\",\n  \"email\": \"member@example.com\",\n  \"mobile_number\": \"+12025550148\",\n  \"prefill\": {\n    \"first_name\": \"Avery\",\n    \"last_name\": \"Morgan\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Find a customer by external reference",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns a list containing the customer with the given external_ref, or an empty list.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers"
              ],
              "variable": [],
              "query": [
                {
                  "key": "external_ref",
                  "value": "",
                  "disabled": false,
                  "description": "The Tenant's reference."
                }
              ]
            }
          }
        },
        {
          "name": "Retrieve a customer",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the customer, including verification status, account identifier and PIN lock status.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "List owners of a business",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the owners and control person of a business customer, with their verification status.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/owners",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "owners"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "List accepted customer documents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the customer documents the customer has accepted or must accept, with versions and times.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/documents",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "documents"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "Request account closure",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Requests closure of the customer's Digital Account. The account moves to closing; the remaining balance is paid to the customer's linked account, or held where a legal or compliance hold applies. account.closed follows.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/close",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "close"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"customer_request\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Hosted sessions",
      "item": [
        {
          "name": "Create a hosted session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates a single-use session for a hosted flow. Use it to start pin_reset, contact_change or terms_acceptance, or to replace an onboarding or payment_confirm session that expired before the customer finished.",
            "url": {
              "raw": "{{baseUrl}}/v1/sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sessions"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"flow\": \"pin_reset\",\n  \"customer_id\": \"cus_c9T2kXq4Lm\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Exchange a result token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Exchanges the result token returned by the SDK for the outcome of the flow. Call it from the Tenant's server. A result token can be exchanged once. The webhook for the underlying record remains the source of truth.",
            "url": {
              "raw": "{{baseUrl}}/v1/sessions/exchange",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sessions",
                "exchange"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"result_token\": \"rt_sbx_7d2e9f1a3c5b\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Bank linking",
      "item": [
        {
          "name": "Create a Plaid link token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates a Plaid link token bound to the customer. Open Plaid with it in the Tenant's application.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/link-tokens",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "link-tokens"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"platform\": \"web\",\n  \"redirect_uri\": \"https://app.example.com/bank-link/return\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Submit a Plaid public token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Submits the public token returned by Plaid. A2A InstaPay retrieves the account, runs the ownership, account type, RTP and Request for Payment checks, and returns the linked account with status pending. linked_account.verified or linked_account.failed follows.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/linked-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "linked-accounts"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"public_token\": \"public-sandbox-5a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d\",\n  \"plaid_account_id\": \"vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List linked accounts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the customer's linked accounts, including removed ones, newest first.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/linked-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "linked-accounts"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "Remove a linked account",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Removes the linked account. Pending withdrawals to it are not affected. linked_account.removed follows.",
            "url": {
              "raw": "{{baseUrl}}/v1/customers/:id/linked-accounts/:linked_account_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "customers",
                ":id",
                "linked-accounts",
                ":linked_account_id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                },
                {
                  "key": "linked_account_id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Accounts",
      "item": [
        {
          "name": "Find a customer's Digital Account",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns a list containing the customer's Digital Account.",
            "url": {
              "raw": "{{baseUrl}}/v1/accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "accounts"
              ],
              "variable": [],
              "query": [
                {
                  "key": "customer_id",
                  "value": "",
                  "disabled": false,
                  "description": "Customer identifier."
                }
              ]
            }
          }
        },
        {
          "name": "Retrieve a balance",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the ledger, available, earmarked and pending outgoing amounts.",
            "url": {
              "raw": "{{baseUrl}}/v1/accounts/:id/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "accounts",
                ":id",
                "balance"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "List transactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the account's transactions, newest first.",
            "url": {
              "raw": "{{baseUrl}}/v1/accounts/:id/transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "accounts",
                ":id",
                "transactions"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": [
                {
                  "key": "from",
                  "value": "",
                  "disabled": true,
                  "description": "Earliest creation time."
                },
                {
                  "key": "to",
                  "value": "",
                  "disabled": true,
                  "description": "Latest creation time."
                },
                {
                  "key": "type",
                  "value": "",
                  "disabled": true,
                  "description": "Transaction type filter."
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Page size, 1 to 100, default 25."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "next_cursor from the previous page."
                }
              ]
            }
          }
        },
        {
          "name": "List statements",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the account's periodic statements, newest first.",
            "url": {
              "raw": "{{baseUrl}}/v1/accounts/:id/statements",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "accounts",
                ":id",
                "statements"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Page size, 1 to 100, default 25."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "next_cursor from the previous page."
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Loads",
      "item": [
        {
          "name": "Create a load",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates a load into the customer's Digital Account by Request for Payment to the customer's linked account. The load is returned with status requires_confirmation and a payment_confirm session. Open the session with the SDK; the customer confirms with the PIN or a passkey. A load that is not confirmed before the session expires fails with failure_code confirmation_expired.",
            "url": {
              "raw": "{{baseUrl}}/v1/loads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "loads"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer_id\": \"cus_c9T2kXq4Lm\",\n  \"amount\": 10000\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Retrieve a load",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the load.",
            "url": {
              "raw": "{{baseUrl}}/v1/loads/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "loads",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Payment requests",
      "item": [
        {
          "name": "Create a payment request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates a dynamic request with an amount, paid once, or a static request for a collection point, on which the payer enters the amount. Encode qr_payload in a QR code or in the Tenant's Link-to-Pay link.",
            "url": {
              "raw": "{{baseUrl}}/v1/payment-requests",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payment-requests"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"dynamic\",\n  \"merchant_customer_id\": \"cus_m7R5pWz1Hd\",\n  \"amount\": 2500,\n  \"order_reference\": \"ORD-55120\",\n  \"expires_in\": 900\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Retrieve a payment request",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the payment request.",
            "url": {
              "raw": "{{baseUrl}}/v1/payment-requests/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payment-requests",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "Cancel a payment request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Cancels an open payment request. payment_request.canceled follows.",
            "url": {
              "raw": "{{baseUrl}}/v1/payment-requests/:id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payment-requests",
                ":id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Payments",
      "item": [
        {
          "name": "Create a payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates a consumer-to-merchant payment from balance or by bank, or a merchant-to-merchant payment from balance. Give either payee_customer_id or qr_payload. The payment is returned with status requires_confirmation and a payment_confirm session for the payer. A payment that is not confirmed before the session expires is canceled.",
            "url": {
              "raw": "{{baseUrl}}/v1/payments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payments"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"payer_customer_id\": \"cus_c9T2kXq4Lm\",\n  \"payee_customer_id\": \"cus_m7R5pWz1Hd\",\n  \"amount\": 2500,\n  \"source\": \"balance\",\n  \"order_reference\": \"ORD-55120\",\n  \"description\": \"Order 55120\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Retrieve a payment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the payment.",
            "url": {
              "raw": "{{baseUrl}}/v1/payments/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payments",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        },
        {
          "name": "Cancel a payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Cancels a payment that has not been confirmed. payment.canceled follows.",
            "url": {
              "raw": "{{baseUrl}}/v1/payments/:id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payments",
                ":id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Withdrawals",
      "item": [
        {
          "name": "Create a withdrawal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates a withdrawal to the customer's own verified linked account. The withdrawal is returned with status requires_confirmation and a payment_confirm session. A withdrawal that is not confirmed before the session expires fails with failure_code confirmation_expired.",
            "url": {
              "raw": "{{baseUrl}}/v1/withdrawals",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "withdrawals"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer_id\": \"cus_m7R5pWz1Hd\",\n  \"amount\": 50000\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Retrieve a withdrawal",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the withdrawal.",
            "url": {
              "raw": "{{baseUrl}}/v1/withdrawals/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "withdrawals",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Refunds",
      "item": [
        {
          "name": "Request a refund",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Requests a refund of a completed payment to the original payer. The refund is returned with status requested and a payment_confirm session for the merchant's authorized user. A refund that is not confirmed before the session expires fails with failure_code confirmation_expired.",
            "url": {
              "raw": "{{baseUrl}}/v1/refund-requests",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "refund-requests"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"payment_id\": \"pay_3As6Df9Gh2\",\n  \"amount\": 1000,\n  \"reason\": \"requested_by_customer\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Retrieve a refund",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the refund.",
            "url": {
              "raw": "{{baseUrl}}/v1/refund-requests/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "refund-requests",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Disputes",
      "item": [
        {
          "name": "Forward a customer notice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Forwards a customer's notice of an error, an unauthorized transfer or a purchase dispute. Forward every notice within one business day of receiving it, with the time the customer gave it.",
            "url": {
              "raw": "{{baseUrl}}/v1/disputes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "disputes"
              ],
              "variable": [],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer_id\": \"cus_c9T2kXq4Lm\",\n  \"type\": \"unauthorized_transfer\",\n  \"payment_id\": \"pay_3As6Df9Gh2\",\n  \"description\": \"I did not make this payment.\",\n  \"notice_received_at\": \"2026-10-15T13:40:00Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List disputes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns disputes, newest first.",
            "url": {
              "raw": "{{baseUrl}}/v1/disputes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "disputes"
              ],
              "variable": [],
              "query": [
                {
                  "key": "customer_id",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by customer."
                },
                {
                  "key": "status",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by status."
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Page size, 1 to 100, default 25."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "next_cursor from the previous page."
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Webhook events",
      "item": [
        {
          "name": "List webhook events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns events with their delivery status, newest first. Events are kept for 30 days.",
            "url": {
              "raw": "{{baseUrl}}/v1/webhook-events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhook-events"
              ],
              "variable": [],
              "query": [
                {
                  "key": "type",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by event type."
                },
                {
                  "key": "delivery_status",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by delivery status."
                },
                {
                  "key": "from",
                  "value": "",
                  "disabled": true,
                  "description": "Earliest event time."
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Page size, 1 to 100, default 25."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "next_cursor from the previous page."
                }
              ]
            }
          }
        },
        {
          "name": "Resend a webhook event",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Queues the event for delivery again with a fresh signature timestamp. The event identifier is unchanged.",
            "url": {
              "raw": "{{baseUrl}}/v1/webhook-events/:id/resend",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhook-events",
                ":id",
                "resend"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": ""
                }
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Reports",
      "item": [
        {
          "name": "Retrieve the daily reconciliation report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "description": "Returns the summary for a business date and a time-limited address of the posting-level file. Reports are available from 06:00 Eastern Time the next day.",
            "url": {
              "raw": "{{baseUrl}}/v1/reports/reconciliation",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "reports",
                "reconciliation"
              ],
              "variable": [],
              "query": [
                {
                  "key": "date",
                  "value": "",
                  "disabled": false,
                  "description": "Business date (Eastern Time), YYYY-MM-DD."
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Sandbox",
      "item": [
        {
          "name": "Simulate an event (sandbox only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Moves a sandbox record as if the bank, a provider or a reviewer had acted, and sends the resulting webhook.",
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/simulate/:event",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "simulate",
                ":event"
              ],
              "variable": [
                {
                  "key": "event",
                  "value": ""
                }
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"object_id\": \"pay_3As6Df9Gh2\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://sandbox.a2ainstapay.com"
    }
  ]
}