gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-merchant-backoffice] branch master updated: search trasnfer form


From: gnunet
Subject: [taler-merchant-backoffice] branch master updated: search trasnfer form
Date: Thu, 06 May 2021 15:46:10 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository merchant-backoffice.

The following commit(s) were added to refs/heads/master by this push:
     new ba158c9  search trasnfer form
ba158c9 is described below

commit ba158c9c1671e07dd521a86abb58195fcb414cc6
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Wed May 5 15:31:24 2021 -0300

    search trasnfer form
---
 packages/frontend/src/InstanceRoutes.tsx           |   2 +-
 .../frontend/src/components/form/InputBoolean.tsx  |   1 -
 .../src/components/form/InputSearchProduct.tsx     |   4 +-
 .../frontend/src/components/form/InputSelector.tsx |   4 +-
 .../frontend/src/components/menu/LangSelector.tsx  |   6 +-
 packages/frontend/src/hooks/transfer.ts            | 105 +++-
 packages/frontend/src/i18n/de.po                   | 393 ++++++------
 packages/frontend/src/i18n/en.po                   | 393 ++++++------
 packages/frontend/src/i18n/es.po                   | 393 ++++++------
 packages/frontend/src/i18n/fr.po                   | 393 ++++++------
 packages/frontend/src/i18n/it.po                   | 393 ++++++------
 packages/frontend/src/i18n/strings.ts              | 670 +++++++++++++++------
 packages/frontend/src/i18n/sv.po                   | 393 ++++++------
 .../src/i18n/taler-merchant-backoffice.pot         | 393 ++++++------
 .../paths/instance/transfers/create/CreatePage.tsx |  10 +-
 .../src/paths/instance/transfers/list/Table.tsx    |  23 +-
 .../src/paths/instance/transfers/list/index.tsx    |  76 ++-
 packages/frontend/src/utils/constants.ts           |   4 +
 18 files changed, 2221 insertions(+), 1435 deletions(-)

diff --git a/packages/frontend/src/InstanceRoutes.tsx 
b/packages/frontend/src/InstanceRoutes.tsx
index a6267d7..6da3e78 100644
--- a/packages/frontend/src/InstanceRoutes.tsx
+++ b/packages/frontend/src/InstanceRoutes.tsx
@@ -244,8 +244,8 @@ export function InstanceRoutes({ id, admin }: Props): VNode 
{
        */}
       <Route path={InstancePaths.transfers_list} component={TransferListPage}
         onUnauthorized={LoginPageAccessDenied}
-        onLoadError={ServerErrorRedirectTo(InstancePaths.update)}
         onNotFound={IfAdminCreateDefaultOr(NotFoundPage)}
+        onLoadError={ServerErrorRedirectTo(InstancePaths.update)}
         onCreate={() => { route(InstancePaths.transfers_new) }}
       />
 
