Transfer Attributes
Attribute | Type | Definition | Example |
---|---|---|---|
id | UUID | unique id of the transfer | |
state | String | see above for states and definitions | processing |
user | UserAccount | user object | { ... } |
beneficiary | Beneficiary | beneficiary object | { ... } |
entity | Entity | entity object | { ... } |
fee | String | fee of transfer in source currency | 1.50 |
source_amount | String | numerical amount of the currency funding the payment | 100.00 |
source_currency | String | 3 character code of currency funding the payment | USD |
destination_amount | String | numerical amount of currency sent to beneficiary | 2000.00 |
destination_currency | String | 3 character code of currency sent to beneficiary | MXN |
purpose_of_payment | String | free form text describing purpose of the payment | Contractor services |
rate | String | the forward rate of the trade used to convert funds | 20.00000 |
reference | String | free form text memo on payment which can be read by beneficiary | Invoice-001 |
created_date | DateTime | date & time the record was created | 2021-04-02 00:00:00 |
expected_delivery_date | DateTime | date the receiving bank is expected to receive the funds | 2021-04-04 00:00:00 |
error | String | if the transfer was returned or failed, this might show a returning/failing reason | The transaction is rejected as the beneficiary is blacklisted. |
funding_instructions | FundingInstructions | bank details to fund wallet for transfer | { ... } |
GraphQL
enum TransferStates {
accepted
finalized
initiated
processing
sent
completed
failed
returned
canceled
scheduled
in_review
}
enum IncomingTransferPurposeOfPayment {
corporate_payment
marketplace
professional_services
payroll
expenses_reimbursement
representation_expenses
hired_personnel
trainees_scholarships
productivity_or_quality_prizes
lay_off_payment
family_support
education
gift_and_other_donations
medical_treatment
maintenance_or_other_expenses
car_driver
software_license
hotel_accommodation
advertising_and_or_public_relations_related_expenses
fees_for_advisory_or_consulting_service
business_related_insurance_payment
insurance_claims_payment
delivery_fees
payments_for_exported_goods
payment_of_loans
residential_property_purchase
property_rental_payment
royalty_trademark_patent_and_copyright_fees
investment_in_shares
fund_investment
tuition_fees
transportation_fees
utility_bills
personal_transfer
payment_of_salary
other_purposes
remittances
freelancer_payment
}
type Transfer {
id: UUID!
state: TransferStates! # see States section for values and descriptions
user: UserAccount!
creator: UserAccount!
beneficiary: Beneficiary!
entity: Entity!
fee: String
source_amount: String
source_currency: ISO4217!
destination_amount: String
destination_currency: ISO4217!
purpose_of_payment: String!
rate: String
reference: String
created_date: DateTime
expected_delivery_date: DateTime
funding_instructions: FundingInstructions
wallet: Wallet
is_scheduled: Boolean
scheduled_delivery_date: DateTime
error: String
}
type TransferQuote {
rate: String!
inverted_rate: String!
source_amount: String
destination_amount: String
source_currency: ISO4217!
destination_currency: ISO4217!
fee: String
}
type TransferReceipt {
transfer_id: UUID!
link: String
link_expiration: DateTime
includes_tracking: Boolean
}
type IncomingTransferAccount {
id: UUID!
organization_id: UUID
entity: Entity
wallet: Wallet
currency: ISO4217
account_number: BankAccountNumber
name_on_bank_account: String
nicename_on_bank_account: String
bank_name: String
state: IncomingTransferState
tax_id: TaxNumber
purpose_of_payment: IncomingTransferPurposeOfPayment
updated_date: DateTime
country_code: String
tax_code: String
remittance_info: String
reference: String
}
type IncomingTransfer {
id: UUID
uuid: UUID
organization_id: UUID
entity_id: UUID
wallet_id: UUID
currency: ISO4217
credit: Boolean
debit: Boolean
amount: String!
transaction_date: DateTime
remittance_info: String
reference: String
counterparty_name: String
account_number: BankAccountNumber
name_on_bank_account: String
nicename_on_bank_account: String
state: IncomingTransferState
tax_id: TaxNumber
purpose_of_payment: IncomingTransferPurposeOfPayment
updated_date: DateTime
incoming_transfer_account: IncomingTransferAccount
virtual_account_name: String
created_date: DateTime
incoming_transfer_account_id: UUID
incoming_transfer_account_name_on_bank_account: String
incoming_transfer_account_bank_name: String
}
type SubAccount {
id: UUID
created_date: DateTime
organization_id: UUID
entity: Entity
currency: ISO4217
balance: String
available_balance: String
account_name: String
client_friendly_name: String
account_number: String
master_account_number: String
updated_date: DateTime
state: String
funding_instructions: FundingInstructions
}
enum IncomingTransferState {
accepted
awaiting_funds
complete
canceled
declined
}
type Query {
# get transfer
transfer(
transfer_id: UUID!
): Transfer
# get all transfers for an organization
transfers(
search_terms: String # optional
listFilter: ListFilter
): [Transfer]
transferReceipt(
transfer_id: UUID!
): TransferReceipt
subAccount(
sub_account_id: UUID!
): SubAccount
}
type Mutation {
# create transfer
createTransfer(
user_id: UUID!
# must be verified
entity_id: UUID!
source_amount: String
wallet_id: UUID
destination_amount: String
beneficiary_id: UUID!
purpose_of_payment: String!
reference: String
): UUID
createScheduledTransfer(
user_id: UUID
# must be verified
entity_id: UUID!
source_amount: String
wallet_id: UUID
destination_amount: String
beneficiary_id: UUID!
purpose_of_payment: String!
reference: String
scheduled_delivery_date: DateTime
): UUID
# update transfer
updateTransfer(
transfer_id: UUID!
user_id: UUID!
entity_id: UUID # must be verified
source_currency: ISO4217
wallet_id: UUID
beneficiary_id: UUID
purpose_of_payment: String
reference: String
): UUID @verified
# get rate for transfer. This step can be skipped
getTransferQuote(
transfer_id: UUID!
# you can use this to update the source amount after create
source_amount: String
# you can use this to update the destination amount after create
destination_amount: String
): TransferQuote
# finalize transfer. Rate will automatically be set if getTransferQuote was not used
finalizeTransfer(transfer_id: UUID!): UUID
# required before incoming transfer can be initiated
createIncomingTransferAccount(
entity_id: UUID!
wallet_id: UUID!
currency: ISO4217!
account_number: BankAccountNumber!
account_type: String
name_on_bank_account: String!
nicename_on_bank_account: String
bank_name: String!
bank_code: String!
state: IncomingTransferState
tax_id: TaxNumber!
purpose_of_payment: IncomingTransferPurposeOfPayment
remittance_info: String
reference: String
account_number_type: String,
email: String!
): UUID
createIncomingTransfer(
amount: String!
incoming_transfer_account_id: UUID!
purpose_of_payment: IncomingTransferPurposeOfPayment
remittance_info: String
reference: String
): UUID
}