Cybrid API 文档
欢迎来到Cybrid 一个全能的加密平台 可以让你轻松 构建 财务报告和审定财务报表 发射 白标签加密产品或服务.
在这些文件中,你会找到关于我们REST API如何运行以及我们平台一般如何运行的细节.
如果您正在寻找我们的UI SDK Widgets for Web 或 Mobile (iOS/Android), 生成 API 客户端, 或演示应用程序, 前往我们 Github 重传。 。 。 .
我们建议给 Cybrid 链接特雷 包含许多与平台资源的有益链接.
开始
这是Cybrid的公开互动 API 文档,它允许您充分测试我们的 API. 如果你想使用不同的工具来练习我们的API,你可以下载 打开 API 3.0 扬尔 用于导入.
如果您是新进入我们的API和Cybrid平台,请遵循以下指南来设置并熟悉平台:
单位 开始于 Cybrid 沙盒我们教你如何使用 锡布里德沙盒 创建测试库并生成 API 密钥。 单位 准备交易我们通过创建客户 客户身份 账户 以及执行报价和交易.
与 Cybrid 平台合作
与Cybrid平台互动的主要方式有三种:
- 直接通过我们的 restful API(本文档)
- 使用各种语言的API客户端(角质, (中文(简体) ), 爪哇语, (中文(简体) ), 科特林语Name, (中文(简体) ), 蟒, (中文(简体) ), 鲁比, (中文(简体) ), 挥发 或者说 字体(中文(简体) )
- 整合特定平台 SDK(网页, (中文(简体) ), 机器人, (中文(简体) ), iOS系统(中文(简体) )
我们的一整套API允许您管理三个不同领域的资源: Organization、 Banks 还有你的 Identities在大多数测试和互动中,您将使用 Bank API,是大多数API居住的地方.
完整的API集可参见以下各页: 互联网档案馆的存檔,存档日期2013-12-21
| API 密码 | 说明 |
|---|---|
| API 组织 | 管理组织的API |
| 银行 API | 管理银行的API(以及所有下游客户活动) |
| 身份标识 API | 管理组织和银行身份的API |
正在认证 API
Cybrid平台使用OAuth 2.0 Bearer Tokens认证请求到平台. 要创建的证书 Organization 财务报告和审定财务报表 Bank 符号可以通过 锡布里德沙盒。可以生成一个 Customer 和通过 Cybrid IdP (英语) 还有.
一个 Organization 准入标志广泛适用于整个组织及其所有 Banks,而a Bank 访问令牌是单个银行专用的. Customer 同样,指示书也适用于银行的特定客户.
两者 Organization 财务报告和审定财务报表 Bank 符号可以使用 OAuth 客户端证书授权流创建. 每个组织和银行都有自己独特的 Client ID 财务报告和审定财务报表 Secret 可以进行机器对机器认证.
A 类 Bank 然后生成 Customer 通过 API 使用我们 身份标识 API。 。 。 .
<font color="orange"> (中文(简体) )QQ 永远不要公开共享您的客户端ID或机密, 也不要在源代码存储器中共享 .
Client ID 财务报告和审定财务报表 Secret 可以交换一个有时间限制的 Bearer Token 通过与 Cybrid 身份提供方的互动,或通过与 授权 按钮.
下列卷轴命令可用于快速生成 Bearer Token 用于测试 API 或演示应用程序.
# Example request when using Bank credentials
curl -X POST https://id.production.cybrid.app/oauth/token -d '{
\"grant_type\": \"client_credentials\",
\"client_id\": \"<Your Client ID>\",
\"client_secret\": \"<Your Secret>\",
\"scope\": \"banks:read banks:write bank_applications:read accounts:read accounts:write accounts:execute counterparties:read counterparties:pii:read counterparties:write counterparties:execute customers:read customers:pii:read customers:write customers:execute prices:read quotes:execute quotes:read trades:execute trades:read transactions:read transfers:execute transfers:read transfers:write external_bank_accounts:read external_bank_accounts:pii:read transfers:pii:read external_bank_accounts:write external_bank_accounts:execute external_wallets:read external_wallets:write external_wallets:execute workflows:read workflows:execute deposit_addresses:read deposit_addresses:write deposit_addresses:execute deposit_bank_accounts:read deposit_bank_accounts:write deposit_bank_accounts:execute invoices:read invoices:write invoices:execute identity_verifications:read identity_verifications:pii:read identity_verifications:write identity_verifications:execute persona_sessions:execute sardine_sessions:execute plans:execute plans:read executions:execute executions:read files:read files:pii:read files:execute\"
}' -H \"Content-Type: application/json\"
# When using Organization credentials set `scope` to 'organizations:read organizations:write organization_applications:read banks:read banks:write banks:execute bank_applications:read users:read counterparties:read counterparties:pii:read customers:read customers:pii:read accounts:read accounts:write prices:read quotes:execute quotes:read trades:execute trades:read transactions:read transfers:read transfers:write transfers:execute external_bank_accounts:read external_bank_accounts:pii:read transfers:pii:read external_bank_accounts:write external_wallets:read external_wallets:write workflows:read deposit_addresses:read deposit_addresses:write deposit_bank_accounts:read deposit_bank_accounts:write deposit_bank_accounts:execute invoices:read subscription_events:read subscription_events:execute identity_verifications:read identity_verifications:pii:read identity_verifications:execute persona_sessions:execute sardine_sessions:execute plans:execute plans:read executions:execute executions:read files:read files:pii:read files:execute'
<font color="orange"> (中文(简体) )注:以上卷曲将产生一个无记名符号,可全范围访问. 如果您想限制访问, 请删除范围 .
认证范围
Cybrid平台支持使用瞄准镜来控制一个指使器的接入水平是有限的. 范围不允许获得资源;相反,它们规定了限制,以支持最不享有特权的本金.
以下范围可在平台上查阅,可在生成组织、银行或客户代币时索取。 一般来说 读取 需要范围来阅读和列出资源 写入 需要范围来更新资源和 执行 创建资源需要范围.
| 资源 | 读取范围( 托肯类型) | 写入范围( 托肯类型) | 执行范围( Token 类型) |
|---|---|---|---|
| 账户 | 账户:已读(组织、银行、客户) | 账户:执行(银行、客户) | |
| 银行 | 银行:阅读(组织、银行) | 银行:写作(组织、银行) | 银行:执行(组织) |
| 银行应用程序 | 银行 应用程序:已读(组织、银行) | ||
| 客户 | 客户:阅读(组织、银行、客户) | 客户:写作(银行、客户) | 客户:执行(银行) |
| 对手方 | 交易对手:阅读(组织、银行、客户) | 交易对手:写作(银行、客户) | 对手:执行(银行) |
| 交存地址 | 存款地址:已读(组织、银行、客户) | 存款地址:写作(银行、客户) | 存款地址:执行(银行、客户) |
| 外部银行账户 | 外部 银行 账户:已读(组织、银行、客户) | 外部 银行 账户: 写入( 银行、 客户) | 外部 银行 账户: 执行( 银行、 客户) |
| 外部钱包 | 外部 wallet:已读(组织、银行、客户) | 外部 wallet:执行(银行、客户) | |
| 组织应用程序 | 组织 应用程序:已读(组织) | ||
| 组织 | (组织) | (组织) | |
| 用户 | 用户:已读 (组织) | ||
| 价格 | 价格:已读(银行、客户) | ||
| 引用 | 引文:已读(组织、银行、客户) | 引用:执行(组织、银行、客户) | |
| 贸易 | 贸易:阅读(组织、银行、客户) | 贸易:执行(组织、银行、客户) | |
| 转让 | 转账:已读(组织、银行、客户) | 转账:执行(组织、银行、客户) | |
| 工作流程 | 工作流程:阅读(组织、银行、客户) | 工作流程:执行(银行、客户) | |
| 发票 | 发票:已读(组织、银行、客户) | 发票:写作(银行、客户) | 发票:执行(银行、客户) |
API密钥和组织用户只在伙伴门户网站中创建,更新并删除,订阅则在那里完全管理. 为组织API密钥发布的tokens可以列出并获得组织应用程序,银行应用程序和用户,为银行API密钥发布的令牌可以列出并获得银行应用程序;既不能创建,更新或删除,也完全不能达到订阅. 请求 organization_applications:write, (中文(简体) ), organization_applications:execute, (中文(简体) ), bank_applications:write, (中文(简体) ), bank_applications:execute, (中文(简体) ), users:write, (中文(简体) ), users:execute, (中文(简体) ), subscriptions:read, (中文(简体) ), subscriptions:write 或者说 subscriptions:execute 允许将镜框与其他镜框相并列:这些镜框被拆掉,并与其他镜框一起发行.
可用终点
用于 身份, (中文(简体) ), 组织 财务报告和审定财务报表 银行 API服务如下:
| API 服务 | 型号 | API 端点路径 | 说明 |
|---|---|---|---|
| 身份 | 银行 | /api/银行 应用程序 | 获取并列出银行 API 密钥 |
| 身份 | 客户端 | /api/客户( tokens) | 创建客户 JWT 访问符 |
| 身份 | 组织 | /api/组织 应用程序 | 获取和列出组织 API 密钥 |
| 身份 | 组织 | /api/用户 | 获取和列出组织用户 |
| 组织 | 组织 | /api/组织 | 获取和更新组织名称的 API |
| 银行 | 账户 | /api/账户 | 创建和列出为客户持有特定资产的账户 |
| 银行 | 资产 | 资产 | 获取平台支持的资产列表( 如: BTC, EH) |
| 银行 | 银行 | /api/银行 | 创建、更新和列出银行、母公司给客户、账户等 |
| 银行 | 客户 | /api/客户 | 创建和列出客户 |
| 银行 | 对手方 | /api/对应方 | 创建和列出对应方 |
| 银行 | 交存地址 | /api/保存地址 | 创建、获取和列出存款地址 |
| 银行 | 外部银行账户 | /api/ 外部 银行 账户 | 创建、获取和列出连接客户银行账户的外部银行账户 |
| 银行 | 外部钱包 | /api/ 外部钱包 | 创建、获取、列表和删除连接客户钱包到平台的外部钱包 |
| 银行 | 身份验证 | /api/标识 验证 | 为 KYC 客户创建和列出身份验证 |
| 银行 | 发票 | /api/发票 | 获取和列出发票 |
| 银行 | 付款指示 | /api/支付 指示 | 取得发票并列出付款指示 |
| 银行 | 价格 | /api/价格 | 获取平台上资产的时价 |
| 银行 | 引用 | /api/引号 | 创建并列出执行交易所需的引用 |
| 银行 | 符号 | /api/同义词 | 获取贸易所支持的符号列表( 如: BTC- United States) |
| 银行 | 贸易 | /api/贸易 | 创建并列出买卖密码货币的交易 |
| 银行 | 转让 | /api/转让 | 创建、获取和列出转账(如供资、账簿) |
| 银行 | 工作流程 | /api/工作流程 | 创建、获取和列出工作流程 |
理解对象模型和终点
组织
一个 Organization 目的是代表与Cybrid合作的组织使用我们的平台.
一个 Organization 通常不与 customers相反,一个组织有一个或一个以上 banks包括平台的金融服务.
银行
A 类 Bank 属于 Organization 并且可以被认为是环境或容器用于 customers 和产品供应。 银行在其中之一创建 Sandbox 或者说 Production 模式,在其中 Sandbox 是您在迁移到 Production。 。 。 .
一个 Organization 能够有多个 banks,无论是 Sandbox 或者说 Production 环境。 A 类 Sandbox Bank 将使用被阻断的数据和流程流支持。 例如,供资来源转让过程和贸易将模拟而不是进行,但资产价格代表着现实世界的价值。 你有无限量的模拟假币 用于测试目的.
客户
Customers 在平台上代表您的银行用户。 目前,我们表示支持 Individuals 作为客户.
Customers 必须在我们的系统中验证(即KYC'd),然后他们才能在平台上扮演任何角色,这意味着他们必须有关联和过路 Identity Verification有关如何核查客户的更详细情况,见身份核查部分.
Customers 还必须有一个 Account 能够进行交易,在理想的资产类别。 关于为客户设立账户的详情,见账户API.
@cybrid/cybrid-api-id-angular @. 129.1581 (英语)
大楼
要安装所需的依赖性并构建运行的打字源:
npm install
npm run build
出版
首先构建软件包然后运行 npm publish dist (别忘了说明) dist 文件夹
消费
导航到您耗用工程的文件夹并运行下一个命令 .
已出版:
npm install @cybrid/[email protected] --save
(不建议):
npm install PATH_TO_GENERATED_PACKAGE/dist.tgz --save
带tgz文件很重要,否则会给窗口的链接带来麻烦
使用 npm link数字 :
在 PATH TO GENERTED PACKAGE/dist中:
npm link
在你的项目中:
npm link @cybrid/cybrid-api-id-angular
用于 Windows 用户的说明 : 角 CLI 有使用链接npm包的麻烦. 请参考这个问题 https://github.com/angular/angular-cli/issues/8284 (中文(简体) ) 解决/解决. 出版的套件不是由本期实施的.
一般用途
在您的角工程中 :
// without configuring providers
import { ApiModule } from '@cybrid/cybrid-api-id-angular';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
ApiModule,
// make sure to import the HttpClientModule in the AppModule only,
// see https://github.com/angular/angular/issues/20575
HttpClientModule
],
declarations: [ AppComponent ],
providers: [],
bootstrap: [ AppComponent ]
})
export class AppModule {}
// configuring providers
import { ApiModule, Configuration, ConfigurationParameters } from '@cybrid/cybrid-api-id-angular';
export function apiConfigFactory (): Configuration {
const params: ConfigurationParameters = {
// set configuration parameters here.
}
return new Configuration(params);
}
@NgModule({
imports: [ ApiModule.forRoot(apiConfigFactory) ],
declarations: [ AppComponent ],
providers: [],
bootstrap: [ AppComponent ]
})
export class AppModule {}
// configuring providers with an authentication service that manages your access tokens
import { ApiModule, Configuration } from '@cybrid/cybrid-api-id-angular';
@NgModule({
imports: [ ApiModule ],
declarations: [ AppComponent ],
providers: [
{
provide: Configuration,
useFactory: (authService: AuthService) => new Configuration(
{
basePath: environment.apiUrl,
accessToken: authService.getAccessToken.bind(authService)
}
),
deps: [AuthService],
multi: false
}
],
bootstrap: [ AppComponent ]
})
export class AppModule {}
import { DefaultApi } from '@cybrid/cybrid-api-id-angular';
export class AppComponent {
constructor(private apiGateway: DefaultApi) { }
}
注意: ApiModule 被限制为一旦应用宽被即时化. 这样做是为了确保所有服务都被视为单吨.
使用多个 OpenAPI 文件 / APIs / ApiModules
为了使用多个 ApiModules 从不同的 OpenAPI 文件生成,
您可以在导入模块时创建别名
为了避免命名冲突:
import { ApiModule } from 'my-api-path';
import { ApiModule as OtherApiModule } from 'my-other-api-path';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
ApiModule,
OtherApiModule,
// make sure to import the HttpClientModule in the AppModule only,
// see https://github.com/angular/angular/issues/20575
HttpClientModule
]
})
export class AppModule {
}
设置服务基础路径
如果与生成的基础路径不同,在应用靴子时,您可以提供服务的基础路径.
import { BASE_PATH } from '@cybrid/cybrid-api-id-angular';
bootstrap(AppComponent, [
{ provide: BASE_PATH, useValue: 'https://your-web-service.com' },
]);
或者说
import { BASE_PATH } from '@cybrid/cybrid-api-id-angular';
@NgModule({
imports: [],
declarations: [ AppComponent ],
providers: [ provide: BASE_PATH, useValue: 'https://your-web-service.com' ],
bootstrap: [ AppComponent ]
})
export class AppModule {}
使用@ angular/ cli
第一次扩展你的 src/environments/*.ts 通过添加相应的基础路径来创建文件 :
export const environment = {
production: false,
API_BASE_PATH: 'http://127.0.0.1:8080'
};
在src/app/app.module.ts中:
import { BASE_PATH } from '@cybrid/cybrid-api-id-angular';
import { environment } from '../environments/environment';
@NgModule({
declarations: [
AppComponent
],
imports: [ ],
providers: [{ provide: BASE_PATH, useValue: environment.API_BASE_PATH }],
bootstrap: [ AppComponent ]
})
export class AppModule { }