diff --git a/packages/frontend/src/components/form/InputBoolean.tsx 
b/packages/frontend/src/components/form/InputBoolean.tsx
index f5e0648..2771fe4 100644
--- a/packages/frontend/src/components/form/InputBoolean.tsx
+++ b/packages/frontend/src/components/form/InputBoolean.tsx
@@ -61,7 +61,6 @@ export function InputBoolean<T>({ name, readonly, 
placeholder, tooltip, label, h
               placeholder={placeholder} readonly={readonly}
               name={String(name)} disabled={readonly}
               onChange={onCheckboxClick} />
-
             <span class="check" />
           </label>
           {help}
diff --git a/packages/frontend/src/components/form/InputSearchProduct.tsx 
b/packages/frontend/src/components/form/InputSearchProduct.tsx
index 2764512..dafb78a 100644
--- a/packages/frontend/src/components/form/InputSearchProduct.tsx
+++ b/packages/frontend/src/components/form/InputSearchProduct.tsx
@@ -115,7 +115,7 @@ function ProductList({ name, onSelect }: ProductListProps) {
           <div class="dropdown-item" >
             <Translate>no results</Translate>
           </div> :
-          result.data.filter(p => re.test(p.id) || 
re.test(p.description)).map(p => (
+          filtered.map(p => (
             <div key={p.id} class="dropdown-item" onClick={() => onSelect(p)} 
style={{ cursor: 'pointer' }}>
               <table>
                 <tr>
@@ -136,4 +136,4 @@ function ProductList({ name, onSelect }: ProductListProps) {
       {products}
     </div>
   </div>
-}
\ No newline at end of file
+}
diff --git a/packages/frontend/src/components/form/InputSelector.tsx 
b/packages/frontend/src/components/form/InputSelector.tsx
index 793f3fa..eab6551 100644
--- a/packages/frontend/src/components/form/InputSelector.tsx
+++ b/packages/frontend/src/components/form/InputSelector.tsx
@@ -51,9 +51,9 @@ export function InputSelector<T>({ name, readonly, expand, 
placeholder, tooltip,
           <select class={error ? "select is-danger" : "select"}
             name={String(name)} disabled={readonly} readonly={readonly}
             onChange={(e) => { onChange(fromStr(e.currentTarget.value)) }}>
-            <option>{placeholder}</option>
+            {placeholder && <option>{placeholder}</option>}
             {values
-              .map((v, i) => <option key={i} 
value={toStr(v)}>{toStr(v)}</option>)}
+              .map((v, i) => <option key={i} value={toStr(v)} selected={value 
=== toStr(v)}>{toStr(v)}</option>)}
           </select>
           {help}
         </p>
diff --git a/packages/frontend/src/components/menu/LangSelector.tsx 
b/packages/frontend/src/components/menu/LangSelector.tsx
index e8cd38e..bf61bd2 100644
--- a/packages/frontend/src/components/menu/LangSelector.tsx
+++ b/packages/frontend/src/components/menu/LangSelector.tsx
@@ -32,10 +32,14 @@ type LangsNames = {
 const names: LangsNames = {
   es: 'Español [es]',
   en: 'English [en]',
+  fr: 'Français [fr]',
+  de: 'Deutsch [de]',
+  sv: 'Svenska [sv]',
+  it: 'Italiano [it]',
 }
 
 function getLangName(s: keyof LangsNames | string) {
-  if (s === 'es' || s === 'en') return names[s]
+  if (names[s]) return names[s]
   return s
 }
 
diff --git a/packages/frontend/src/hooks/transfer.ts 
b/packages/frontend/src/hooks/transfer.ts
index 3440678..def92c4 100644
--- a/packages/frontend/src/hooks/transfer.ts
+++ b/packages/frontend/src/hooks/transfer.ts
@@ -15,15 +15,30 @@
  */
 import { MerchantBackend } from '../declaration';
 import { useBackendContext } from '../context/backend';
-import { request, mutateAll, HttpResponse, HttpError, HttpResponseOk } from 
'./backend';
+import { request, mutateAll, HttpResponse, HttpError, HttpResponseOk, 
HttpResponsePaginated } from './backend';
 import useSWR from 'swr';
 import { useInstanceContext } from '../context/instance';
+import { MAX_RESULT_SIZE, PAGE_SIZE } from '../utils/constants';
+import { useEffect, useState } from 'preact/hooks';
 
-async function transferFetcher<T>(url: string, token: string, backend: 
string): Promise<HttpResponseOk<T>> {
-  return request<T>(`${backend}${url}`, { token, params: {  } })
+async function transferFetcher<T>(url: string, token: string, backend: string, 
payto_uri?: string, verified?: string, position?: string, delta?: number): 
Promise<HttpResponseOk<T>> {
+  const params: any = {}
+  if (payto_uri !== undefined) params.payto_uri = payto_uri
+  if (verified !== undefined) params.verified = verified
+  if (delta !== undefined) {
+    // if (delta > 0) {
+    //   params.after = searchDate?.getTime()
+    // } else {
+    //   params.before = searchDate?.getTime()
+    // }
+    params.limit = delta
+  }
+  if (position !== undefined) params.offset = position
+
+  return request<T>(`${backend}${url}`, { token, params })
 }
 
-export function useTransferAPI(): TransferMutateAPI {
+export function useTransferAPI(): TransferAPI {
   const { url: baseUrl, token: adminToken } = useBackendContext();
   const { token: instanceToken, id, admin } = useInstanceContext();
 
@@ -35,7 +50,7 @@ export function useTransferAPI(): TransferMutateAPI {
 
   const informTransfer = async (data: 
MerchantBackend.Transfers.TransferInformation): 
Promise<HttpResponseOk<MerchantBackend.Transfers.MerchantTrackTransferResponse>>
 => {
     mutateAll(/@"\/private\/transfers"@/);
-    
+
     return 
request<MerchantBackend.Transfers.MerchantTrackTransferResponse>(`${url}/private/transfers`,
 {
       method: 'post',
       token,
@@ -46,11 +61,18 @@ export function useTransferAPI(): TransferMutateAPI {
   return { informTransfer };
 }
 
-export interface TransferMutateAPI {
+export interface TransferAPI {
   informTransfer: (data: MerchantBackend.Transfers.TransferInformation) => 
Promise<HttpResponseOk<MerchantBackend.Transfers.MerchantTrackTransferResponse>>;
 }
 
-export function useInstanceTransfers(): 
HttpResponse<MerchantBackend.Transfers.TransferList> {
+export interface InstanceTransferFilter {
+  payto_uri?: string;
+  verified?: 'yes' | 'no';
+  position?: string;
+}
+
+
+export function useInstanceTransfers(args?: InstanceTransferFilter, 
updatePosition?: (id: string) => void): 
HttpResponsePaginated<MerchantBackend.Transfers.TransferList> {
   const { url: baseUrl, token: baseToken } = useBackendContext();
   const { token: instanceToken, id, admin } = useInstanceContext();
 
@@ -60,12 +82,71 @@ export function useInstanceTransfers(): 
HttpResponse<MerchantBackend.Transfers.T
     url: `${baseUrl}/instances/${id}`, token: instanceToken
   }
 
-  const { data, error, isValidating } = 
useSWR<HttpResponseOk<MerchantBackend.Transfers.TransferList>, 
HttpError>([`/private/transfers`, token, url], transferFetcher)
+  const [pageBefore, setPageBefore] = useState(1)
+  const [pageAfter, setPageAfter] = useState(1)
+
+  const totalAfter = pageAfter * PAGE_SIZE;
+  const totalBefore = args?.position !== undefined ? pageBefore * PAGE_SIZE : 
0;
 
-  if (isValidating) return {loading:true, data: data?.data}
-  if (data) return data
-  if (error) return error
-  return {loading: true}
+  /**
+   * FIXME: this can be cleaned up a little
+   * 
+   * the logic of double query should be inside the orderFetch so from the 
hook perspective and cache
+   * is just one query and one error status
+   */
+  const { data: beforeData, error: beforeError, isValidating: loadingBefore } 
= useSWR<HttpResponseOk<MerchantBackend.Transfers.TransferList>, HttpError>(
+    [`/private/transfers`, token, url, args?.payto_uri, args?.verified, 
args?.position, totalBefore],
+    transferFetcher,
+  )
+  const { data: afterData, error: afterError, isValidating: loadingAfter } = 
useSWR<HttpResponseOk<MerchantBackend.Transfers.TransferList>, HttpError>(
+    [`/private/transfers`, token, url, args?.payto_uri, args?.verified, 
args?.position, -totalAfter],
+    transferFetcher,
+  )
+
+  //this will save last result
+  const [lastBefore, setLastBefore] = 
useState<HttpResponse<MerchantBackend.Transfers.TransferList>>({ loading: true 
})
+  const [lastAfter, setLastAfter] = 
useState<HttpResponse<MerchantBackend.Transfers.TransferList>>({ loading: true 
})
+  useEffect(() => {
+    if (afterData) setLastAfter(afterData)
+    if (beforeData) setLastBefore(beforeData)
+  }, [afterData, beforeData])
+
+  // this has problems when there are some ids missing
+
+  if (beforeError) return beforeError
+  if (afterError) return afterError
+
+  const pagination = {
+    isReachingEnd: afterData && afterData.data.transfers.length < totalAfter,
+    isReachingStart: (!args?.position) || (beforeData && 
beforeData.data.transfers.length < totalBefore),
+    loadMore: () => {
+      if (!afterData) return
+      if (afterData.data.transfers.length < MAX_RESULT_SIZE) {
+        setPageAfter(pageAfter + 1)
+      } else {
+        const from = 
""+afterData.data.transfers[afterData.data.transfers.length - 
1].transfer_serial_id
+        console.log('load more', from)
+        if (from && updatePosition) updatePosition(from)
+      }
+    },
+    loadMorePrev: () => {
+      console.log('load more prev')
+      if (!beforeData) return
+      if (beforeData.data.transfers.length < MAX_RESULT_SIZE) {
+        setPageBefore(pageBefore + 1)
+      } else if (beforeData) {
+        const from = 
""+beforeData.data.transfers[beforeData.data.transfers.length - 
1].transfer_serial_id
+        if (from && updatePosition) updatePosition(from)
+      }
+    },
+  }
+
+  const transfers = !beforeData || !afterData ? [] : (beforeData || 
lastBefore).data.transfers.slice().reverse().concat((afterData || 
lastAfter).data.transfers)
+  if (loadingAfter || loadingBefore) return { loading: true, data: { transfers 
} }
+  if (beforeData && afterData) {
+    return { ok: true, data: { transfers }, ...pagination }
+  }
+  return { loading: true }
 }
 
 
diff --git a/packages/frontend/src/i18n/de.po b/packages/frontend/src/i18n/de.po
index 694798f..6b35bd0 100644
--- a/packages/frontend/src/i18n/de.po
+++ b/packages/frontend/src/i18n/de.po
@@ -27,14 +27,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr ""
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr ""
@@ -49,33 +49,33 @@ msgstr ""
 msgid "Could not infer instance id from url %1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr ""
@@ -93,13 +93,14 @@ msgid ""
 msgstr ""
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr ""
@@ -121,6 +122,7 @@ msgid "clear"
 msgstr ""
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr ""
@@ -130,6 +132,59 @@ msgstr ""
 msgid "Image should be smaller than 1 MB"
 msgstr ""
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:38
+#, c-format
+msgid "Town location"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr ""
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, c-format
 msgid "Product id"
@@ -146,10 +201,9 @@ msgstr ""
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr ""
@@ -190,183 +244,82 @@ msgid "Update"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -376,6 +329,7 @@ msgstr ""
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr ""
@@ -408,14 +362,14 @@ msgid "Orders"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr ""
@@ -482,8 +436,8 @@ msgid "Clearing the auth token will mean public access to 
the instance"
 msgstr ""
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr ""
@@ -542,51 +496,51 @@ msgstr ""
 msgid "Unexpected Error"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr ""
@@ -597,6 +551,7 @@ msgid "could not create instance"
 msgstr ""
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, c-format
 msgid "Delete"
 msgstr ""
@@ -612,33 +567,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, c-format
 msgid "Net"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -646,57 +601,57 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, c-format
 msgid "Location"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr ""
@@ -1004,7 +959,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, c-format
+msgid "Transfer ID"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, c-format
+msgid "Account Address"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr ""
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, c-format
+msgid "could not inform transfer"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, c-format
+msgid "load newer transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, c-format
+msgid "Confirmed"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, c-format
+msgid "Executed at"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, c-format
+msgid "load older transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr ""
diff --git a/packages/frontend/src/i18n/en.po b/packages/frontend/src/i18n/en.po
index 694798f..6b35bd0 100644
--- a/packages/frontend/src/i18n/en.po
+++ b/packages/frontend/src/i18n/en.po
@@ -27,14 +27,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr ""
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr ""
@@ -49,33 +49,33 @@ msgstr ""
 msgid "Could not infer instance id from url %1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr ""
@@ -93,13 +93,14 @@ msgid ""
 msgstr ""
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr ""
@@ -121,6 +122,7 @@ msgid "clear"
 msgstr ""
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr ""
@@ -130,6 +132,59 @@ msgstr ""
 msgid "Image should be smaller than 1 MB"
 msgstr ""
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:38
+#, c-format
+msgid "Town location"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr ""
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, c-format
 msgid "Product id"
@@ -146,10 +201,9 @@ msgstr ""
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr ""
@@ -190,183 +244,82 @@ msgid "Update"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -376,6 +329,7 @@ msgstr ""
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr ""
@@ -408,14 +362,14 @@ msgid "Orders"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr ""
@@ -482,8 +436,8 @@ msgid "Clearing the auth token will mean public access to 
the instance"
 msgstr ""
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr ""
@@ -542,51 +496,51 @@ msgstr ""
 msgid "Unexpected Error"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr ""
@@ -597,6 +551,7 @@ msgid "could not create instance"
 msgstr ""
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, c-format
 msgid "Delete"
 msgstr ""
@@ -612,33 +567,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, c-format
 msgid "Net"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -646,57 +601,57 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, c-format
 msgid "Location"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr ""
@@ -1004,7 +959,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, c-format
+msgid "Transfer ID"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, c-format
+msgid "Account Address"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr ""
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, c-format
+msgid "could not inform transfer"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, c-format
+msgid "load newer transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, c-format
+msgid "Confirmed"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, c-format
+msgid "Executed at"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, c-format
+msgid "load older transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr ""
diff --git a/packages/frontend/src/i18n/es.po b/packages/frontend/src/i18n/es.po
index f58de31..9075d46 100644
--- a/packages/frontend/src/i18n/es.po
+++ b/packages/frontend/src/i18n/es.po
@@ -27,14 +27,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr "Acceso denegado"
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr "Verifica que el token sea valido"
@@ -49,33 +49,33 @@ msgstr "No se pudo acceder al servidor"
 msgid "Could not infer instance id from url %1$s"
 msgstr "No se pudo inferir el id de la instancia con la url %1$s"
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr "HTTP status #%1$s: Servidor reporto un problema"
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, fuzzy, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr "Recivimos el mensaje %1$s desde %2$s"
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr "Sin instancia default"
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr "para usar el merchant backoffice, debería crear la instancia default"
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr "Servidir reporto un problema: HTTP status #%1$s"
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, fuzzy, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr "Recivimos el mensaje %1$s desde %2$s"
@@ -95,13 +95,14 @@ msgstr ""
 "token\" y comenzar con Bearer o ApiKey"
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr "Confirmar"
@@ -123,6 +124,7 @@ msgid "clear"
 msgstr "Limpiar"
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr "nunca"
@@ -132,6 +134,59 @@ msgstr "nunca"
 msgid "Image should be smaller than 1 MB"
 msgstr "La imagen debe ser mas chica que 1 MB"
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr "País"
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr "Dirección"
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr "Número de edificio"
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr "Nombre de edificio"
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr "Calle"
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr "Código postal"
+
+#: src/components/form/InputLocation.tsx:38
+#, fuzzy, c-format
+msgid "Town location"
+msgstr "Ubicación de ciudad"
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr "Ciudad"
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr "Distrito"
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr "Provincia"
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, fuzzy, c-format
 msgid "Product id"
@@ -148,10 +203,9 @@ msgstr "Descripcion"
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr "Nombre"
@@ -192,183 +246,82 @@ msgid "Update"
 msgstr "Actualizar"
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr "Eliminar"
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr "Administrar stock"
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr "Inifinito"
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, fuzzy, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr "no puede ser mayor al stock actual %1$s"
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr "stock actual cambiará desde %1$s a %2$s"
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr "stock actual seguirá en %1$s"
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr "Ingresando"
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr "Perdido"
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr "Actual"
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr "sin stock"
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr "Próximo reabastecimiento"
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr "Dirección de entrega"
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr "País"
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr "Dirección"
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr "Número de edificio"
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr "Nombre de edificio"
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr "Calle"
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr "Código postal"
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, fuzzy, c-format
-msgid "Town location"
-msgstr "Ubicación de ciudad"
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr "Ciudad"
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr "Distrito"
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr "Provincia"
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -378,6 +331,7 @@ msgstr "este producto no tiene impuestos"
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr "Monto"
@@ -410,14 +364,14 @@ msgid "Orders"
 msgstr "Ordenes"
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr "Productos"
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr "Transferencias"
@@ -486,8 +440,8 @@ msgstr ""
 "Limpiar el token de autorización significa acceso publico a la instancia"
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr "ID"
@@ -546,51 +500,51 @@ msgstr "Recivimos el mensaje %1$s desde %2$s"
 msgid "Unexpected Error"
 msgstr "Error inesperado"
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr "Token de autorización"
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr "Dirección de cuenta"
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr "Impuesto máximo de deposito por omisión"
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr "Impuesto máximo de transferencia por omisión"
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr "Amortización de impuesto de transferencia por omisión"
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr "Jurisdicción"
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr "Retrazo de pago por omisión"
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr "Retrazo de transferencia por omisión"
@@ -601,6 +555,7 @@ msgid "could not create instance"
 msgstr "no se pudo crear la instancia"
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, fuzzy, c-format
 msgid "Delete"
 msgstr "Borrando"
@@ -616,33 +571,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr "No hay instancias todavían, agregue mas presionando el signo +"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr "Productos de inventario"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr "Precio total"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr "Impuesto total"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr "Precio de la orden"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, fuzzy, c-format
 msgid "Net"
 msgstr "Neto"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -650,57 +605,57 @@ msgstr "Neto"
 msgid "Summary"
 msgstr "Resumen"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr "Opciones de pago"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr "Plazo de reembolso automático"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr "Plazo de reembolso"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr "Plazo de pago"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr "Fecha de entrega"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, fuzzy, c-format
 msgid "Location"
 msgstr "Ubicación"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr "Impuesto máximo"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr "Impuesto de transferencia máximo"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr "Amortización de impuesto de transferencia"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr "URL de completitud"
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr "Información extra"
@@ -1012,7 +967,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr "No hay propinas todavía, agregar mas presionando el signo +"
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr "no puede ser vacío"
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr "verificar el id, no parece válido"
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr "debería tener 52 caracteres, actualmente %1$s"
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr "La URL no tiene el formato correcto"
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, fuzzy, c-format
+msgid "Transfer ID"
+msgstr "Transferencias"
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, fuzzy, c-format
+msgid "Account Address"
+msgstr "Dirección de cuenta"
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr "URL del Exchange"
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, fuzzy, c-format
+msgid "could not inform transfer"
+msgstr "no se pudo crear la instancia"
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, fuzzy, c-format
+msgid "load newer transfers"
+msgstr "cargar nuevas ordenes"
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr "Crédito"
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, fuzzy, c-format
+msgid "Confirmed"
+msgstr "Confirmar"
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr "Verificado"
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, fuzzy, c-format
+msgid "Executed at"
+msgstr "creado"
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr "si"
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr "no"
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr "desconocido"
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, fuzzy, c-format
+msgid "load older transfers"
+msgstr "cargar viejas transferencias"
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr "No hay transferencias todavía, agregar mas presionando el signo +"
diff --git a/packages/frontend/src/i18n/fr.po b/packages/frontend/src/i18n/fr.po
index 694798f..6b35bd0 100644
--- a/packages/frontend/src/i18n/fr.po
+++ b/packages/frontend/src/i18n/fr.po
@@ -27,14 +27,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr ""
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr ""
@@ -49,33 +49,33 @@ msgstr ""
 msgid "Could not infer instance id from url %1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr ""
@@ -93,13 +93,14 @@ msgid ""
 msgstr ""
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr ""
@@ -121,6 +122,7 @@ msgid "clear"
 msgstr ""
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr ""
@@ -130,6 +132,59 @@ msgstr ""
 msgid "Image should be smaller than 1 MB"
 msgstr ""
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:38
+#, c-format
+msgid "Town location"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr ""
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, c-format
 msgid "Product id"
@@ -146,10 +201,9 @@ msgstr ""
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr ""
@@ -190,183 +244,82 @@ msgid "Update"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -376,6 +329,7 @@ msgstr ""
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr ""
@@ -408,14 +362,14 @@ msgid "Orders"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr ""
@@ -482,8 +436,8 @@ msgid "Clearing the auth token will mean public access to 
the instance"
 msgstr ""
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr ""
@@ -542,51 +496,51 @@ msgstr ""
 msgid "Unexpected Error"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr ""
@@ -597,6 +551,7 @@ msgid "could not create instance"
 msgstr ""
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, c-format
 msgid "Delete"
 msgstr ""
@@ -612,33 +567,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, c-format
 msgid "Net"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -646,57 +601,57 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, c-format
 msgid "Location"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr ""
@@ -1004,7 +959,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, c-format
+msgid "Transfer ID"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, c-format
+msgid "Account Address"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr ""
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, c-format
+msgid "could not inform transfer"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, c-format
+msgid "load newer transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, c-format
+msgid "Confirmed"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, c-format
+msgid "Executed at"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, c-format
+msgid "load older transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr ""
diff --git a/packages/frontend/src/i18n/it.po b/packages/frontend/src/i18n/it.po
index 694798f..6b35bd0 100644
--- a/packages/frontend/src/i18n/it.po
+++ b/packages/frontend/src/i18n/it.po
@@ -27,14 +27,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr ""
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr ""
@@ -49,33 +49,33 @@ msgstr ""
 msgid "Could not infer instance id from url %1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr ""
@@ -93,13 +93,14 @@ msgid ""
 msgstr ""
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr ""
@@ -121,6 +122,7 @@ msgid "clear"
 msgstr ""
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr ""
@@ -130,6 +132,59 @@ msgstr ""
 msgid "Image should be smaller than 1 MB"
 msgstr ""
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:38
+#, c-format
+msgid "Town location"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr ""
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, c-format
 msgid "Product id"
@@ -146,10 +201,9 @@ msgstr ""
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr ""
@@ -190,183 +244,82 @@ msgid "Update"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -376,6 +329,7 @@ msgstr ""
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr ""
@@ -408,14 +362,14 @@ msgid "Orders"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr ""
@@ -482,8 +436,8 @@ msgid "Clearing the auth token will mean public access to 
the instance"
 msgstr ""
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr ""
@@ -542,51 +496,51 @@ msgstr ""
 msgid "Unexpected Error"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr ""
@@ -597,6 +551,7 @@ msgid "could not create instance"
 msgstr ""
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, c-format
 msgid "Delete"
 msgstr ""
@@ -612,33 +567,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, c-format
 msgid "Net"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -646,57 +601,57 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, c-format
 msgid "Location"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr ""
@@ -1004,7 +959,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, c-format
+msgid "Transfer ID"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, c-format
+msgid "Account Address"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr ""
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, c-format
+msgid "could not inform transfer"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, c-format
+msgid "load newer transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, c-format
+msgid "Confirmed"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, c-format
+msgid "Executed at"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, c-format
+msgid "load older transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr ""
diff --git a/packages/frontend/src/i18n/strings.ts 
b/packages/frontend/src/i18n/strings.ts
index a167540..63e9694 100644
--- a/packages/frontend/src/i18n/strings.ts
+++ b/packages/frontend/src/i18n/strings.ts
@@ -80,6 +80,36 @@ strings['de'] = {
       "Image should be smaller than 1 MB": [
         ""
       ],
+      "Country": [
+        ""
+      ],
+      "Address": [
+        ""
+      ],
+      "Building number": [
+        ""
+      ],
+      "Building name": [
+        ""
+      ],
+      "Street": [
+        ""
+      ],
+      "Post code": [
+        ""
+      ],
+      "Town location": [
+        ""
+      ],
+      "Town": [
+        ""
+      ],
+      "District": [
+        ""
+      ],
+      "Country subdivision": [
+        ""
+      ],
       "Product id": [
         ""
       ],
@@ -149,36 +179,6 @@ strings['de'] = {
       "Delivery address": [
         ""
       ],
-      "Country": [
-        ""
-      ],
-      "Address": [
-        ""
-      ],
-      "Building number": [
-        ""
-      ],
-      "Building name": [
-        ""
-      ],
-      "Street": [
-        ""
-      ],
-      "Post code": [
-        ""
-      ],
-      "Town location": [
-        ""
-      ],
-      "Town": [
-        ""
-      ],
-      "District": [
-        ""
-      ],
-      "Country subdivision": [
-        ""
-      ],
       "this product has no taxes": [
         ""
       ],
@@ -530,6 +530,57 @@ strings['de'] = {
       "There is no tips yet, add more pressing the + sign": [
         ""
       ],
+      "cannot be empty": [
+        ""
+      ],
+      "check the id, doest look valid": [
+        ""
+      ],
+      "should have 52 characters, current %1$s": [
+        ""
+      ],
+      "URL doesn't have the right format": [
+        ""
+      ],
+      "Transfer ID": [
+        ""
+      ],
+      "Account Address": [
+        ""
+      ],
+      "Exchange URL": [
+        ""
+      ],
+      "could not inform transfer": [
+        ""
+      ],
+      "load newer transfers": [
+        ""
+      ],
+      "Credit": [
+        ""
+      ],
+      "Confirmed": [
+        ""
+      ],
+      "Verified": [
+        ""
+      ],
+      "Executed at": [
+        ""
+      ],
+      "yes": [
+        ""
+      ],
+      "no": [
+        ""
+      ],
+      "unknown": [
+        ""
+      ],
+      "load older transfers": [
+        ""
+      ],
       "There is no transfer yet, add more pressing the + sign": [
         ""
       ]
@@ -600,6 +651,36 @@ strings['en'] = {
       "Image should be smaller than 1 MB": [
         ""
       ],
+      "Country": [
+        ""
+      ],
+      "Address": [
+        ""
+      ],
+      "Building number": [
+        ""
+      ],
+      "Building name": [
+        ""
+      ],
+      "Street": [
+        ""
+      ],
+      "Post code": [
+        ""
+      ],
+      "Town location": [
+        ""
+      ],
+      "Town": [
+        ""
+      ],
+      "District": [
+        ""
+      ],
+      "Country subdivision": [
+        ""
+      ],
       "Product id": [
         ""
       ],
@@ -669,36 +750,6 @@ strings['en'] = {
       "Delivery address": [
         ""
       ],
-      "Country": [
-        ""
-      ],
-      "Address": [
-        ""
-      ],
-      "Building number": [
-        ""
-      ],
-      "Building name": [
-        ""
-      ],
-      "Street": [
-        ""
-      ],
-      "Post code": [
-        ""
-      ],
-      "Town location": [
-        ""
-      ],
-      "Town": [
-        ""
-      ],
-      "District": [
-        ""
-      ],
-      "Country subdivision": [
-        ""
-      ],
       "this product has no taxes": [
         ""
       ],
@@ -1050,6 +1101,57 @@ strings['en'] = {
       "There is no tips yet, add more pressing the + sign": [
         ""
       ],
+      "cannot be empty": [
+        ""
+      ],
+      "check the id, doest look valid": [
+        ""
+      ],
+      "should have 52 characters, current %1$s": [
+        ""
+      ],
+      "URL doesn't have the right format": [
+        ""
+      ],
+      "Transfer ID": [
+        ""
+      ],
+      "Account Address": [
+        ""
+      ],
+      "Exchange URL": [
+        ""
+      ],
+      "could not inform transfer": [
+        ""
+      ],
+      "load newer transfers": [
+        ""
+      ],
+      "Credit": [
+        ""
+      ],
+      "Confirmed": [
+        ""
+      ],
+      "Verified": [
+        ""
+      ],
+      "Executed at": [
+        ""
+      ],
+      "yes": [
+        ""
+      ],
+      "no": [
+        ""
+      ],
+      "unknown": [
+        ""
+      ],
+      "load older transfers": [
+        ""
+      ],
       "There is no transfer yet, add more pressing the + sign": [
         ""
       ]
@@ -1120,6 +1222,36 @@ strings['es'] = {
       "Image should be smaller than 1 MB": [
         "La imagen debe ser mas chica que 1 MB"
       ],
+      "Country": [
+        "País"
+      ],
+      "Address": [
+        "Dirección"
+      ],
+      "Building number": [
+        "Número de edificio"
+      ],
+      "Building name": [
+        "Nombre de edificio"
+      ],
+      "Street": [
+        "Calle"
+      ],
+      "Post code": [
+        "Código postal"
+      ],
+      "Town location": [
+        "Ubicación de ciudad"
+      ],
+      "Town": [
+        "Ciudad"
+      ],
+      "District": [
+        "Distrito"
+      ],
+      "Country subdivision": [
+        "Provincia"
+      ],
       "Product id": [
         "Id de producto"
       ],
@@ -1189,36 +1321,6 @@ strings['es'] = {
       "Delivery address": [
         "Dirección de entrega"
       ],
-      "Country": [
-        "País"
-      ],
-      "Address": [
-        "Dirección"
-      ],
-      "Building number": [
-        "Número de edificio"
-      ],
-      "Building name": [
-        "Nombre de edificio"
-      ],
-      "Street": [
-        "Calle"
-      ],
-      "Post code": [
-        "Código postal"
-      ],
-      "Town location": [
-        "Ubicación de ciudad"
-      ],
-      "Town": [
-        "Ciudad"
-      ],
-      "District": [
-        "Distrito"
-      ],
-      "Country subdivision": [
-        "Provincia"
-      ],
       "this product has no taxes": [
         "este producto no tiene impuestos"
       ],
@@ -1570,6 +1672,57 @@ strings['es'] = {
       "There is no tips yet, add more pressing the + sign": [
         "No hay propinas todavía, agregar mas presionando el signo +"
       ],
+      "cannot be empty": [
+        "no puede ser vacío"
+      ],
+      "check the id, doest look valid": [
+        "verificar el id, no parece válido"
+      ],
+      "should have 52 characters, current %1$s": [
+        "debería tener 52 caracteres, actualmente %1$s"
+      ],
+      "URL doesn't have the right format": [
+        "La URL no tiene el formato correcto"
+      ],
+      "Transfer ID": [
+        "Transferencias"
+      ],
+      "Account Address": [
+        "Dirección de cuenta"
+      ],
+      "Exchange URL": [
+        "URL del Exchange"
+      ],
+      "could not inform transfer": [
+        "no se pudo crear la instancia"
+      ],
+      "load newer transfers": [
+        "cargar nuevas ordenes"
+      ],
+      "Credit": [
+        "Crédito"
+      ],
+      "Confirmed": [
+        "Confirmar"
+      ],
+      "Verified": [
+        "Verificado"
+      ],
+      "Executed at": [
+        "creado"
+      ],
+      "yes": [
+        "si"
+      ],
+      "no": [
+        "no"
+      ],
+      "unknown": [
+        "desconocido"
+      ],
+      "load older transfers": [
+        "cargar viejas transferencias"
+      ],
       "There is no transfer yet, add more pressing the + sign": [
         "No hay transferencias todavía, agregar mas presionando el signo +"
       ]
@@ -1634,10 +1787,40 @@ strings['fr'] = {
       "clear": [
         ""
       ],
-      "never": [
+      "never": [
+        ""
+      ],
+      "Image should be smaller than 1 MB": [
+        ""
+      ],
+      "Country": [
+        ""
+      ],
+      "Address": [
+        ""
+      ],
+      "Building number": [
+        ""
+      ],
+      "Building name": [
+        ""
+      ],
+      "Street": [
+        ""
+      ],
+      "Post code": [
+        ""
+      ],
+      "Town location": [
+        ""
+      ],
+      "Town": [
+        ""
+      ],
+      "District": [
         ""
       ],
-      "Image should be smaller than 1 MB": [
+      "Country subdivision": [
         ""
       ],
       "Product id": [
@@ -1709,36 +1892,6 @@ strings['fr'] = {
       "Delivery address": [
         ""
       ],
-      "Country": [
-        ""
-      ],
-      "Address": [
-        ""
-      ],
-      "Building number": [
-        ""
-      ],
-      "Building name": [
-        ""
-      ],
-      "Street": [
-        ""
-      ],
-      "Post code": [
-        ""
-      ],
-      "Town location": [
-        ""
-      ],
-      "Town": [
-        ""
-      ],
-      "District": [
-        ""
-      ],
-      "Country subdivision": [
-        ""
-      ],
       "this product has no taxes": [
         ""
       ],
@@ -2090,6 +2243,57 @@ strings['fr'] = {
       "There is no tips yet, add more pressing the + sign": [
         ""
       ],
+      "cannot be empty": [
+        ""
+      ],
+      "check the id, doest look valid": [
+        ""
+      ],
+      "should have 52 characters, current %1$s": [
+        ""
+      ],
+      "URL doesn't have the right format": [
+        ""
+      ],
+      "Transfer ID": [
+        ""
+      ],
+      "Account Address": [
+        ""
+      ],
+      "Exchange URL": [
+        ""
+      ],
+      "could not inform transfer": [
+        ""
+      ],
+      "load newer transfers": [
+        ""
+      ],
+      "Credit": [
+        ""
+      ],
+      "Confirmed": [
+        ""
+      ],
+      "Verified": [
+        ""
+      ],
+      "Executed at": [
+        ""
+      ],
+      "yes": [
+        ""
+      ],
+      "no": [
+        ""
+      ],
+      "unknown": [
+        ""
+      ],
+      "load older transfers": [
+        ""
+      ],
       "There is no transfer yet, add more pressing the + sign": [
         ""
       ]
@@ -2160,6 +2364,36 @@ strings['it'] = {
       "Image should be smaller than 1 MB": [
         ""
       ],
+      "Country": [
+        ""
+      ],
+      "Address": [
+        ""
+      ],
+      "Building number": [
+        ""
+      ],
+      "Building name": [
+        ""
+      ],
+      "Street": [
+        ""
+      ],
+      "Post code": [
+        ""
+      ],
+      "Town location": [
+        ""
+      ],
+      "Town": [
+        ""
+      ],
+      "District": [
+        ""
+      ],
+      "Country subdivision": [
+        ""
+      ],
       "Product id": [
         ""
       ],
@@ -2229,36 +2463,6 @@ strings['it'] = {
       "Delivery address": [
         ""
       ],
-      "Country": [
-        ""
-      ],
-      "Address": [
-        ""
-      ],
-      "Building number": [
-        ""
-      ],
-      "Building name": [
-        ""
-      ],
-      "Street": [
-        ""
-      ],
-      "Post code": [
-        ""
-      ],
-      "Town location": [
-        ""
-      ],
-      "Town": [
-        ""
-      ],
-      "District": [
-        ""
-      ],
-      "Country subdivision": [
-        ""
-      ],
       "this product has no taxes": [
         ""
       ],
@@ -2610,6 +2814,57 @@ strings['it'] = {
       "There is no tips yet, add more pressing the + sign": [
         ""
       ],
+      "cannot be empty": [
+        ""
+      ],
+      "check the id, doest look valid": [
+        ""
+      ],
+      "should have 52 characters, current %1$s": [
+        ""
+      ],
+      "URL doesn't have the right format": [
+        ""
+      ],
+      "Transfer ID": [
+        ""
+      ],
+      "Account Address": [
+        ""
+      ],
+      "Exchange URL": [
+        ""
+      ],
+      "could not inform transfer": [
+        ""
+      ],
+      "load newer transfers": [
+        ""
+      ],
+      "Credit": [
+        ""
+      ],
+      "Confirmed": [
+        ""
+      ],
+      "Verified": [
+        ""
+      ],
+      "Executed at": [
+        ""
+      ],
+      "yes": [
+        ""
+      ],
+      "no": [
+        ""
+      ],
+      "unknown": [
+        ""
+      ],
+      "load older transfers": [
+        ""
+      ],
       "There is no transfer yet, add more pressing the + sign": [
         ""
       ]
@@ -2680,6 +2935,36 @@ strings['sv'] = {
       "Image should be smaller than 1 MB": [
         ""
       ],
+      "Country": [
+        ""
+      ],
+      "Address": [
+        ""
+      ],
+      "Building number": [
+        ""
+      ],
+      "Building name": [
+        ""
+      ],
+      "Street": [
+        ""
+      ],
+      "Post code": [
+        ""
+      ],
+      "Town location": [
+        ""
+      ],
+      "Town": [
+        ""
+      ],
+      "District": [
+        ""
+      ],
+      "Country subdivision": [
+        ""
+      ],
       "Product id": [
         ""
       ],
@@ -2749,36 +3034,6 @@ strings['sv'] = {
       "Delivery address": [
         ""
       ],
-      "Country": [
-        ""
-      ],
-      "Address": [
-        ""
-      ],
-      "Building number": [
-        ""
-      ],
-      "Building name": [
-        ""
-      ],
-      "Street": [
-        ""
-      ],
-      "Post code": [
-        ""
-      ],
-      "Town location": [
-        ""
-      ],
-      "Town": [
-        ""
-      ],
-      "District": [
-        ""
-      ],
-      "Country subdivision": [
-        ""
-      ],
       "this product has no taxes": [
         ""
       ],
@@ -3130,6 +3385,57 @@ strings['sv'] = {
       "There is no tips yet, add more pressing the + sign": [
         ""
       ],
+      "cannot be empty": [
+        ""
+      ],
+      "check the id, doest look valid": [
+        ""
+      ],
+      "should have 52 characters, current %1$s": [
+        ""
+      ],
+      "URL doesn't have the right format": [
+        ""
+      ],
+      "Transfer ID": [
+        ""
+      ],
+      "Account Address": [
+        ""
+      ],
+      "Exchange URL": [
+        ""
+      ],
+      "could not inform transfer": [
+        ""
+      ],
+      "load newer transfers": [
+        ""
+      ],
+      "Credit": [
+        ""
+      ],
+      "Confirmed": [
+        ""
+      ],
+      "Verified": [
+        ""
+      ],
+      "Executed at": [
+        ""
+      ],
+      "yes": [
+        ""
+      ],
+      "no": [
+        ""
+      ],
+      "unknown": [
+        ""
+      ],
+      "load older transfers": [
+        ""
+      ],
       "There is no transfer yet, add more pressing the + sign": [
         ""
       ]
diff --git a/packages/frontend/src/i18n/sv.po b/packages/frontend/src/i18n/sv.po
index 694798f..6b35bd0 100644
--- a/packages/frontend/src/i18n/sv.po
+++ b/packages/frontend/src/i18n/sv.po
@@ -27,14 +27,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr ""
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr ""
@@ -49,33 +49,33 @@ msgstr ""
 msgid "Could not infer instance id from url %1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr ""
@@ -93,13 +93,14 @@ msgid ""
 msgstr ""
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr ""
@@ -121,6 +122,7 @@ msgid "clear"
 msgstr ""
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr ""
@@ -130,6 +132,59 @@ msgstr ""
 msgid "Image should be smaller than 1 MB"
 msgstr ""
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:38
+#, c-format
+msgid "Town location"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr ""
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, c-format
 msgid "Product id"
@@ -146,10 +201,9 @@ msgstr ""
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr ""
@@ -190,183 +244,82 @@ msgid "Update"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -376,6 +329,7 @@ msgstr ""
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr ""
@@ -408,14 +362,14 @@ msgid "Orders"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr ""
@@ -482,8 +436,8 @@ msgid "Clearing the auth token will mean public access to 
the instance"
 msgstr ""
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr ""
@@ -542,51 +496,51 @@ msgstr ""
 msgid "Unexpected Error"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr ""
@@ -597,6 +551,7 @@ msgid "could not create instance"
 msgstr ""
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, c-format
 msgid "Delete"
 msgstr ""
@@ -612,33 +567,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, c-format
 msgid "Net"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -646,57 +601,57 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, c-format
 msgid "Location"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr ""
@@ -1004,7 +959,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, c-format
+msgid "Transfer ID"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, c-format
+msgid "Account Address"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr ""
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, c-format
+msgid "could not inform transfer"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, c-format
+msgid "load newer transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, c-format
+msgid "Confirmed"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, c-format
+msgid "Executed at"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, c-format
+msgid "load older transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr ""
diff --git a/packages/frontend/src/i18n/taler-merchant-backoffice.pot 
b/packages/frontend/src/i18n/taler-merchant-backoffice.pot
index 50c9939..21fd863 100644
--- a/packages/frontend/src/i18n/taler-merchant-backoffice.pot
+++ b/packages/frontend/src/i18n/taler-merchant-backoffice.pot
@@ -24,14 +24,14 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:293
+#: src/ApplicationReadyRoutes.tsx:50 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:299
 #, c-format
 msgid "Access denied"
 msgstr ""
 
-#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:117
-#: src/InstanceRoutes.tsx:294
+#: src/ApplicationReadyRoutes.tsx:51 src/InstanceRoutes.tsx:118
+#: src/InstanceRoutes.tsx:300
 #, c-format
 msgid "Check your token is valid"
 msgstr ""
@@ -46,33 +46,33 @@ msgstr ""
 msgid "Could not infer instance id from url %1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:108
+#: src/InstanceRoutes.tsx:109
 #, c-format
 msgid "HTTP status #%1$s: Server reported a problem"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:109
+#: src/InstanceRoutes.tsx:110
 #, c-format
 msgid "Got message: \"%1$s\" from: %2$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:126
+#: src/InstanceRoutes.tsx:127
 #, c-format
 msgid "No default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:127
+#: src/InstanceRoutes.tsx:128
 #, c-format
 msgid ""
 "in order to use merchant backoffice, you should create the default instance"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:282
+#: src/InstanceRoutes.tsx:288
 #, c-format
 msgid "Server reported a problem: HTTP status #%1$s"
 msgstr ""
 
-#: src/InstanceRoutes.tsx:283
+#: src/InstanceRoutes.tsx:289
 #, c-format
 msgid "Got message: %1$s from: %2$s"
 msgstr ""
@@ -90,13 +90,14 @@ msgid ""
 msgstr ""
 
 #: src/components/exception/login.tsx:86 src/components/modal/index.tsx:53
-#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:140
-#: src/paths/instance/orders/create/CreatePage.tsx:337
+#: src/components/modal/index.tsx:75 src/paths/admin/create/CreatePage.tsx:115
+#: src/paths/instance/orders/create/CreatePage.tsx:325
 #: src/paths/instance/products/create/CreatePage.tsx:51
 #: src/paths/instance/products/list/Table.tsx:174
 #: src/paths/instance/products/list/Table.tsx:228
 #: src/paths/instance/products/update/UpdatePage.tsx:55
-#: src/paths/instance/update/UpdatePage.tsx:159
+#: src/paths/instance/transfers/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:134
 #, c-format
 msgid "Confirm"
 msgstr ""
@@ -118,6 +119,7 @@ msgid "clear"
 msgstr ""
 
 #: src/components/form/InputDate.tsx:83
+#: src/paths/instance/transfers/list/Table.tsx:140
 #, c-format
 msgid "never"
 msgstr ""
@@ -127,6 +129,59 @@ msgstr ""
 msgid "Image should be smaller than 1 MB"
 msgstr ""
 
+#: src/components/form/InputLocation.tsx:28
+#, c-format
+msgid "Country"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:30
+#: src/paths/admin/create/CreatePage.tsx:99
+#: src/paths/instance/transfers/list/Table.tsx:124
+#: src/paths/instance/update/UpdatePage.tsx:118
+#, c-format
+msgid "Address"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:34
+#, c-format
+msgid "Building number"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:35
+#, c-format
+msgid "Building name"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:36
+#, c-format
+msgid "Street"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:37
+#, c-format
+msgid "Post code"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:38
+#, c-format
+msgid "Town location"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:39
+#, c-format
+msgid "Town"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:40
+#, c-format
+msgid "District"
+msgstr ""
+
+#: src/components/form/InputLocation.tsx:41
+#, c-format
+msgid "Country subdivision"
+msgstr ""
+
 #: src/components/form/InputSearchProduct.tsx:59
 #, c-format
 msgid "Product id"
@@ -143,10 +198,9 @@ msgstr ""
 
 #: src/components/form/InputSearchProduct.tsx:73
 #: src/components/form/InputTaxes.tsx:81
-#: src/paths/admin/create/CreatePage.tsx:86 src/paths/admin/list/Table.tsx:110
+#: src/paths/admin/create/CreatePage.tsx:87 src/paths/admin/list/Table.tsx:110
 #: src/paths/instance/details/DetailPage.tsx:76
-#: src/paths/instance/transfers/list/Table.tsx:112
-#: src/paths/instance/update/UpdatePage.tsx:105
+#: src/paths/instance/update/UpdatePage.tsx:106
 #, c-format
 msgid "Name"
 msgstr ""
@@ -187,183 +241,82 @@ msgid "Update"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:100
-#: src/paths/instance/orders/create/CreatePage.tsx:251
-#: src/paths/instance/orders/create/CreatePage.tsx:272
+#: src/paths/instance/orders/create/CreatePage.tsx:252
+#: src/paths/instance/orders/create/CreatePage.tsx:273
 #, c-format
 msgid "Remove"
 msgstr ""
 
 #: src/components/form/InputSecured.tsx:106 src/components/modal/index.tsx:52
-#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:139
-#: src/paths/instance/orders/create/CreatePage.tsx:336
+#: src/components/modal/index.tsx:73 src/paths/admin/create/CreatePage.tsx:114
+#: src/paths/instance/orders/create/CreatePage.tsx:324
 #: src/paths/instance/products/create/CreatePage.tsx:50
 #: src/paths/instance/products/list/Table.tsx:166
 #: src/paths/instance/products/list/Table.tsx:218
 #: src/paths/instance/products/update/UpdatePage.tsx:54
-#: src/paths/instance/update/UpdatePage.tsx:158
+#: src/paths/instance/transfers/create/CreatePage.tsx:88
+#: src/paths/instance/update/UpdatePage.tsx:133
 #, c-format
 msgid "Cancel"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:90
+#: src/components/form/InputStock.tsx:91
 #, c-format
 msgid "Manage stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:92
+#: src/components/form/InputStock.tsx:93
 #, c-format
 msgid "Infinite"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:104
+#: src/components/form/InputStock.tsx:105
 #, c-format
 msgid "lost cannot be greater that current + incoming (max %1$s)"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:110
+#: src/components/form/InputStock.tsx:111
 #, c-format
 msgid "current stock will change from %1$s to %2$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:111
+#: src/components/form/InputStock.tsx:112
 #, c-format
 msgid "current stock will stay at %1$s"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:128
+#: src/components/form/InputStock.tsx:129
 #: src/paths/instance/products/list/Table.tsx:204
 #, c-format
 msgid "Incoming"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:129
+#: src/components/form/InputStock.tsx:130
 #: src/paths/instance/products/list/Table.tsx:205
 #, c-format
 msgid "Lost"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:141
+#: src/components/form/InputStock.tsx:142
 #, c-format
 msgid "Current"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:144
+#: src/components/form/InputStock.tsx:145
 #, c-format
 msgid "without stock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:149
+#: src/components/form/InputStock.tsx:150
 #, c-format
 msgid "Next restock"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:151
+#: src/components/form/InputStock.tsx:152
 #, c-format
 msgid "Delivery address"
 msgstr ""
 
-#: src/components/form/InputStock.tsx:153
-#: src/paths/admin/create/CreatePage.tsx:99
-#: src/paths/admin/create/CreatePage.tsx:116
-#: src/paths/instance/orders/create/CreatePage.tsx:308
-#: src/paths/instance/update/UpdatePage.tsx:118
-#: src/paths/instance/update/UpdatePage.tsx:135
-#, c-format
-msgid "Country"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:156
-#: src/paths/admin/create/CreatePage.tsx:98
-#: src/paths/admin/create/CreatePage.tsx:101
-#: src/paths/admin/create/CreatePage.tsx:118
-#: src/paths/instance/orders/create/CreatePage.tsx:310
-#: src/paths/instance/update/UpdatePage.tsx:117
-#: src/paths/instance/update/UpdatePage.tsx:120
-#: src/paths/instance/update/UpdatePage.tsx:137
-#, c-format
-msgid "Address"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:161
-#: src/paths/admin/create/CreatePage.tsx:105
-#: src/paths/admin/create/CreatePage.tsx:122
-#: src/paths/instance/orders/create/CreatePage.tsx:314
-#: src/paths/instance/update/UpdatePage.tsx:124
-#: src/paths/instance/update/UpdatePage.tsx:141
-#, c-format
-msgid "Building number"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:162
-#: src/paths/admin/create/CreatePage.tsx:106
-#: src/paths/admin/create/CreatePage.tsx:123
-#: src/paths/instance/orders/create/CreatePage.tsx:315
-#: src/paths/instance/update/UpdatePage.tsx:125
-#: src/paths/instance/update/UpdatePage.tsx:142
-#, c-format
-msgid "Building name"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:163
-#: src/paths/admin/create/CreatePage.tsx:107
-#: src/paths/admin/create/CreatePage.tsx:124
-#: src/paths/instance/orders/create/CreatePage.tsx:316
-#: src/paths/instance/update/UpdatePage.tsx:126
-#: src/paths/instance/update/UpdatePage.tsx:143
-#, c-format
-msgid "Street"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:164
-#: src/paths/admin/create/CreatePage.tsx:108
-#: src/paths/admin/create/CreatePage.tsx:125
-#: src/paths/instance/orders/create/CreatePage.tsx:317
-#: src/paths/instance/update/UpdatePage.tsx:127
-#: src/paths/instance/update/UpdatePage.tsx:144
-#, c-format
-msgid "Post code"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:165
-#: src/paths/admin/create/CreatePage.tsx:109
-#: src/paths/admin/create/CreatePage.tsx:126
-#: src/paths/instance/orders/create/CreatePage.tsx:318
-#: src/paths/instance/update/UpdatePage.tsx:128
-#: src/paths/instance/update/UpdatePage.tsx:145
-#, c-format
-msgid "Town location"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:166
-#: src/paths/admin/create/CreatePage.tsx:110
-#: src/paths/admin/create/CreatePage.tsx:127
-#: src/paths/instance/orders/create/CreatePage.tsx:319
-#: src/paths/instance/update/UpdatePage.tsx:129
-#: src/paths/instance/update/UpdatePage.tsx:146
-#, c-format
-msgid "Town"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:167
-#: src/paths/admin/create/CreatePage.tsx:111
-#: src/paths/admin/create/CreatePage.tsx:128
-#: src/paths/instance/orders/create/CreatePage.tsx:320
-#: src/paths/instance/update/UpdatePage.tsx:130
-#: src/paths/instance/update/UpdatePage.tsx:147
-#, c-format
-msgid "District"
-msgstr ""
-
-#: src/components/form/InputStock.tsx:168
-#: src/paths/admin/create/CreatePage.tsx:112
-#: src/paths/admin/create/CreatePage.tsx:129
-#: src/paths/instance/orders/create/CreatePage.tsx:321
-#: src/paths/instance/update/UpdatePage.tsx:131
-#: src/paths/instance/update/UpdatePage.tsx:148
-#, c-format
-msgid "Country subdivision"
-msgstr ""
-
 #: src/components/form/InputTaxes.tsx:73
 #, c-format
 msgid "this product has no taxes"
@@ -373,6 +326,7 @@ msgstr ""
 #: src/paths/instance/orders/details/DetailPage.tsx:145
 #: src/paths/instance/orders/details/DetailPage.tsx:296
 #: src/paths/instance/orders/list/Table.tsx:116
+#: src/paths/instance/transfers/create/CreatePage.tsx:84
 #, c-format
 msgid "Amount"
 msgstr ""
@@ -405,14 +359,14 @@ msgid "Orders"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:71
-#: src/paths/instance/orders/create/CreatePage.tsx:257
+#: src/paths/instance/orders/create/CreatePage.tsx:258
 #: src/paths/instance/products/list/Table.tsx:48
 #, c-format
 msgid "Products"
 msgstr ""
 
 #: src/components/menu/SideBar.tsx:77
-#: src/paths/instance/transfers/list/Table.tsx:59
+#: src/paths/instance/transfers/list/Table.tsx:65
 #, c-format
 msgid "Transfers"
 msgstr ""
@@ -479,8 +433,8 @@ msgid "Clearing the auth token will mean public access to 
the instance"
 msgstr ""
 
 #: src/components/product/ProductForm.tsx:96
-#: src/paths/admin/create/CreatePage.tsx:84 src/paths/admin/list/Table.tsx:109
-#: src/paths/instance/transfers/list/Table.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:85 src/paths/admin/list/Table.tsx:109
+#: src/paths/instance/transfers/list/Table.tsx:122
 #, c-format
 msgid "ID"
 msgstr ""
@@ -539,51 +493,51 @@ msgstr ""
 msgid "Unexpected Error"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:88
-#: src/paths/instance/update/UpdatePage.tsx:107
+#: src/paths/admin/create/CreatePage.tsx:89
+#: src/paths/instance/update/UpdatePage.tsx:108
 #, c-format
 msgid "Auth token"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:90
+#: src/paths/admin/create/CreatePage.tsx:91
 #: src/paths/instance/details/DetailPage.tsx:77
-#: src/paths/instance/update/UpdatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:110
 #, c-format
 msgid "Account address"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:92
-#: src/paths/instance/update/UpdatePage.tsx:111
+#: src/paths/admin/create/CreatePage.tsx:93
+#: src/paths/instance/update/UpdatePage.tsx:112
 #, c-format
 msgid "Default max deposit fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:94
-#: src/paths/instance/update/UpdatePage.tsx:113
+#: src/paths/admin/create/CreatePage.tsx:95
+#: src/paths/instance/update/UpdatePage.tsx:114
 #, c-format
 msgid "Default max wire fee"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:96
-#: src/paths/instance/update/UpdatePage.tsx:115
+#: src/paths/admin/create/CreatePage.tsx:97
+#: src/paths/instance/update/UpdatePage.tsx:116
 #, c-format
 msgid "Default wire fee amortization"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:115
-#: src/paths/instance/update/UpdatePage.tsx:134
+#: src/paths/admin/create/CreatePage.tsx:103
+#: src/paths/instance/update/UpdatePage.tsx:122
 #, c-format
 msgid "Jurisdiction"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:132
-#: src/paths/instance/update/UpdatePage.tsx:151
+#: src/paths/admin/create/CreatePage.tsx:107
+#: src/paths/instance/update/UpdatePage.tsx:126
 #, c-format
 msgid "Default pay delay"
 msgstr ""
 
-#: src/paths/admin/create/CreatePage.tsx:134
-#: src/paths/instance/update/UpdatePage.tsx:153
+#: src/paths/admin/create/CreatePage.tsx:109
+#: src/paths/instance/update/UpdatePage.tsx:128
 #, c-format
 msgid "Default wire transfer delay"
 msgstr ""
@@ -594,6 +548,7 @@ msgid "could not create instance"
 msgstr ""
 
 #: src/paths/admin/list/Table.tsx:63 src/paths/admin/list/Table.tsx:131
+#: src/paths/instance/transfers/list/Table.tsx:71
 #, c-format
 msgid "Delete"
 msgstr ""
@@ -609,33 +564,33 @@ msgstr ""
 msgid "There is no instances yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:236
+#: src/paths/instance/orders/create/CreatePage.tsx:237
 #, c-format
 msgid "Inventory products"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:285
+#: src/paths/instance/orders/create/CreatePage.tsx:286
 #, c-format
 msgid "Total price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:286
+#: src/paths/instance/orders/create/CreatePage.tsx:287
 #, c-format
 msgid "Total tax"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:288
-#: src/paths/instance/orders/create/CreatePage.tsx:296
+#: src/paths/instance/orders/create/CreatePage.tsx:289
+#: src/paths/instance/orders/create/CreatePage.tsx:297
 #, c-format
 msgid "Order price"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:294
+#: src/paths/instance/orders/create/CreatePage.tsx:295
 #, c-format
 msgid "Net"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:299
+#: src/paths/instance/orders/create/CreatePage.tsx:300
 #: src/paths/instance/orders/details/DetailPage.tsx:144
 #: src/paths/instance/orders/details/DetailPage.tsx:295
 #: src/paths/instance/orders/list/Table.tsx:117
@@ -643,57 +598,57 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:301
+#: src/paths/instance/orders/create/CreatePage.tsx:302
 #, c-format
 msgid "Payments options"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:302
+#: src/paths/instance/orders/create/CreatePage.tsx:303
 #, c-format
 msgid "Auto refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:303
+#: src/paths/instance/orders/create/CreatePage.tsx:304
 #, c-format
 msgid "Refund deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:304
+#: src/paths/instance/orders/create/CreatePage.tsx:305
 #, c-format
 msgid "Pay deadline"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:306
+#: src/paths/instance/orders/create/CreatePage.tsx:307
 #, c-format
 msgid "Delivery date"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:307
+#: src/paths/instance/orders/create/CreatePage.tsx:308
 #, c-format
 msgid "Location"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:324
+#: src/paths/instance/orders/create/CreatePage.tsx:312
 #, c-format
 msgid "Max fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:325
+#: src/paths/instance/orders/create/CreatePage.tsx:313
 #, c-format
 msgid "Max wire fee"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:326
+#: src/paths/instance/orders/create/CreatePage.tsx:314
 #, c-format
 msgid "Wire fee amortization"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:327
+#: src/paths/instance/orders/create/CreatePage.tsx:315
 #, c-format
 msgid "Fullfilment url"
 msgstr ""
 
-#: src/paths/instance/orders/create/CreatePage.tsx:330
+#: src/paths/instance/orders/create/CreatePage.tsx:318
 #, c-format
 msgid "Extra information"
 msgstr ""
@@ -1001,7 +956,99 @@ msgstr ""
 msgid "There is no tips yet, add more pressing the + sign"
 msgstr ""
 
-#: src/paths/instance/transfers/list/Table.tsx:147
+#: src/paths/instance/transfers/create/CreatePage.tsx:50
+#: src/paths/instance/transfers/create/CreatePage.tsx:54
+#: src/paths/instance/transfers/create/CreatePage.tsx:55
+#: src/paths/instance/transfers/create/CreatePage.tsx:56
+#, c-format
+msgid "cannot be empty"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:51
+#, c-format
+msgid "check the id, doest look valid"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:52
+#, c-format
+msgid "should have 52 characters, current %1$s"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:57
+#, c-format
+msgid "URL doesn't have the right format"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:74
+#, c-format
+msgid "Transfer ID"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:76
+#, c-format
+msgid "Account Address"
+msgstr ""
+
+#: src/paths/instance/transfers/create/CreatePage.tsx:82
+#: src/paths/instance/transfers/list/Table.tsx:125
+#, c-format
+msgid "Exchange URL"
+msgstr ""
+
+#: src/paths/instance/transfers/create/index.tsx:49
+#, c-format
+msgid "could not inform transfer"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:118
+#, c-format
+msgid "load newer transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:123
+#, c-format
+msgid "Credit"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:126
+#, c-format
+msgid "Confirmed"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:127
+#: src/paths/instance/transfers/list/index.tsx:60
+#, c-format
+msgid "Verified"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:128
+#, c-format
+msgid "Executed at"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "yes"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:138
+#: src/paths/instance/transfers/list/Table.tsx:139
+#, c-format
+msgid "no"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:140
+#, c-format
+msgid "unknown"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:145
+#, c-format
+msgid "load older transfers"
+msgstr ""
+
+#: src/paths/instance/transfers/list/Table.tsx:154
 #, c-format
 msgid "There is no transfer yet, add more pressing the + sign"
 msgstr ""
diff --git 
a/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx 
b/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx
index 2199082..e02bd83 100644
--- a/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx
+++ b/packages/frontend/src/paths/instance/transfers/create/CreatePage.tsx
@@ -27,6 +27,7 @@ import { InputCurrency } from 
"../../../../components/form/InputCurrency";
 import { InputWithAddon } from "../../../../components/form/InputWithAddon";
 import { MerchantBackend } from "../../../../declaration";
 import { Translate, useTranslator } from "../../../../i18n";
+import { CROCKFORD_BASE32_REGEX, URL_REGEX } from 
"../../../../utils/constants";
 
 type Entity = MerchantBackend.Transfers.TransferInformation
 
@@ -35,15 +36,6 @@ interface Props {
   onBack?: () => void;
 }
 
-// # The encoded symbol space does not include I, L, O or U
-// symbols = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'
-// # These five symbols are exclusively for checksum values
-// check_symbols = '*~$=U'
-
-
-const CROCKFORD_BASE32_REGEX = /^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]+[*~$=U]*$/
-const URL_REGEX = 
/^((https?:)(\/\/\/?)([\w]*(?::[\w]*)?@)?([\d\w\.-]+)(?::(\d+))?)\/$/
-
 export function CreatePage({ onCreate, onBack }: Props): VNode {
   const i18n = useTranslator()
 
diff --git a/packages/frontend/src/paths/instance/transfers/list/Table.tsx 
b/packages/frontend/src/paths/instance/transfers/list/Table.tsx
index 2f64d8a..b001b84 100644
--- a/packages/frontend/src/paths/instance/transfers/list/Table.tsx
+++ b/packages/frontend/src/paths/instance/transfers/list/Table.tsx
@@ -35,9 +35,13 @@ interface Props {
   onCreate: () => void;
   accounts: string[];
   selected?: boolean;
+  onLoadMoreBefore?: () => void;
+  hasMoreBefore?: boolean;
+  hasMoreAfter?: boolean;
+  onLoadMoreAfter?: () => void;
 }
 
-export function CardTable({ instances, onCreate, onUpdate, onDelete, selected 
}: Props): VNode {
+export function CardTable({ instances, onCreate, onUpdate, onDelete, selected, 
onLoadMoreAfter, onLoadMoreBefore, hasMoreAfter, hasMoreBefore }: Props): VNode 
{
   const [actionQueue, actionQueueHandler] = useState<Actions<Entity>[]>([]);
   const [rowSelection, rowSelectionHandler] = useState<string[]>([])
 
@@ -78,7 +82,12 @@ export function CardTable({ instances, onCreate, onUpdate, 
onDelete, selected }:
       <div class="b-table has-pagination">
         <div class="table-wrapper has-mobile-cards">
           {instances.length > 0 ?
-            <Table instances={instances} onUpdate={onUpdate} 
onDelete={onDelete} rowSelection={rowSelection} 
rowSelectionHandler={rowSelectionHandler} /> :
+            <Table instances={instances} onUpdate={onUpdate}
+              onDelete={onDelete} rowSelection={rowSelection}
+              rowSelectionHandler={rowSelectionHandler}
+              onLoadMoreAfter={onLoadMoreAfter} 
onLoadMoreBefore={onLoadMoreBefore}
+              hasMoreAfter={hasMoreAfter} hasMoreBefore={hasMoreBefore}
+            /> :
             <EmptyTable />
           }
         </div>
@@ -92,19 +101,25 @@ interface TableProps {
   onUpdate: (id: string) => void;
   onDelete: (id: Entity) => void;
   rowSelectionHandler: StateUpdater<string[]>;
+  onLoadMoreBefore?: () => void;
+  hasMoreBefore?: boolean;
+  hasMoreAfter?: boolean;
+  onLoadMoreAfter?: () => void;
 }
 
 function toggleSelected<T>(id: T): (prev: T[]) => T[] {
   return (prev: T[]): T[] => prev.indexOf(id) == -1 ? [...prev, id] : 
prev.filter(e => e != id)
 }
 
-function Table({ instances }: TableProps): VNode {
+function Table({ instances, onLoadMoreAfter, onLoadMoreBefore, hasMoreAfter, 
hasMoreBefore }: TableProps): VNode {
   const i18n = useTranslator()
   return (
     <div class="table-container">
+      {onLoadMoreBefore && <button class="button is-fullwidth" 
disabled={!hasMoreBefore} onClick={onLoadMoreBefore}><Translate>load newer 
transfers</Translate></button>}
       <table class="table is-fullwidth is-striped is-hoverable is-fullwidth">
         <thead>
           <tr>
+            <th><Translate>ID</Translate></th>
             <th><Translate>Credit</Translate></th>
             <th><Translate>Address</Translate></th>
             <th><Translate>Exchange URL</Translate></th>
@@ -116,6 +131,7 @@ function Table({ instances }: TableProps): VNode {
         <tbody>
           {instances.map(i => {
             return <tr key={i.id}>
+              <td>{i.id}</td>
               <td>{i.credit_amount}</td>
               <td>{i.payto_uri}</td>
               <td>{i.exchange_url}</td>
@@ -126,6 +142,7 @@ function Table({ instances }: TableProps): VNode {
           })}
         </tbody>
       </table>
+      {onLoadMoreAfter && <button class="button is-fullwidth" 
disabled={!hasMoreAfter} onClick={onLoadMoreAfter}><Translate>load older 
transfers</Translate></button>}
     </div>)
 }
 
diff --git a/packages/frontend/src/paths/instance/transfers/list/index.tsx 
b/packages/frontend/src/paths/instance/transfers/list/index.tsx
index 787089b..65ee78a 100644
--- a/packages/frontend/src/paths/instance/transfers/list/index.tsx
+++ b/packages/frontend/src/paths/instance/transfers/list/index.tsx
@@ -20,10 +20,18 @@
 */
 
 import { h, VNode } from 'preact';
+import { useState } from 'preact/hooks';
+import { boolean } from 'yup/lib/locale';
 import { Loading } from '../../../../components/exception/loading';
+import { FormProvider } from '../../../../components/form/FormProvider';
+import { Input } from '../../../../components/form/Input';
+import { InputBoolean } from '../../../../components/form/InputBoolean';
+import { InputSearchProduct } from 
'../../../../components/form/InputSearchProduct';
+import { InputSelector } from '../../../../components/form/InputSelector';
 import { HttpError } from '../../../../hooks/backend';
 import { useInstanceDetails } from '../../../../hooks/instance';
 import { useInstanceTransfers, useTransferAPI } from 
"../../../../hooks/transfer";
+import { Translate, useTranslator } from '../../../../i18n';
 import { CardTable } from './Table';
 
 interface Props {
@@ -32,23 +40,69 @@ interface Props {
   onNotFound: () => VNode;
   onCreate: () => void;
 }
+interface Form {
+  verified?: 'yes' | 'no';
+  payto_uri?: string;
+}
+
 export default function ListTransfer({ onUnauthorized, onLoadError, onCreate, 
onNotFound }: Props): VNode {
-  const result = useInstanceTransfers()
+  const [form, setForm] = useState<Form>({ payto_uri: '' })
+
+  const i18n = useTranslator()
+  const [position, setPosition] = useState<string | undefined>(undefined)
+
   const instance = useInstanceDetails()
+  const accounts = !instance.ok ? [] : instance.data.accounts.map(a => 
a.payto_uri)
+
+  return <section class="section is-main-section">
+    <div class="columns">
+      <div class="column" />
+      <div class="column is-6">
+        <FormProvider object={form} valueHandler={setForm as any}>
+          <InputBoolean name="verified" label={i18n`Verified`} threeState
+            fromBoolean={(b?: boolean) => b === undefined ? undefined : (b ? 
'yes' : 'no')}
+            toBoolean={(b?: string) => b === undefined ? undefined : (b === 
'yes')}
+          />
+          <InputSelector name="payto_uri" label={i18n`Address`} 
values={accounts} placeholder={i18n`Select one account`} />
+        </FormProvider>
+      </div>
+      <div class="column" />
+    </div>
+    <View
+      accounts={accounts}
+      form={form} onCreate={onCreate} onLoadError={onLoadError} 
onNotFound={onNotFound} onUnauthorized={onUnauthorized}
+      position={position} setPosition={setPosition}
+    />
+  </section>
+}
+
+interface ViewProps extends Props {
+  position?: string;
+  setPosition: (s: string) => void;
+  form: Form;
+  accounts: string[];
+}
+
+function View({ onUnauthorized, onLoadError, onCreate, onNotFound, position, 
form, setPosition, accounts }: ViewProps) {
+  const result = useInstanceTransfers({
+    position,
+    payto_uri: form.payto_uri === '' ? undefined : form.payto_uri,
+    verified: form.verified,
+  }, (id) => setPosition(id))
 
   if (result.clientError && result.isUnauthorized) return onUnauthorized()
   if (result.clientError && result.isNotfound) return onNotFound()
   if (result.loading) return <Loading />
   if (!result.ok) return onLoadError(result)
 
-  const accounts = !instance.ok? [] : instance.data.accounts.map(a => 
a.payto_uri)
+  return <CardTable instances={result.data.transfers.map(o => ({ ...o, id: 
String(o.transfer_serial_id) }))}
+    accounts={accounts}
+    onCreate={onCreate}
+    onDelete={() => null}
+    onUpdate={() => null}
+    onLoadMoreBefore={result.loadMorePrev} 
hasMoreBefore={!result.isReachingStart}
+    onLoadMoreAfter={result.loadMore} hasMoreAfter={!result.isReachingEnd}
+  />
+
+}
 
-  return <section class="section is-main-section">
-    <CardTable instances={result.data.transfers.map(o => ({ ...o, id: 
String(o.transfer_serial_id) }))}
-      accounts={accounts}
-      onCreate={onCreate}
-      onDelete={() => null}
-      onUpdate={() => null}
-    />
-  </section>
-}
\ No newline at end of file
diff --git a/packages/frontend/src/utils/constants.ts 
b/packages/frontend/src/utils/constants.ts
index 8ca284e..d7c26c4 100644
--- a/packages/frontend/src/utils/constants.ts
+++ b/packages/frontend/src/utils/constants.ts
@@ -28,6 +28,10 @@ export const INSTANCE_ID_LOOKUP = /^\/instances\/([^/]*)\/?$/
 
 export const AMOUNT_ZERO_REGEX = /^[a-zA-Z][a-zA-Z]*:0$/
 
+export const CROCKFORD_BASE32_REGEX = 
/^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]+[*~$=U]*$/
+
+export const URL_REGEX = 
/^((https?:)(\/\/\/?)([\w]*(?::[\w]*)?@)?([\d\w\.-]+)(?::(\d+))?)\/$/
+
 // how much rows we add every time user hit load more
 export const PAGE_SIZE = 20
 // how bigger can be the result set

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]