Variable cashDepositApiConst
cashDepositApi: {
"/v1/deposit/cash": {
get: {
description: "Search cash deposits requests for a given `identityId`.\nThe `identityId` query parameter is mandatory. Deposits can be further filtered by populating the `status` and `reference` parameters.\n\nNote that cash deposits requests will result in the creation of a Deposit once the user has presented the barcode and successfully made payment at a retailer.";
querystring: TObject<
{
identityId: TString;
reference: TOptional<TString>;
status: TOptional<TString>;
},
>;
response: {
"200": TObject<
{
results: TArray<
TObject<
{
barcodeNumber: TString;
createdAt: TString;
depositId: TOptional<TString>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TOptional<TObject<(...)>>;
expiresAt: TString;
id: TString;
identityId: TString;
legacyId: TOptional<TString>;
metadata: TOptional<TRecord<(...), (...)>>;
quote: TOptional<TObject<(...)>>;
reference: TString;
retailerId: TString;
retailerName: TString;
status: TUnsafe<
(...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...),
>;
updatedAt: TString;
wallet: TObject<{ address: ...; blockchain: ... }>;
},
>,
>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Search Cash Deposit Request";
tags: readonly ["Cash"];
};
post: {
body: TObject<
{
amount: TOptional<
TObject<{ amount: TNumber; currency: TLiteral<"USD"> }>,
>;
amountOut: TOptional<
TObject<{ amount: TNumber; currency: TUnsafe<"USDC" | "MOVEUSD"> }>,
>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TObject<
{ lat: TNumber; long: TNumber; source: TLiteral<"ip"> },
>;
identityId: TString;
metadata: TOptional<TRecord<"^.*$", TAny>>;
reference: TString;
retailerId: TString;
targetCurrency: TOptional<TUnsafe<"USDC" | "MOVEUSD">>;
user: TIntersect<
[
TObject<
{
address: TOptional<TString>;
firstName: TString;
lastName: TString;
},
>,
TObject<{ zipcode: TOptional<TString> }>,
],
>;
wallet: TObject<{ address: TString; blockchain: TLiteral<"SOLANA"> }>;
},
>;
description: "Create a cash deposit request to enable a nominated identity to subsequently deposit cash at a specified retailer.\n\nThis endpoint triggers a workflow which orchestrates the deposit of funds at a nominated retailer. To initiate the workflow this endpoint requires:\n\n- `retailerId` to be provided.\n- `identityId` of the end user making the deposit.\n- Nomination of a `targetWallet` where deposited funds will subsequently be transferred.\n\nThe endpoint will return generated deposit request details with a `barcodeNumber` which can then be rendered and presented by the user at the retailer.\n\nThis barcode will allow the retailer to correlate user's visit with the registered cash deposit. When notification of a successful payment arrives from the retailer a Deposit entry is created within our systems.";
response: {
"200": TObject<
{
barcodeNumber: TString;
createdAt: TString;
depositId: TOptional<TString>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TOptional<
TObject<{ lat: TNumber; long: TNumber; source: TLiteral<"ip"> }>,
>;
expiresAt: TString;
id: TString;
identityId: TString;
legacyId: TOptional<TString>;
metadata: TOptional<TRecord<"^.*$", TAny>>;
quote: TOptional<
TObject<
{
amountIn: TObject<{ amount: ...; currency: ... }>;
amountOut: TObject<{ amount: ...; currency: ... }>;
fees: TArray<TObject<(...)>>;
},
>,
>;
reference: TString;
retailerId: TString;
retailerName: TString;
status: TUnsafe<
| "CREATED"
| "PENDING"
| "EXPIRED"
| "CANCELLED"
| "CONSUMED"
| "VOIDED"
| "DECLINED",
>;
updatedAt: TString;
wallet: TObject<{ address: TString; blockchain: TLiteral<"SOLANA"> }>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Create Cash Deposit Request";
tags: readonly ["Cash"];
};
};
"/v1/deposit/cash/{id}": {
get: {
description: "Retrieve a previously submitted cash deposit request.";
params: TObject<{ id: TString }>;
response: {
"200": TIntersect<
[
TObject<
{
createdAt: TString;
depositId: TOptional<TString>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TOptional<
TObject<{ lat: ...; long: ...; source: ... }>,
>;
id: TString;
legacyId: TOptional<TString>;
reference: TString;
updatedAt: TString;
wallet: TObject<{ address: TString; blockchain: TLiteral<(...)> }>;
},
>,
TObject<
{
barcodeNumber: TString;
expiresAt: TString;
id: TString;
identityId: TString;
metadata: TOptional<TRecord<"^.*$", TAny>>;
quote: TOptional<
TObject<{ amountIn: ...; amountOut: ...; fees: ... }>,
>;
retailerId: TString;
retailerName: TString;
status: TUnsafe<
| "CREATED"
| "PENDING"
| "EXPIRED"
| "CANCELLED"
| "CONSUMED"
| "VOIDED"
| "DECLINED",
>;
user: TObject<
{
address: TOptional<(...)>;
firstName: TString;
lastName: TString;
zipcode: TString;
},
>;
},
>,
],
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
"404": TObject<
{
code: TLiteral<"notFound">;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Get Cash Deposit Request";
tags: readonly ["Cash"];
};
};
"/v1/deposit/cash/{id}/cancel": {
post: {
description: "Cancel a cash deposit request. Note that this endpoint can only be utilised before the user payment at a retailer has been successfully completed.";
params: TObject<{ id: TString }>;
response: {
"200": TObject<{ id: TString }>;
"400": TObject<
{ code: TLiteral<"DEPOSIT_ALREADY_PROCESSED">; message: TString },
>;
"404": TObject<{ code: TLiteral<"NOT_FOUND">; message: TString }>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Cancel Cash Deposit Request";
tags: readonly ["Cash"];
};
};
"/v1/deposit/cash/location": {
get: {
description: "Search for nearest cash deposit locations based on a provided zipcode or latitude and longitude pair.\n\nThis endpoint will expect either a single zipcode query parameter or both the latitude and longitude parameters to be populated.";
querystring: TIntersect<
[
TUnion<
[
TObject<{ zipcode: TString }>,
TObject<{ latitude: TString; longitude: TString }>,
],
>,
TObject<{ page: TOptional<TNumber>; pageSize: TOptional<TNumber> }>,
],
>;
response: {
"200": TObject<
{
page: TNumber;
pageSize: TNumber;
results: TArray<
TObject<
{
address: TString;
city: TString;
latitude: TString;
locationId: TString;
longitude: TString;
phone: TString;
retailerId: TString;
retailerName: TString;
state: TString;
zipcode: TString;
},
>,
>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Search Cash Deposit Locations";
tags: readonly ["Cash"];
};
};
"/v1/deposit/cash/retailer": {
get: {
description: "Retrieve the list of retailers within the CFX Network that will accept cash deposits.";
response: {
"200": TObject<
{
results: TArray<
TObject<
{
enabled: TOptional<TBoolean>;
id: TString;
name: TString;
providerDescription: TOptional<TString>;
providerName: TOptional<TString>;
slug: TOptional<TString>;
},
>,
>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Get Cash Deposit Retailers";
tags: readonly ["Cash"];
};
};
} = ...
Type Declaration
Readonly/v1/deposit/cash: {
get: {
description: "Search cash deposits requests for a given `identityId`.\nThe `identityId` query parameter is mandatory. Deposits can be further filtered by populating the `status` and `reference` parameters.\n\nNote that cash deposits requests will result in the creation of a Deposit once the user has presented the barcode and successfully made payment at a retailer.";
querystring: TObject<
{
identityId: TString;
reference: TOptional<TString>;
status: TOptional<TString>;
},
>;
response: {
"200": TObject<
{
results: TArray<
TObject<
{
barcodeNumber: TString;
createdAt: TString;
depositId: TOptional<TString>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TOptional<TObject<(...)>>;
expiresAt: TString;
id: TString;
identityId: TString;
legacyId: TOptional<TString>;
metadata: TOptional<TRecord<(...), (...)>>;
quote: TOptional<TObject<(...)>>;
reference: TString;
retailerId: TString;
retailerName: TString;
status: TUnsafe<
(...)
| (...)
| (...)
| (...)
| (...)
| (...)
| (...),
>;
updatedAt: TString;
wallet: TObject<{ address: ...; blockchain: ... }>;
},
>,
>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Search Cash Deposit Request";
tags: readonly ["Cash"];
};
post: {
body: TObject<
{
amount: TOptional<
TObject<{ amount: TNumber; currency: TLiteral<"USD"> }>,
>;
amountOut: TOptional<
TObject<{ amount: TNumber; currency: TUnsafe<"USDC" | "MOVEUSD"> }>,
>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TObject<
{ lat: TNumber; long: TNumber; source: TLiteral<"ip"> },
>;
identityId: TString;
metadata: TOptional<TRecord<"^.*$", TAny>>;
reference: TString;
retailerId: TString;
targetCurrency: TOptional<TUnsafe<"USDC" | "MOVEUSD">>;
user: TIntersect<
[
TObject<
{
address: TOptional<TString>;
firstName: TString;
lastName: TString;
},
>,
TObject<{ zipcode: TOptional<TString> }>,
],
>;
wallet: TObject<{ address: TString; blockchain: TLiteral<"SOLANA"> }>;
},
>;
description: "Create a cash deposit request to enable a nominated identity to subsequently deposit cash at a specified retailer.\n\nThis endpoint triggers a workflow which orchestrates the deposit of funds at a nominated retailer. To initiate the workflow this endpoint requires:\n\n- `retailerId` to be provided.\n- `identityId` of the end user making the deposit.\n- Nomination of a `targetWallet` where deposited funds will subsequently be transferred.\n\nThe endpoint will return generated deposit request details with a `barcodeNumber` which can then be rendered and presented by the user at the retailer.\n\nThis barcode will allow the retailer to correlate user's visit with the registered cash deposit. When notification of a successful payment arrives from the retailer a Deposit entry is created within our systems.";
response: {
"200": TObject<
{
barcodeNumber: TString;
createdAt: TString;
depositId: TOptional<TString>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TOptional<
TObject<{ lat: TNumber; long: TNumber; source: TLiteral<"ip"> }>,
>;
expiresAt: TString;
id: TString;
identityId: TString;
legacyId: TOptional<TString>;
metadata: TOptional<TRecord<"^.*$", TAny>>;
quote: TOptional<
TObject<
{
amountIn: TObject<{ amount: ...; currency: ... }>;
amountOut: TObject<{ amount: ...; currency: ... }>;
fees: TArray<TObject<(...)>>;
},
>,
>;
reference: TString;
retailerId: TString;
retailerName: TString;
status: TUnsafe<
| "CREATED"
| "PENDING"
| "EXPIRED"
| "CANCELLED"
| "CONSUMED"
| "VOIDED"
| "DECLINED",
>;
updatedAt: TString;
wallet: TObject<{ address: TString; blockchain: TLiteral<"SOLANA"> }>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Create Cash Deposit Request";
tags: readonly ["Cash"];
};
}
Readonly/v1/deposit/cash/{id}: {
get: {
description: "Retrieve a previously submitted cash deposit request.";
params: TObject<{ id: TString }>;
response: {
"200": TIntersect<
[
TObject<
{
createdAt: TString;
depositId: TOptional<TString>;
deviceIpAddress: TOptional<TString>;
deviceLocation: TOptional<
TObject<{ lat: ...; long: ...; source: ... }>,
>;
id: TString;
legacyId: TOptional<TString>;
reference: TString;
updatedAt: TString;
wallet: TObject<{ address: TString; blockchain: TLiteral<(...)> }>;
},
>,
TObject<
{
barcodeNumber: TString;
expiresAt: TString;
id: TString;
identityId: TString;
metadata: TOptional<TRecord<"^.*$", TAny>>;
quote: TOptional<
TObject<{ amountIn: ...; amountOut: ...; fees: ... }>,
>;
retailerId: TString;
retailerName: TString;
status: TUnsafe<
| "CREATED"
| "PENDING"
| "EXPIRED"
| "CANCELLED"
| "CONSUMED"
| "VOIDED"
| "DECLINED",
>;
user: TObject<
{
address: TOptional<(...)>;
firstName: TString;
lastName: TString;
zipcode: TString;
},
>;
},
>,
],
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
"404": TObject<
{
code: TLiteral<"notFound">;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Get Cash Deposit Request";
tags: readonly ["Cash"];
};
}
Readonly/v1/deposit/cash/{id}/cancel: {
post: {
description: "Cancel a cash deposit request. Note that this endpoint can only be utilised before the user payment at a retailer has been successfully completed.";
params: TObject<{ id: TString }>;
response: {
"200": TObject<{ id: TString }>;
"400": TObject<
{ code: TLiteral<"DEPOSIT_ALREADY_PROCESSED">; message: TString },
>;
"404": TObject<{ code: TLiteral<"NOT_FOUND">; message: TString }>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Cancel Cash Deposit Request";
tags: readonly ["Cash"];
};
}
Readonly/v1/deposit/cash/location: {
get: {
description: "Search for nearest cash deposit locations based on a provided zipcode or latitude and longitude pair.\n\nThis endpoint will expect either a single zipcode query parameter or both the latitude and longitude parameters to be populated.";
querystring: TIntersect<
[
TUnion<
[
TObject<{ zipcode: TString }>,
TObject<{ latitude: TString; longitude: TString }>,
],
>,
TObject<{ page: TOptional<TNumber>; pageSize: TOptional<TNumber> }>,
],
>;
response: {
"200": TObject<
{
page: TNumber;
pageSize: TNumber;
results: TArray<
TObject<
{
address: TString;
city: TString;
latitude: TString;
locationId: TString;
longitude: TString;
phone: TString;
retailerId: TString;
retailerName: TString;
state: TString;
zipcode: TString;
},
>,
>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Search Cash Deposit Locations";
tags: readonly ["Cash"];
};
}
Readonly/v1/deposit/cash/retailer: {
get: {
description: "Retrieve the list of retailers within the CFX Network that will accept cash deposits.";
response: {
"200": TObject<
{
results: TArray<
TObject<
{
enabled: TOptional<TBoolean>;
id: TString;
name: TString;
providerDescription: TOptional<TString>;
providerName: TOptional<TString>;
slug: TOptional<TString>;
},
>,
>;
},
>;
"400": TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
default: TObject<
{
code: TString;
details: TOptional<TRecord<"^.*$", TAny>>;
message: TString;
},
>;
};
summary: "Get Cash Deposit Retailers";
tags: readonly ["Cash"];
};
}