{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"ac8e6cf4-802a-4aa5-96b8-ad6b2c8dd9de","name":"B2B Global Payments API","description":"# Introduction\n\nWelcome to the B2B Global Payments API. This API enables you to programmatically access the Orbital platform to manage accounts, execute payments, handle currency conversions, and manage beneficiaries across both fiat and cryptocurrency rails.\n\n## Base URL\n\nAll API requests should be made to:\n\n```\nhttps://b2b.getorbital.io\n\n ```\n\n## Authentication\n\nThe Orbital API uses a two-factor authentication approach combining an API key and request signature for maximum security.\n\n### API Key\n\nEvery request must include an `x-api-key` header containing your unique API key. You can obtain an API key from the Orbital Application page on Client Portal.\n\n### Request Signature\n\nEvery request must also include an `x-signature` header containing an RSA-SHA256 signature, signed with your private key. The corresponding public key is registered with Orbital during Orbital Application setup.\n\n**Signature Generation in this collection:**\n\nWe have made a script available in this collection that reads your **private key** as an environment variable `privateKey` and will attempt to use it to sign your requests so signatures don't need to be generated before every request.\n\n**Signature Generation method:**\n\n1. Construct the signing string by concatenating: `HTTP_METHOD` + `PATH` + `BODY` (+ `?QUERY_STRING` for requests with query parameters)\n    \n2. Sign the resulting string using RSA-SHA256 with your private key\n    \n3. Base64-encode the signature\n    \n\n```\nsigningString = METHOD + PATH + BODY\nsignature = Base64(RSA-SHA256(privateKey, signingString))\n\n ```\n\nFor GET requests without a body, omit the body portion (i.e. `METHOD + PATH`). When query string parameters are present, append them as `?key=value&key=value`.\n\n### Example Headers\n\n``` http\nx-api-key: your-api-key-here\nx-signature: base64-encoded-rsa-signature\nContent-Type: application/json\n\n ```\n\n## Rate Limiting\n\nAPI requests are rate-limited to ensure fair usage across all clients. If you exceed the rate limit, you will receive a `429 Too Many Requests` response. Please implement exponential backoff in your retry logic.\n\n## Pagination\n\nEndpoints that return lists of resources support pagination through the following query parameters:\n\n| Parameter | Type | Description |\n| --- | --- | --- |\n| `page` | integer | Page number (1-indexed). Defaults to 1. |\n| `pageSize` | integer | Number of items per page. Defaults to 10, maximum 100. |\n\n## Idempotency\n\nFor payment operations, include an `externalId` in your request to ensure idempotency. If you retry a request with the same `externalId`, you will receive the original response rather than creating a duplicate payment.\n\n## Versioning\n\nThis API follows semantic versioning. Breaking changes will be communicated in advance and may require migration to a new API version.\n\n---\n\n## Accounts\n\nManage your accounts within the Orbital Global Payments platform. Accounts can hold both fiat currencies (USD, EUR, GBP, etc.) and cryptocurrencies (BTC, ETH, USDT, etc.).\n\nEach account has a unique identifier and contains balance information, account identification details (such as IBAN, account number, or wallet address), and status information.\n\n**Note:** Account attributes vary depending on whether the account is fiat or crypto-based.\n\n## Transactions\n\nRetrieve transactions processed within the Orbital Global Payments platform. Transactions include:\n\n- **Payments**: Outbound fiat or crypto payments to beneficiaries\n    \n- **Currency Conversions**: Exchange between different currencies\n    \n- **Internal Transfers**: Movements between your own accounts\n    \n- **Inbound Receipts**: Funds received from external sources\n    \n\nTransaction attributes vary depending on the transaction type and whether it involves fiat or cryptocurrency.\n\n## Payments\n\nCreate and manage payments using the Orbital Global Payments platform. This allows you to initiate payments to beneficiaries from your accounts.\n\nPayments support both fiat and cryptocurrency transfers, with automatic routing to the appropriate payment rail.\n\n**Key Features:**\n\n- Idempotent payment creation using `externalId`\n    \n- Support for same-currency payments\n    \n- Real-time payment status tracking via webhooks\n    \n\n## Beneficiaries\n\nManage beneficiaries (payment recipients) within the Orbital Global Payments platform. Beneficiaries can receive both fiat and cryptocurrency payments.\n\n**Beneficiary Types:**\n\n- **Individual**: Personal accounts for individuals\n    \n- **Business**: Corporate or business accounts\n    \n\n**Beneficiary Status:**\n\n- `new`: Beneficiary created, pending compliance screening\n    \n- `approved`: Beneficiary passed compliance screening and can receive payments\n    \n- `rejected`: Beneficiary failed compliance screening\n    \n\nAll new beneficiaries undergo automatic compliance screening before being approved for payments.\n\n## Currency Conversions\n\nExecute currency conversions between your accounts holding different currencies. The conversion API supports fiat-to-fiat, fiat-to-crypto, crypto-to-fiat, and crypto-to-crypto conversions.\n\n**Conversion Flow:**\n\n1. **Get Quote**: Request a conversion quote via `POST /conversions/quotes`\n    \n2. **Execute Conversion**: Use the `quoteId` to execute the conversion, or provide account details directly\n    \n\nQuotes are valid for a limited time (indicated in the response) and lock in the exchange rate.\n\n**Instruction Type:**  \nBoth quote and conversion endpoints accept an optional `instructionType` parameter:\n\n- `sell` (default): The `amount` represents how much of the source currency you want to sell\n    \n- `buy`: The `amount` represents how much of the destination currency you want to buy\n    \n\n## Payers\n\nManage payers (originators) for Travel Rule compliance when receiving cryptocurrency payments. Payers represent the source of funds for inbound crypto transactions.\n\nThis feature enables compliance with global Travel Rule regulations by capturing and storing originator information for cryptocurrency transactions.\n\n**Use Cases:**\n\n- Register external crypto wallet owners\n    \n- Link payer information to incoming transactions\n    \n- Maintain Travel Rule compliance records\n    \n\n## Webhooks\n\nOrbital delivers webhooks to the notification URL you configure for your application (for example in the Client Portal). Events are sent as HTTP POST requests to that URL so your integration can react in near real time.\n\n### Webhook Events\n\n| Event | Description |\n| --- | --- |\n| `BeneficiaryCreated` | A new beneficiary has been created |\n| `BeneficiaryRemoved` | A beneficiary has been deleted |\n| `PaymentCreated` | A new payment has been initiated |\n| `PaymentCompleted` | A payment has been successfully settled |\n| `PaymentRejected` | A payment has been rejected or failed |\n| `PaymentInformationRequired` | A payment requires additional information (e.g. payer details for Travel Rule) |\n\n### Webhook Signature Verification\n\nAll webhook requests include an `X-Orbital-Signature` header. Verify this signature to ensure the webhook originated from Orbital:\n\n``` javascript\nconst crypto = require('crypto');\nfunction verifyWebhookSignature(webhookSecret, webhookUrl, body, signature) {\n  const data = webhookSecret + webhookUrl + body;\n  const expectedSignature = crypto\n    .createHash('sha256')\n    .update(data)\n    .digest('base64');\n  return crypto.timingSafeEqual(\n    Buffer.from(signature),\n    Buffer.from(expectedSignature)\n  );\n}\n\n ```\n\n### Retry Policy\n\nFailed webhook deliveries are automatically retried up to 4 times with exponential backoff.\n\nContact Support:  \nName: Orbital Support  \nEmail: [support@getorbital.io](https://mailto:support@getorbital.io)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"22453345","team":533481,"collectionId":"ac8e6cf4-802a-4aa5-96b8-ad6b2c8dd9de","publishedId":"2sBXinJBPw","public":true,"publicUrl":"https://documenter-api.postman.tech/view/22453345/2sBXinJBPw","privateUrl":"https://go.postman.co/documentation/22453345-ac8e6cf4-802a-4aa5-96b8-ad6b2c8dd9de","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.11.4","publishDate":"2026-03-31T13:36:10.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/75bfaaaaf1717bcb90d85d3ed2c41c5b34445cc93ffbfab57ee82cd897776e80","favicon":"https://res.cloudinary.com/postman/image/upload/v1643287716/team/zro11gclpexslopa1qxz.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBXinJBPw"}