{"id":40805332,"url":"https://github.com/payabli/sdk-csharp","last_synced_at":"2026-04-14T16:00:53.661Z","repository":{"id":312095065,"uuid":"1029786545","full_name":"payabli/sdk-csharp","owner":"payabli","description":"Payabli's official server SDK for C#","archived":false,"fork":false,"pushed_at":"2026-04-06T21:34:37.000Z","size":1207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-06T23:20:26.528Z","etag":null,"topics":["csharp","dotnet","embedded-payments","payabli-api","sdk"],"latest_commit_sha":null,"homepage":"https://docs.payabli.com/developers/platform-sdk-csharp-guide","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/payabli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-31T15:13:02.000Z","updated_at":"2026-04-06T21:34:38.000Z","dependencies_parsed_at":"2025-12-08T23:09:12.012Z","dependency_job_id":null,"html_url":"https://github.com/payabli/sdk-csharp","commit_stats":null,"previous_names":["payabli/sdk-csharp"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/payabli/sdk-csharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payabli%2Fsdk-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payabli%2Fsdk-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payabli%2Fsdk-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payabli%2Fsdk-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/payabli","download_url":"https://codeload.github.com/payabli/sdk-csharp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payabli%2Fsdk-csharp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31801692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dotnet","embedded-payments","payabli-api","sdk"],"created_at":"2026-01-21T21:02:36.355Z","updated_at":"2026-04-14T16:00:53.655Z","avatar_url":"https://github.com/payabli.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Payabli C# Library\n\n[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github\u0026utm_medium=github\u0026utm_campaign=readme\u0026utm_source=https%3A%2F%2Fgithub.com%2Fpayabli%2Fsdk-csharp)\n[![nuget shield](https://img.shields.io/nuget/v/Payabli.SDK)](https://nuget.org/packages/Payabli.SDK)\n\nThe Payabli C# library provides convenient access to the Payabli APIs from C#.\n\n## Table of Contents\n\n- [Documentation](#documentation)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Changelog](#changelog)\n- [Getting Started](#getting-started)\n- [Passing Query Parameters](#passing-query-parameters)\n- [Usage](#usage)\n- [Environments](#environments)\n- [Exception Handling](#exception-handling)\n- [Advanced](#advanced)\n  - [Retries](#retries)\n  - [Timeouts](#timeouts)\n  - [Raw Response](#raw-response)\n  - [Additional Headers](#additional-headers)\n  - [Additional Query Parameters](#additional-query-parameters)\n  - [Forward Compatible Enums](#forward-compatible-enums)\n- [Contributing](#contributing)\n- [Reference](#reference)\n\n## Documentation\n\nAPI reference documentation is available [here](https://docs.payabli.com).\n\n## Requirements\n\nThis SDK requires:\n\n## Installation\n\n```sh\ndotnet add package Payabli.SDK\n```\n\n## Changelog\n\nThe changelog for the official Payabli C# SDK is available on the Payabli Docs site. See [C# SDK Changelog](https://docs.payabli.com/changelog/csharp-sdk) for more information.\n\n\n## Getting Started\n\nVisit the Payabli Docs site to get started with the official Payabli C# SDK. See [Use the C# SDK](https://docs.payabli.com/developers/platform-sdk-csharp-guide) for more information.\n\n\n## Passing Query Parameters\n\n```csharp\nvar client = new PayabliApiClient(\"API_KEY\");\n\nvar queryParams = new Dictionary\u003cstring, string\u003e();\n\nqueryParams.Add(\"email(ct)\", \"test@example.com\");\n\nvar result = await client.Query.ListCustomersAsync(\n    \"ENTRYPOINT\", \n    new ListCustomersRequest {},\n    new RequestOptions\n    {\n        AdditionalQueryParameters = queryParams\n    }\n);\n\nConsole.WriteLine($\"Response: {result}\");\n```\n\n\n## Usage\n\nInstantiate and use the client with the following:\n\n```csharp\nusing PayabliApi;\n\nvar client = new PayabliApiClient(\"API_KEY\");\nawait client.MoneyIn.GetpaidAsync(\n    new RequestPayment\n    {\n        Body = new TransRequestBody\n        {\n            CustomerData = new PayorDataRequest { CustomerId = 4440 },\n            EntryPoint = \"f743aed24a\",\n            Ipaddress = \"255.255.255.255\",\n            PaymentDetails = new PaymentDetail { ServiceFee = 0, TotalAmount = 100 },\n            PaymentMethod = new PayMethodCredit\n            {\n                Cardcvv = \"999\",\n                Cardexp = \"02/27\",\n                CardHolder = \"John Cassian\",\n                Cardnumber = \"4111111111111111\",\n                Cardzip = \"12345\",\n                Initiator = \"payor\",\n                Method = \"card\",\n            },\n        },\n    }\n);\n```\n\n## Environments\n\nThis SDK allows you to configure different environments for API requests.\n\n```csharp\nusing PayabliApi;\n\nvar client = new PayabliApiClient(new ClientOptions\n{\n    BaseUrl = PayabliApiEnvironment.Sandbox\n});\n```\n\n## Exception Handling\n\nWhen the API returns a non-success status code (4xx or 5xx response), a subclass of the following error\nwill be thrown.\n\n```csharp\nusing PayabliApi;\n\ntry {\n    var response = await client.MoneyIn.GetpaidAsync(...);\n} catch (PayabliApiApiException e) {\n    System.Console.WriteLine(e.Body);\n    System.Console.WriteLine(e.StatusCode);\n}\n```\n\n## Advanced\n\n### Retries\n\nThe SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long\nas the request is deemed retryable and the number of retry attempts has not grown larger than the configured\nretry limit (default: 2).\n\nA request is deemed retryable when any of the following HTTP status codes is returned:\n\n- [408](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408) (Timeout)\n- [429](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429) (Too Many Requests)\n- [5XX](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500) (Internal Server Errors)\n\nUse the `MaxRetries` request option to configure this behavior.\n\n```csharp\nvar response = await client.MoneyIn.GetpaidAsync(\n    ...,\n    new RequestOptions {\n        MaxRetries: 0 // Override MaxRetries at the request level\n    }\n);\n```\n\n### Timeouts\n\nThe SDK defaults to a 30 second timeout. Use the `Timeout` option to configure this behavior.\n\n```csharp\nvar response = await client.MoneyIn.GetpaidAsync(\n    ...,\n    new RequestOptions {\n        Timeout: TimeSpan.FromSeconds(3) // Override timeout to 3s\n    }\n);\n```\n\n### Raw Response\n\nAccess raw HTTP response data (status code, headers, URL) alongside parsed response data using the `.WithRawResponse()` method.\n\n```csharp\nusing PayabliApi;\n\n// Access raw response data (status code, headers, etc.) alongside the parsed response\nvar result = await client.MoneyIn.GetpaidAsync(...).WithRawResponse();\n\n// Access the parsed data\nvar data = result.Data;\n\n// Access raw response metadata\nvar statusCode = result.RawResponse.StatusCode;\nvar headers = result.RawResponse.Headers;\nvar url = result.RawResponse.Url;\n\n// Access specific headers (case-insensitive)\nif (headers.TryGetValue(\"X-Request-Id\", out var requestId))\n{\n    System.Console.WriteLine($\"Request ID: {requestId}\");\n}\n\n// For the default behavior, simply await without .WithRawResponse()\nvar data = await client.MoneyIn.GetpaidAsync(...);\n```\n\n### Additional Headers\n\nIf you would like to send additional headers as part of the request, use the `AdditionalHeaders` request option.\n\n```csharp\nvar response = await client.MoneyIn.GetpaidAsync(\n    ...,\n    new RequestOptions {\n        AdditionalHeaders = new Dictionary\u003cstring, string?\u003e\n        {\n            { \"X-Custom-Header\", \"custom-value\" }\n        }\n    }\n);\n```\n\n### Additional Query Parameters\n\nIf you would like to send additional query parameters as part of the request, use the `AdditionalQueryParameters` request option.\n\n```csharp\nvar response = await client.MoneyIn.GetpaidAsync(\n    ...,\n    new RequestOptions {\n        AdditionalQueryParameters = new Dictionary\u003cstring, string\u003e\n        {\n            { \"custom_param\", \"custom-value\" }\n        }\n    }\n);\n```\n\n### Forward Compatible Enums\n\nThis SDK uses forward-compatible enums that can handle unknown values gracefully.\n\n```csharp\nusing PayabliApi;\n\n// Using a built-in value\nvar achaccounttype = Achaccounttype.Checking;\n\n// Using a custom value\nvar customAchaccounttype = Achaccounttype.FromCustom(\"custom-value\");\n\n// Using in a switch statement\nswitch (achaccounttype.Value)\n{\n    case Achaccounttype.Values.Checking:\n        Console.WriteLine(\"Checking\");\n        break;\n    default:\n        Console.WriteLine($\"Unknown value: {achaccounttype.Value}\");\n        break;\n}\n\n// Explicit casting\nstring achaccounttypeString = (string)Achaccounttype.Checking;\nAchaccounttype achaccounttypeFromString = (Achaccounttype)\"Checking\";\n```\n\n## Contributing\n\nWhile we value open-source contributions to this SDK, this library is generated programmatically.\nAdditions made directly to this library would have to be moved over to our generation code,\notherwise they would be overwritten upon the next generated release. Feel free to open a PR as\na proof of concept, but know that we will not be able to merge it as-is. We suggest opening\nan issue first to discuss with us!\n\nOn the other hand, contributions to the README are always very welcome!\n## Reference\n\nA full reference for this library is available [here](https://github.com/payabli/sdk-csharp/blob/HEAD/./reference.md).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpayabli%2Fsdk-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpayabli%2Fsdk-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpayabli%2Fsdk-csharp/lists"}